Quizás los lectores sientan que los programas CGI tienen una sensación de misterio. En esta sección, describiremos algunos procesos de programación básicos de los programas CGI. Después de leerlo, ya no habrá ningún misterio.
3. Otros problemas con las especificaciones CGI:
Quizás los lectores sientan que los programas CGI tienen una sensación de misterio. En esta sección, describiremos algunos procesos de programación básicos de los programas CGI. Después de leerlo, ya no habrá ningún misterio.
En primer lugar, al realizar cualquier trabajo de programación, divida una tarea grande en muchas tareas pequeñas, y cada tarea pequeña completa una función relativamente independiente. Mucha gente se muestra reacia a escribir programas CGI por sí mismos porque les resulta difícil la programación CGI. De hecho, si divide un programa CGI típico en las siguientes partes y las resuelve una por una, no tendrá dificultades con el programa CGI:
En términos generales, al llamar a un programa CGI en el navegador, el servidor primero debe encontrar el programa CGI. Generalmente, el programa CGI se coloca en el directorio especificado por el servidor en nuestro OmniHTTPD, en cgi-bin y cgi-win virtual. Los directorios reales especificados por el directorio son los directorios c:httpdcgi-bin y c:httpdcgi-win respectivamente. Puede modificar el directorio real en OmniHTTPD o agregar un directorio virtual, como por ejemplo: especificar el directorio virtual cgi-test como c:my-cgi si tiene un CGI llamado test1.cgi en el programa de directorio c:my-cgi; , puede llamarlo en su navegador en la dirección http://localhost/cgi-test/test1.cgi.
En circunstancias normales, el servidor encuentra el programa CGI solicitado por el navegador y genera un proceso de este programa CGI. De esta forma, el navegador y el servidor han establecido una conexión. Una vez que el programa CGI ha terminado de ejecutarse, el proceso desaparece y se pierde la conexión. Todas las operaciones en la figura anterior se completan dentro del tiempo en que se establece la conexión. Por lo tanto, las tareas completadas por cada programa CGI deben ser lo más pequeñas posible, de lo contrario, ocupará mucho tiempo y recursos del servidor y la espera. tiempo del navegador del cliente también será muy largo.
Como puede ver en la figura anterior, los programas CGI generalmente se dividen en tres partes: entrada de datos, procesamiento de datos y salida de datos. A veces es necesario interactuar con la base de datos en la parte de procesamiento de datos (esta también es la especialidad de CGI); programas). Entre estas tres partes, la entrada y salida de datos tienen especificaciones estrictas, y el procesamiento de datos es donde puede usar su imaginación. A continuación, me centraré en las especificaciones y precauciones para la entrada y salida de datos:
Anteriormente, hemos enumerado casi todas las variables de entorno utilizadas por los programas CGI. Entre ellos, una parte considerable está estrechamente relacionada con la entrada y salida de datos. A continuación, enumeramos las variables de entorno más utilizadas por categoría:
Variables de entorno relacionadas con el servidor:
GATEWAY_INTERFACE
SERVIDOR_NOMBRE
SERVIDOR_PORT
PROTOCOLO_SERVIDOR
SERVIDOR_SOFTWARE
Variables de entorno relacionadas con el cliente:
HTTP_ACEPTAR
HTTP_ACCEPT_ENCODING
HTTP_ACCEPT_LANGUAGE
HTTP_AUTHORIZACIÓN
HTTP_CHARGE_TO
HTTP_DESDE
HTTP_IF_MODIFIED_SINCE
HTTP_PRAGMA
HTTP_REFERER
HTTP_USER_AGENT
Variables de entorno relacionadas con la solicitud:
AUTH_TYPE
CONTENIDO_FILE
CONTENIDO_LENGTH
CONTENIDO_TIPO
ARCHIVO_SALIDA
RUTA_INFO
RUTA_TRADUCCIÓN
QUERY_STRING
REMOTE_ADDR
USUARIO_REMOTO
SOLICITUD_LINE
SOLICITUD_METHOD
SCRipT_NAME
Vale la pena mencionar aquí que CONTENT_FILE y OUTPUT_FILE. En Windows 3.1 y DOS, no muchos lenguajes pueden leer y escribir mediante entrada y salida estándar (STDIN y STDOUT), por lo que se utilizan estas dos variables. Para otras variables de entorno, consulte la lista detallada anterior.
Como se mencionó anteriormente, el método GET pasa datos a través de URL; el método POST pasa datos a través de STDIN. No importa qué método se utilice, los datos se codifican durante la transmisión de datos. Sin embargo, no tenemos que preocuparnos por codificar y decodificar, porque el lenguaje de desarrollo que usaremos puede completar esta tarea automáticamente: cgi-lib.pl en Perl, TWebModule en Delphi, etc.
La información del encabezado también es muy importante en la programación CGI. La información del encabezado es una señal del programa CGI antes de enviar información al cliente. Hay tres tipos principales de información de encabezado:
Tipo de contenido //Transmitir HTML al navegador
Ubicación //Pasa la nueva URL al navegador
Estado // Generalmente se usa para verificar errores cuando ocurre un error en el programa CGI
El tipo de contenido es el tipo de información procesada por el navegador, principalmente el tipo MIME. Los métodos se definen como combinaciones de tipos y subtipos. Los tipos MIME más utilizados son: texto, multiparte, mensaje, aplicación, imagen, audio y vídeo.
Por ejemplo, antes de que un programa CGI envíe un documento HTML al navegador, primero debe enviar texto/html. Escrito en Perl de la siguiente manera:
imprimir "Tipo de contenido: texto/html"
print "< h1> ¡Hola a todos! </h1> "
La ubicación hace que el navegador redirija a la nueva URL. Por ejemplo:
imprimir "Ubicación: http://www.chinabyte.com"
Este programa Perl redirige el navegador a la página de inicio de ChinaByte.
Estado indica el estado del programa CGI y generalmente se usa para verificar si hay errores cuando falla el programa CGI. La siguiente tabla enumera los códigos de estado comúnmente utilizados y sus significados:
Descripción del resultado del código
La solicitud 200 OK se satisface normalmente
202 Aceptar La solicitud fue aceptada y está siendo procesada.
301 Movido El documento fue movido a una nueva ubicación
302 Encontrado El documento no está en la descripción, sino en otra parte del servidor.
400 Solicitud incorrecta La sintaxis de la solicitud HTTP es incorrecta.
401 El documento no autorizado requiere derechos de acceso
403 Forbindden El servidor niega el acceso al documento
404 No encontrado El servidor no puede encontrar el documento.
500 Error del servidor Se produjo un error grave en el servidor.
502 Servicio sobrecargado El servidor está ocupado y no puede procesar la solicitud.
Esto termina aquí. Una vez que tenga estos conocimientos básicos de CGI, podrá comenzar a desarrollar programas CGI paso a paso utilizando cualquier lenguaje. Déjame decirte otra vez, los programas CGI no son misteriosos, es solo un diálogo para crear un servidor y algún tipo de tarea.