¿Qué es un FastCGI?
FastCGI es una extensión de Common Gateway Interface (CGI) que fue desarrollada por una compañía ahora extinta 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 creación y destrucción de procesos cada vez que se recibe una solicitud. Esta sobrecarga se puede eludir mediante el uso de interfaces de programa de aplicación (API) como la interfaz de programación de aplicaciones del servidor Netscape (NSAPI) o la interfaz de programación de aplicaciones del servidor de Internet (ISAPI), pero debido a que estas son propietarias, hay una curva de aprendizaje adicional y limitaciones en los idiomas admitidos para ser considerado. Otra deficiencia de CGI es el hecho de que no se pueden obtener ciertos casos de reutilización, como conexiones a bases de datos o técnicas de almacenamiento en caché. El manejo de solicitudes 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 única conexión, lo que se conoce como multiplexación. Alternativamente, se pueden usar múltiples conexiones. Las solicitudes se transmiten mediante el Protocolo de transferencia de archivos (FTP) o sockets. La misma conexión se utiliza para devolver la respuesta.
Aunque la conexión podría estar cerrada 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 la aplicación pueden cerrarse 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 se instaló en varios otros servidores web de la industria. FastCGI es altamente compatible con la informática distribuida, por lo que una aplicación FastCGI puede ejecutarse en un servidor separado para el servicio web. Esto ofrece todas las ventajas de mejorar la disponibilidad de los sistemas, mejorar la escalabilidad y aumentar 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.
Del mismo modo que una aplicación CGI puede generar una respuesta a partir de una solicitud del Protocolo de transferencia de hipertexto (HTTP), también puede hacerlo FastCGI. También maneja tareas como verificar la autenticación y convertir tipos de datos. Estas tareas se manejan mediante roles, que pueden agregarse y ampliarse 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 por problemas específicos de la aplicación. Cualquier aplicación creada con el marco FastCGI es anterior con servidores antiguos que ejecutan CGI. Además, la biblioteca de aplicaciones está diseñada para simplificar la migración de aplicaciones CGI.