Interacción de datos entre el programa CGI y la web

CGI es la abreviatura de Common Gateway Interface. A través de CGI, se puede realizar la interacción de datos entre el navegador del cliente y el servidor.

El sistema de comunicación CGI consta de páginas HTML que se muestran en la interfaz y programas cgi que se ejecutan en el servidor. El cliente web muestra los archivos html relevantes, que generalmente se almacenan en el directorio / www. Los programas CGI generalmente son archivos con un sufijo .cgi, y la ruta de almacenamiento es generalmente / www.

El diagrama de estructura del sistema de comunicación CGI es el siguiente:


 Paso 1: el cliente web inicia una solicitud HTTP al servidor;

Paso 2: la variable de entorno envía datos al programa CGI;

Paso 3: Redirigir la salida estándar CGI a la canalización y el servidor obtiene los datos de salida CGI a través de la canalización;

Paso 4: el servidor envía el resultado de la respuesta HTTP al cliente;

En el proceso de interacción entre el cliente web y el programa CGI del servidor, se deben preceder las siguientes condiciones: primero, analizar el formulario GET, establecer variables de entorno; segundo, establecer un canal de comunicación entre el servidor y el programa CGI, y redireccionar la salida estándar del programa CGI El puerto de lectura de la tubería al servidor.

Cuando el cliente inicia una solicitud HTTP, el navegador envía una URL al servidor y el servidor apunta a un programa de aplicación de acuerdo con la URL. Los programas cgi que ejecuta el servidor están determinados por la solicitud iniciada por el navegador. Cada programa CGI solo puede procesar una solicitud de usuario, y cuando se activa un proceso de programa CGI, se crea una variable de entorno que pertenece al proceso.

El siguiente es un ejemplo de un formulario de envío de página de inicio, el código es el siguiente:

<div class="login">
<form method="post" action="/checklogin.cgi">
<div class="item user"><input type="text" placeholder="请输入用户名" name="username" id="username"/></div>
<div class="item pass"><input type="password" placeholder="请输入密码" name="password" id="password"/></div>
<div class="btn"><button type="submit">登录</div>
</form>
</div>

Pasar el nombre de usuario y contraseña al programa checklogin.cgi a través de POST. Los datos de usuario del cliente serán almacenados en la entrada estándar del proceso CGI. Al mismo tiempo, la longitud de los datos de usuario será asignada a CONTENT_LENGTH en la variable de entorno, y el cliente la enviará por POST Los datos tienen un tipo MIME correspondiente, que se registra en la variable de entorno CONTENT_TYPE. Checklogin.cgi verifica la exactitud del nombre de usuario y contraseña. Después de la verificación, la página salta según la lógica empresarial.

Cuando el servidor HTTP llama al programa CGI, las variables de entorno contienen mucha información útil, incluida la URL actual, los parámetros GET, la dirección IP del cliente, los encabezados de solicitud, etc. Las variables de entorno relevantes son las siguientes:

REQUEST_METHOD Método de transmisión de información entre el servidor y el programa CGI
QUERY_STRING Información transmitida al usar GET
LARGANCIA DE CONTENIDO Longitud efectiva del mensaje en STDIO
TIPO DE CONTENIDO Indica el tipo MIME del mensaje enviado
CONTENT_FILE Nombre de archivo utilizado para transmitir datos cuando se usa el estándar Windows HTTPd / WinCGI
PATH_INFO Información de ruta
PATH_TRANSLATED El nombre de ruta completo del programa CGI
SCRIPT_NAME El nombre del programa CGI llamado

La variable de entorno es un área de memoria que guarda información del usuario. Cuando el cliente envía una solicitud CGI a través del navegador, el servidor busca el programa CGI local correspondiente y lo ejecuta. Mientras ejecuta el programa CGI, el servidor guarda la información del usuario en variables de entorno. El programa CGI consulta primero el método de transmisión de información REQUEST_METHOD entre el servidor y el programa CGI, si es POST, toma los datos len del len de la variable de entorno y luego a la entrada estándar correspondiente del proceso. Si es GET, los datos del usuario están en QUERY_STRING de la variable de entorno .

Supongo que te gusta

Origin blog.csdn.net/weixin_38293850/article/details/108056184
Recomendado
Clasificación