CGI es una interfaz de puerta de enlace común. Como su nombre lo indica, es una interfaz de puerta de enlace "común" para todo. Es tan trivial e ingenuo por el nombre. Siento que entendí esto y sentí esto cada vez que me encontré con esta palabra. Pero, francamente, no lo hice. Todavía estoy confundido.
Soy un programador PHP con experiencia en desarrollo web.
solicitud del usuario (cliente) para la página ---> servidor web (-> intérprete PHP integrado) ----> Script del lado del servidor (PHP) ---> Servidor MySQL.
Ahora digamos que mi script PHP puede obtener resultados del servidor MySQL y el servidor MATLAB y algún otro servidor.
Entonces, ¿ahora PHP Script es el CGI? ¿Porque su interfaz para el servidor web y todos los demás servidores? No lo sé. Algunas veces llaman a CGI, una tecnología y otras veces llaman a CGI un programa o algún otro servidor.
¿Qué es exactamente CGI?
¿Cuál es el problema con
/cgi-bin/*.cgi
? ¿Qué pasa con esto? No sé para qué sirve estecgi-bin
directorio en el servidor. No sé por qué tienen extensiones * .cgi.¿Por qué Perl siempre viene en el camino? CGI y Perl (idioma). Tampoco sé qué pasa con estos dos. Casi todo el tiempo sigo escuchando estos dos en combinación "CGI y Perl". Este libro es otro gran ejemplo de programación CGI con Perl . ¿Por qué no "Programación CGI con PHP / JSP / ASP"? Nunca vi esas cosas.
Programación CGI en C , me confunde mucho. " en C "? ¿¿Seriamente?? No se que decir. Estoy confundido. " en C "? Esto lo cambia todo. El programa necesita ser compilado y ejecutado. Esto cambia por completo mi visión de la programación web. ¿Cuándo compilo? Cómo se ejecuta el programa (porque será un código de máquina, por lo que debe ejecutarse como un proceso independiente). ¿Cómo se comunica con el servidor web? IPC? e interactuar con todos los servidores (en mi ejemplo MATLAB y MySQL) usando la programación de socket? ¡¡Estoy perdido!!
La gente dice que CGI está en desuso y ya no está en uso. ¿Es eso así? ¿Cuál es la última actualización?
Una vez, me encontré con una situación en la que tenía que dar acceso de solicitud HTTP PUT al servidor web (Apache HTTPD). Es una larga vuelta. Entonces, hasta donde recuerdo, esto es lo que hice:
Edité el archivo de configuración de Apache HTTPD para decirle al servidor web que pasara todas las solicitudes HTTP PUT a algunos
put.php
(tuve que escribir este script PHP)Implemente put.php para manejar la solicitud (guarde el archivo en la ubicación mencionada)
La gente decía que escribí un script CGI. En serio, no tenía idea de lo que estaban hablando.
- ¿Realmente escribí el script CGI?
Espero que hayas entendido cuál es mi confusión. (Porque yo mismo no sé dónde estoy confundido). Les pido que mantengan su respuesta lo más simple posible. Realmente no puedo entender ninguna terminología técnica elegante. Al menos no en este caso.
EDITAR:
Encontré este increíble tutorial "¡La programación CGI es simple!" - Tutorial CGI , que explica los conceptos de la manera más simple posible. Después de leer este artículo, puede leer Introducción a la programación CGI en C para complementar su comprensión con ejemplos de código reales. También he agregado estos enlaces a este tutorial al artículo de Wikipedia: http://en.wikipedia.org/wiki/Common_Gateway_Interface