¿Qué es un fastcgi?
fastcgi es una extensión de la interfaz de puerta de enlace común (CGI) que fue desarrollada por una compañía ahora desaparecida llamada Open Market. FastCGI está disponible gratuitamente como un estándar abierto. Aborda ciertas deficiencias en CGI que limitan el rendimiento.
A diferencia de CGI, FastCGI no crea un nuevo proceso para cada solicitud, minimizando así la sobrecarga de la creación y destrucción del proceso cada vez que se recibe una solicitud. Esta sobrecarga se puede evitar utilizando interfaces del programa de aplicaciones (API), como la interfaz de programación de aplicaciones de servidor Netscape (NSAPI) o la interfaz de programación de aplicaciones de servidor de Internet (ISAPI), pero debido a que estos son propietarios, hay una curva de aprendizaje adicional y limitaciones en los idiomas admitidos a considerar. Otra deficiencia de CGI es el hecho de que no se pueden obtener ciertos casos para la reutilización, como conexiones a bases de datos o técnicas de almacenamiento en caché. El manejo de la solicitud puede ser hasta 30 veces más rápido usando FastCGI sobre CGI convencional.
con FastCGI, se pueden manejar múltiples solicitudes a través de una sola conexión, que se conoce como multiplexación. Alternativamente, se pueden usar múltiples conexiones. Las solicitudes se transmiten utilizando el protocolo de transferencia de archivos (FTP) o los sockets. Luego se usa la misma conexión para devolver la respuesta.
Aunque la conexión podría cerrarse en este punto, el servidor web y el proceso aún persisten. Esto ofrece muchas ventajas. Por ejemplo, significa que el servidor y el proceso de aplicación se pueden apagar o reiniciarse por separado.
FastCGI fue desarrollado originalmente por Open Market e implementado en su oferta de servidor web. Sin embargo, la interfaz se puede implementar en cualquier servidor, y pronto estuvo en su lugar en otros servidores web de la industria. FastCGI es altamente compatible con la computación distribuida, por lo que una aplicación FastCGI puede ejecutarse en un servidor separado para el servicio web. Esto ofrece todas las ventajas deMejora de la disponibilidad de sistemas, para mejorar la escalabilidad y el aumento de la seguridad del sistema porque los componentes están aislados. Al usar FastCGI remoto, hay menos administración porque la red interna puede manejar la ejecución de aplicaciones.
Al igual que una aplicación CGI puede generar una respuesta a partir de una solicitud del Protocolo de transferencia de hipertexto (HTTP), también puede FastCGI. También maneja tareas como verificar la autenticación y la conversión de los tipos de datos. Estas tareas se manejan utilizando roles, que se pueden agregar y extender libremente.
fastcgi es simple de entender y se ejecutará con casi cualquier lenguaje de programación. Los procesos están aislados, por lo que los servidores no pueden bloquearse mediante problemas específicos de la aplicación. Cualquier aplicación construida con el marco FastCGI está hacia atrás con servidores antiguos que ejecutan CGI. Además, la biblioteca de aplicaciones está diseñada para simplificar la migración de aplicaciones CGI.