FastCGI es una extensión de Common Gateway Interface (CGI) que fue desarrollada por una empresa ahora desaparecida llamada Open Market. FastCGI está disponible gratuitamente como 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, lo que minimiza 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 son propietarias, hay una curva de aprendizaje adicional y limitaciones en los lenguajes admitidos. para ser considerado. Otro defecto 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 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 sola conexión, lo que se conoce como multiplexación. Alternativamente, se pueden utilizar múltiples conexiones. Las solicitudes se transmiten mediante el protocolo de transferencia de archivos (FTP) o sockets. Luego, se usa la misma conexión para devolver la respuesta.
Aunque la conexión puede 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 se pueden cerrar o reiniciar 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 otros servidores web de la industria. FastCGI es altamente compatible con la computación distribuida, por lo que una aplicación FastCGI se puede ejecutar en un servidor separado del 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.
Así como una aplicación CGI puede generar una respuesta a partir de una solicitud de Protocolo de transferencia de hipertexto (HTTP), FastCGI también puede hacerlo. También maneja tareas como verificar la autenticación y convertir tipos de datos. Estas tareas se manejan mediante roles, que se pueden agregar y ampliar libremente.
FastCGI es fácil de entender y funciona 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 está al revés con servidores antiguos que ejecutan CGI. Además, la biblioteca de aplicaciones está diseñada para simplificar la migración de aplicaciones CGI.