Saltar al contenido

¿Qué es Common Gateway Interface (CGI)?

Hola, tenemos la solución a lo que necesitas, deslízate y la verás aquí.

Solución:

CGI es una interfaz que le dice al servidor web cómo pasar datos hacia y desde una aplicación. Más específicamente, describe cómo se pasa la información de la solicitud en las variables de entorno (como el tipo de solicitud, la dirección IP remota), cómo se pasa el cuerpo de la solicitud a través de la entrada estándar y cómo se pasa la respuesta a través de la salida estándar. Puede consultar la especificación CGI para obtener más detalles.

Para usar tu imagen:

user (client) request for page ---> webserver ---[CGI]----> Server side Program ---> MySQL Server.

La mayoría, si no todos, los servidores web se pueden configurar para ejecutar un programa como ‘CGI’. Esto significa que el servidor web, al recibir una solicitud, reenviará los datos a un programa específico, configurando algunas variables de entorno y ordenando los parámetros a través de la entrada estándar y la salida estándar para que el programa pueda saber dónde y qué buscar.

El principal beneficio es que puede ejecutar CUALQUIER código ejecutable desde la web, dado que tanto el servidor web como el programa saben cómo funciona CGI. Es por eso que puede escribir programas web en C o Bash con un servidor web normal habilitado para CGI. Eso, y que la mayoría de los entornos de programación pueden utilizar fácilmente variables de entorno, salida estándar y entrada estándar.

En su caso, lo más probable es que haya utilizado otro medio de comunicación específico para PHP entre sus scripts y el servidor web, este, como bien menciona en su pregunta, es un intérprete incorporado llamado mod_php.

Entonces, respondiendo a sus preguntas:

¿Qué es exactamente CGI?

Véase más arriba.

¿Cuál es el problema con /cgi-bin/*.cgi? ¿Qué pasa con esto? No sé para qué sirve este directorio cgi-bin en el servidor. No sé por qué tienen extensiones * .cgi.

Ese es el lugar tradicional para los programas CGI, muchos servidores web vienen con este directorio preconfigurado para ejecutar todos los binarios allí como programas CGI. La extensión .cgi denota un ejecutable que se espera que funcione a través de CGI.

¿Por qué Perl siempre se interpone en el camino? CGI y Perl (idioma). Tampoco sé qué pasa con estos dos. Casi todo el tiempo escucho 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 tales cosas.

Debido a que Perl es antiguo (más antiguo que PHP, JSP y ASP, que surgieron cuando CGI ya era antiguo, Perl existía cuando CGI era nuevo) y se hizo bastante famoso por ser un muy buen lenguaje para servir páginas web dinámicas a través de CGI. Hoy en día existen otras alternativas para ejecutar Perl en un servidor web, principalmente mod_perl.

La programación CGI en C me confunde mucho. ¿¿C ª?? ¿¿Seriamente?? No se que decir. “Estoy confundido.” En C “?? Esto cambia todo. El programa necesita ser compilado y ejecutado. Esto cambia por completo mi visión de la programación web. ¿Cuándo lo compilo? ¿Cómo se ejecuta el programa (porque será un código máquina, por lo que debe ejecutarse como un proceso independiente) .¿Cómo se comunica con el servidor web? IPC? e interactuando con todos los servidores (en mi ejemplo MATLAB & MySQL) usando programación de socket? ¡Estoy perdido!

Usted compila el ejecutable una vez, el servidor web ejecuta el programa y pasa los datos en la solicitud al programa y genera la respuesta recibida. CGI especifica que se lanzará una instancia de programa por cada solicitud. Es por eso que CGI es ineficiente y algo obsoleto hoy en día.

Dicen que CGI está en desuso. Ya no está en uso. ¿Es tan? ¿Cuál es su última actualización?

CGI todavía se usa cuando el rendimiento no es primordial y se requiere un medio simple para ejecutar código. Es ineficaz por las razones expuestas anteriormente y existen medios más modernos para ejecutar cualquier programa en un entorno web. Actualmente el más famoso es FastCGI.

¿Qué es exactamente CGI?

Un medio para que un servidor web obtenga sus datos de un programa (en lugar de, por ejemplo, un archivo).

¿Cuál es el problema con /cgi-bin/*.cgi?

No es gran cosa. Es solo una convención.

No sé para qué sirve este directorio cgi-bin en el servidor. No sé por qué tienen extensiones * .cgi.

El servidor tiene que saber qué hacer con el archivo (es decir, tratarlo como un programa para ejecutar en lugar de algo para servir simplemente). Tener una extensión .html le dice que use un tipo de contenido text / html. Tener una extensión .cgi le dice que lo ejecute como un programa.

Mantener los ejecutables en un directorio separado brinda una protección adicional contra la ejecución de archivos incorrectos y / o el servicio de programas CGI como datos sin procesar en caso de que el servidor se configure incorrectamente.

¿Por qué Perl siempre se interpone en el camino?

No es así. Perl era grande y popular al mismo tiempo que CGI.

No he usado Perl CGI durante años. Estuve usando mod_perl durante mucho tiempo y en estos días tiendo hacia PSGI / Plack con FastCGI.

Este libro es otro gran ejemplo de Programación CGI con Perl ¿Por qué no “Programación CGI con PHP / JSP / ASP”?

CGI no es muy eficiente. Más o menos al mismo tiempo que PHP aparecieron mejores métodos para hablar con programas desde servidores web. JSP y ASP están diferentes métodos para hablar con los programas.

La programación CGI en C me confunde mucho. ¿¿C ª?? ¿¿Seriamente??

Es un lenguaje de programación, ¿por qué no?

¿Cuándo lo compilo?

  1. Escribir código
  2. Compilar
  3. URL de acceso
  4. El servidor web ejecuta el programa

Cómo se ejecuta el programa (porque será un código de máquina, por lo que debe ejecutarse como un proceso independiente).

No tiene que ejecutarse como un proceso independiente (puede escribir módulos Apache en C), pero todo el concepto de CGI es que lanza un proceso externo.

¿Cómo se comunica con el servidor web? IPC?

STDIN / STDOUT y variables de entorno, como se define en la especificación CGI.

e interactuar con todos los servidores (en mi ejemplo, MATLAB y MySQL) usando programación de socket?

Usando cualquier método que le guste y sea compatible.

Dicen que CGI se deprecia. Ya no está en uso. ¿Es tan?

CGI es ineficiente, lento y simple. Rara vez se usa, cuando se usa es porque es simple. Si el rendimiento no es un gran problema, la simplicidad vale mucho.

¿Cuál es su última actualización?

1.1

CGI es una especificación de interfaz entre un servidor web (servidor HTTP) y un programa ejecutable de algún tipo que debe manejar una solicitud en particular.

Describe cómo ciertas propiedades de esa solicitud deben comunicarse al entorno de ese programa y cómo el programa debe comunicar la respuesta al servidor y cómo el servidor debe ‘completar’ la respuesta para formar una respuesta válida a la solicitud HTTP original.

Durante un tiempo, CGI fue un borrador de Internet del IETF y, como tal, tenía una fecha de vencimiento. Caducó sin actualización, por lo que no había un “estándar” CGI. Ahora es un RFC informativo, pero como tal documenta una práctica común y no es un estándar en sí mismo. rfc3875.txt, rfc3875.html

Los programas que implementan una interfaz CGI se pueden escribir en cualquier idioma que se pueda ejecutar en la máquina de destino. Deben poder acceder Variables de entorno y usualmente entrada estándar y generan su salida en salida estándar.

Los lenguajes compilados como C se usaban comúnmente al igual que los lenguajes de scripting como perl, a menudo usando bibliotecas para facilitar el acceso al entorno CGI.

Una de las grandes desventajas de CGI es que se genera un nuevo programa para cada solicitud, por lo que mantener el estado entre solicitudes podría ser un problema de rendimiento importante. El estado puede manejarse en cookies o codificarse en una URL, pero si llega a ser demasiado grande, debe almacenarse en otro lugar y codificarse a partir de información de URL codificada o una cookie. Cada invocación CGI tendría que volver a cargar el estado almacenado desde una tienda en algún lugar.

Por esta razón, y para una interfaz muy simple para solicitudes y sesiones, los entornos mejor integrados entre los servidores web y las aplicaciones son mucho más populares. Los entornos como una implementación php moderna con apache integran el idioma de destino mucho mejor con el servidor web y brindan acceso a los objetos de solicitudes y sesiones que se necesitan para atender de manera eficiente las solicitudes http. Ofrecen una forma mucho más sencilla y rica de escribir “programas” para manejar solicitudes HTTP.

Si escribió un guión CGI depende de la interpretación. Ciertamente hizo el trabajo de uno, pero es mucho más habitual ejecutar php como un módulo donde la interfaz entre el script y el servidor no es estrictamente una interfaz CGI.

Si guardas alguna sospecha o forma de regenerar nuestro reseña eres capaz de ejecutar una crónica y con gusto lo interpretaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *