Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
FastCGI
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
'''FastCGI''' es un protocolo para interconectar programas interactivos con un [[servidor web]]. FastCGI es una variación de la ya conocida [[Common Gateway Interface]] (CGI o Interfaz Común de Entrada). El principal objetivo de FastCGI es reducir la carga asociada con el hecho de interconectar el [[servidor web]] y los programas Common Gateway Interface, permitiéndole a un servidor atender más peticiones a la vez. == Ventajas == * '''Independencia del lenguaje utilizado'''. Libertad de elección de la plataforma de desarrollo: [[C++]], [[PHP]], [[Python]], [[Perl]], [[Java (lenguaje de programación)|Java]], entre otros. * '''Se utiliza un proceso separado'''. Libertad de elección del servidor web. Facilidad para el tratamiento de errores y depuración. * '''Es posible la ejecución en host separado'''. Mayor libertad para configuración del sistema, tanto en el diseño de la red como en la elección de los sistemas operativos. Disminución de la carga de trabajo del servidor principal. En resumen, la libertad de diseño de [[Common Gateway Interface|CGI]] a la velocidad de un módulo del servidor.. == Historia == CGI es un protocolo para interconectar aplicaciones externas con servidores web. Las aplicaciones CGI corren en un [[Proceso (informática)|proceso]] separado que es creado al inicio de cada petición y es finalizado cuando termina su trabajo. Este modelo de "un nuevo proceso por cada petición" hace que los programas CGI sean muy fáciles de implementar, pero limita la eficiencia y la escalabilidad. En altas cargas, la sobrecarga en el sistema operativo por la creación y destrucción de procesos se torna significativa y limita la escalabilidad. Además, el modelo de procesos CGI limita las técnicas de reutilización de recursos (como ser la reutilización de conexiones a base de datos, caché en memoria, etc). Para encarar el problema de escalabilidad del CGI, [[OpenMarket|Open Market]] desarrolló FastCGI y lo introdujo por primera vez en su producto de servicio web a mediados de los 90'. Open Market originalmente desarrolló FastCGI en parte como una respuesta competitiva contra la, en aquel entonces en proceso, API propietaria de [[Netscape Communications Corporation|Netscape's]], la [[Netscape Server Application Programming Interface|NSAPI]] que servía para desarrollar aplicaciones Web. Aunque inicialmente desarrollada por [[OpenMarket|Open Market]], FastCGI fue implementada por otros fabricantes de servicios web. FastCGI, sin embargo, compitió contra otras técnicas que también intentaban aumentar la velocidad y simplificar las comunicaciones del lado del servidor, pero sin seguir el paradigma CGI. Módulos para [[Servidor HTTP Apache|Apache]] tales como [[mod perl]] y [[mod php]] aparecieron aproximadamente por la misma fecha y parecían ser mejores reemplazos para CGI, permitiendo una integración muy próxima con la base del servidor web. == Detalles de la implementación == En vez de crear procesos nuevos por cada petición, FastCGI puede usar un solo proceso persistente que maneja cualquier petición durante su período de vida. El hecho de procesar múltiples peticiones a la vez es logrado ya sea mediante la utilización de una sola conexión con un multiplexado interno (por ejemplo múltiples peticiones sobre una sola conexión) y/o utilizando múltiples conexiones. Varios de esos procesos pueden existir, y eso es algo que incrementa la escalabilidad y el rendimiento. FastCGI permite también a los programas hacer que el servidor web realice ciertas operaciones sencillas, como leer un archivo antes de que la petición sea procesada. Las [[Variable de entorno|variables de entorno]] y las peticiones de páginas son enviadas desde el servidor web hacia los procesos a través de una conexión [[Transmission Control Protocol|TCP]] (para procesos remotos) o a través de [[Socket UNIX|zócalos de Unix]] (para procesos locales). Las respuestas son devueltas desde el proceso hacia el servidor web sobre la misma conexión. La conexión puede ser cerrada al final de una respuesta, pero el servidor web y el proceso se mantienen en ejecución. Varios administradores y programadores de sitios web encontraron que la separación de las aplicaciones web con respecto al servidor web producto de FastCGI (y la simplicidad de [[SCGI]]) tenían muchas ventajas sobre los intérpretes incrustados ([[mod perl]], [[mod php]], etc). Esta separación permite a los procesos del servidor y de las aplicaciones ser reiniciados en forma independiente; una consideración importante a tomar en cuenta en sitios web muy ocupados. Esto también facilita la aplicación de políticas de seguridad por cada aplicación; cosa importante para los [[Proveedor de servicios de Internet|ISPs]] y para las compañías de alojamiento web. == Servidores Web que implementan FastCGI == :''Nota: a menos que se notifique lo contrario, hasta ahora no se sabe cuándo será completada la implementación FastCGI'' * [[Abyss Web Server]] * [[Servidor HTTP Apache|Apache HTTP Server]] ''(parcial)'' ** Implementado por [http://httpd.apache.org/mod_fcgid/ mod_fcgid]. Este módulo era de terceros, pero fue garantizado que sería un subproyecto de [[Servidor HTTP Apache|Apache]] en el 2009, liderado por Chris Darroch<ref>[http://httpd.apache.org/mod_fcgid/ FastCGI apache module mod_fcgid]</ref> ** El módulo desactualizado de terceros mod_fastcgi también está siendo utilizado ** Multiplexado de peticiones a través de una sola conexión está prohibido por el diseño de [[Servidor HTTP Apache|Apache]],<ref>{{Cita web |url=http://cryp.to/publications/fastcgi/#AEN147 |título=FastCGI – The Forgotten Treasure/ Section 2.3. |fechaacceso=14 de mayo de 2010 |urlarchivo=https://web.archive.org/web/20100208215702/http://cryp.to/publications/fastcgi/#AEN147 |fechaarchivo=8 de febrero de 2010 }}</ref> así que no está soportado en [[Servidor HTTP Apache|Apache]] * [[Cherokee (servidor web)|Cherokee HTTP Server]]<ref>[http://www.cherokee-project.com/doc/modules_handlers_fcgi.html FastCGI for Cherokee]</ref> * [[Hiawatha webserver]]<ref>[http://www.hiawatha-webserver.org/howto/#5.1 FastCGI HOWTO for Hiawatha]</ref> ** Soporte de balance de carga para FastCGI ** Soporte servidores FastCGI con jaula root * [[Lighttpd]]<ref>[http://trac.lighttpd.net/trac/wiki/Docs:ModFastCGI FastCGI for Lighttpd]</ref> * [[Monkey Web Server]]<ref>{{Cita web |url=http://monkey-project.com/about |título=FastCGI for Monkey Web Server |fechaacceso=26 de junio de 2013 |urlarchivo=https://web.archive.org/web/20130627203759/http://www.monkey-project.com/about |fechaarchivo=27 de junio de 2013 }}</ref> * [[LiteSpeed Web Server]] * [[Microsoft IIS]]<ref> {{cita web |url=http://www.iis.net/fastcgi |título=Extensión FastCGI para IIS6.0 - RTM |obra=FastCGI para IIS |fechaacceso=29 de febrero de 2008 |fecha=28 de febrero de 2008 |editorial=Microsoft }}</ref> * [[Kerio WebSTAR]] * [[Nginx]] * [[OpenMarket|Open Market Web Server]] * [[Resin Server|Resin Application Server]] * [[Roxen (servidor web)|Roxen Web Server]] * [[Sun Java System Web Server]] * Cualquier contenedor [[Servlet]] (como ser [[Apache Tomcat]] o [[Jetty]]), usando la biblioteca [https://sourceforge.net/projects/jfastcgi JFastCGI]. * [[Zeus Web Server]] * [[My server project]] == 'Bindings' de lenguajes para la API FastCGI == FastCGI puede ser implementado en cualquier lenguaje que soporte zócalos (sockets). La [[Application programming interface|API]] existe<ref>[http://www.fastcgi.com/drupal/node/5 Application Libraries / Development Kits] {{Wayback|url=http://www.fastcgi.com/drupal/node/5 |date=20091227200436 }}</ref> para: * [[Borland Delphi]]/[[FreePascal]]<ref>{{Cita web |url=http://extpascal.googlecode.com/ |título=ExtPascal |fechaacceso=13 de marzo de 2018 |urlarchivo=https://web.archive.org/web/20081122104339/http://extpascal.googlecode.com/ |fechaarchivo=22 de noviembre de 2008 }}</ref> * [[C (lenguaje de programación)|C]] * [[C++]] * [[Chicken Scheme]] * [[Common Lisp]]: [[CLISP]] y [[CMUCL]] * [[D (lenguaje de programación)|D]] * [[Guile Scheme]] * [[Lenguaje de programación Eiffel|Eiffel]]<ref>[https://web.archive.org/web/20120418113615/http://goanna.origo.ethz.ch/ Goanna Eiffel]</ref> * [[Haskell (lenguaje de programación)|Haskell]] * [[HP BASIC for OpenVMS]] * [[Java (lenguaje de programación)|Java]] * [[Lua (lenguaje de programación)|Lua]] * [[OCaml]] * [[MonoFastCGI|Mono XSP]] * [[Perl]]<ref> Hay varios módulos FastCGI para Perl: [http://search.cpan.org/perldoc?FCGI FCGI] (un módulo compilado escrito en C), [http://search.cpan.org/perldoc?FCGI::Async FCGI::Async] (de aplicaciones FastCGI asíncronas), [http://search.cpan.org/perldoc?AnyEvent::FCGI AnyEvent::FCGI] (para aplicaciones [http://search.cpan.org/perldoc?AnyEvent AnyEvent]-basadas en), [http://search.cpan.org/perldoc?FCGI::EV FCGI::EV] (para aplicaciones [http://search.cpan.org/perldoc?EV EV]-basadas en), [http://search.cpan.org/perldoc?CGI::Fast CGI::Fast] (Perl similar [http://search.cpan.org/perldoc?CGI CGI]-interface para FastCGI), [http://search.cpan.org/perldoc?FCGI::Client FCGI::Client] (una biblioteca de cliente FastCGI), y [http://search.cpan.org/perldoc?Net::FastCGI Net::FastCGI] (constantes y funciones para construir y analizar mensajes FastCGI). </ref> * [[PHP]] * [[Roadsend PHP]] * [[Python]] * [[Ruby]] * [[SmallEiffel]] * [[Smalltalk]]: [[FasTalk]] and [[Dolphin Smalltalk]] * [[Tcl|TCL]] FastCGI permitió portabilidad a las aplicaciones web; en contraste, las aplicaciones que fueron desarrolladas para intérpretes embebidos (tales como [[mod python]]) están generalmente muy limitadas a la [[API]] de Apache. Frameworks recientes tales como [[Ruby on Rails]], [[Catalyst (software)|Kepler]] ''(etc...'') permiten el uso de cualquiera de los intérpretes embebidos ([[mod ruby]], [[mod perl]], [[mod python]] o [[Kepler (software)|mod_lual]], respectivamente), pero también FastCGI. Esta tendencia parece ser que va a continuar. == Bibliotecas que incluyen soporte para FastCGI == * [http://www.qdecoder.org/ qDecoder] * [http://www.gnu.org/software/cgicc/ GNU Cgicc] == Referencias == {{listaref}} == Véase también == * [[Interfaz de entrada común|CGI]] * [[SCGI]] * [[WinCGI]] == Bibliografía == * {{cita libro|url=http://hdl.handle.net/10045/16997|título=Programación de servidores web con CGI, SSI e IDC|autor=Sergio Luján Mora|año=2001|edición=1ª|idioma=español|editorial=Editorial Club Universitario|formato=libro completo gratuito en [[pdf]]}} == Enlaces externos == * [https://web.archive.org/web/20060221235908/http://fastcgi.com/ Página Inicial de FastCGI] (inglés) ** [https://fastcgi-archives.github.io/ Fork de la Página Inicial de FastCGI] (inglés) * [https://web.archive.org/web/20080725054437/http://fastcgi.com/devkit/doc/fcgi-spec.html FastCGI specification] ** [https://fastcgi-archives.github.io/FastCGI_Specification.html Fork de la FastCGI specification] * [https://web.archive.org/web/20060223075216/http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html mod_fastcgi – FastCGI module for Apache 1.x and 2.x supporting external applications] ** [http://fastcgi-archives.github.io/mod_fastcgi/ mod_fastcgi – FastCGI module fork for Apache 1.x and 2.x supporting external applications] * [http://httpd.apache.org/mod_fcgid/ mod_fcgid - a FastCGI module for Apache 2.x] * [http://www.iis.net/default.aspx?tabid=1000051 Microsoft FastCGI] * [https://zenprojects.github.io/Apache-Proxy-FastCGI-Module/ Apache v2.x mod_proxy FastCGI Module] * [http://wasd.vsm.com.au/ht_root/src/fcgi/readmore.html FastCGI interface for WASD httpd server for OpenVMS] * [http://anyeos.wordpress.com/2008/07/18/fastcgi-y-php-seguro-en-userdir FastCGI y PHP seguro en UserDir] {{Control de autoridades}} [[Categoría:Software de Internet]] [[Categoría:Acrónimos de informática]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Plantillas usadas en esta página:
Plantilla:Cita libro
(
editar
)
Plantilla:Cita web
(
editar
)
Plantilla:Control de autoridades
(
editar
)
Plantilla:Listaref
(
editar
)
Plantilla:Wayback
(
editar
)
Buscar
Buscar
Edición de «
FastCGI
»
Añadir idiomas
Añadir tema