Desarrollo Web con CGI: Peticiones HTTP, Lenguajes de Marcas y Gestión de Sesiones
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 4,65 KB
Common Gateway Interface (CGI): Fundamentos y Funcionamiento
¿Qué es CGI?
El Common Gateway Interface (CGI) es el procedimiento estándar para comunicar los servidores HTTP y aplicaciones externas con el fin de generar documentos de forma dinámica. La URL de la petición identifica un programa ejecutable externo, y el servidor web debe poder identificarlo como tal con algún criterio. El servidor ejecutará el programa externo y le pasará la información del usuario. CGI especifica cómo pasar parámetros y ejecutar las aplicaciones externas, las cuales pueden estar programadas en cualquier lenguaje, siempre que este sea capaz de aceptar la entrada y de crear una respuesta adecuada.
Tipos de Peticiones HTTP con CGI: GET y POST
Con las aplicaciones CGI se pueden utilizar principalmente dos tipos de peticiones HTTP: GET y POST.
Peticiones GET
Las peticiones GET utilizan la variable query_string
, que toma el valor de los parámetros tal y como están en la URL. La información del usuario se codifica directamente en la URL de la propia petición.
Peticiones POST
Las peticiones POST, en cambio, pasan los parámetros por la entrada estándar (stdin
) y los redireccionan a la salida estándar (stdout
). En POST, los parámetros pasan por la entrada estándar (stdin
), y el servidor los pasa directamente a la aplicación. stdin
puede ser, por ejemplo, el teclado.
Diferencias Clave en el Envío de Información
La principal diferencia en la forma de envío de las peticiones GET y POST radica en que, en las peticiones GET, la información del usuario se codifica en la URL de la propia petición. En contraste, las peticiones POST incluyen la información del usuario en el cuerpo del paquete de petición HTTP.
Formas de Envío con el Método POST
Existen dos formas principales de enviar información mediante el método POST:
application/x-www-form-urlencoded
- Usada por defecto.
- Los datos se codifican en forma de query string, pero se envían en el cuerpo del paquete HTTP.
- No permite enviar archivos.
multipart/form-data
- Separa los parámetros mediante una marca aleatoria (boundary).
- Permite enviar archivos.
- La marca (boundary) tiene que cumplir ciertas reglas.
- Las variables se envían entre las marcas.
Lenguajes de Marcas: Estructura y Metadatos
Definición de Lenguaje de Marcas
Un lenguaje de marcas permite estructurar los contenidos de un documento. Además, proporcionan metadatos al contenido, es decir, proporcionan información adicional sobre los datos.
Tipos de Marcas
Existen tres tipos principales de marcas:
- De presentación: Describen cómo representar los datos.
- De procedimiento: Describen cómo procesar los datos.
- Descriptivas: Etiquetan el significado de los datos.
Comportamiento del Intérprete PHP
Ejecución Independiente por Petición
Que el intérprete PHP se ejecute de manera independiente para cada petición implica que no hay persistencia ni de estado ni de datos. En este caso, es necesario implementar la persistencia de manera adicional, por ejemplo, utilizando bases de datos (BBDD) o cookies.
Gestión de Cookies en Peticiones HTTP
Criterios de Selección de Cookies para Envío al Servidor
Las cookies seleccionadas para ser devueltas al servidor en una petición dada deben cumplir los siguientes criterios:
- El nombre canónico del servidor al que se envía coincide con el almacenado en el atributo
Domain
de la cookie. - El atributo
Path
de la cookie coincide exactamente con un prefijo de la URL que se quiere solicitar, hasta la última barra a la derecha. - La cookie no ha expirado (según el atributo
Max-Age
).
Si más de una cookie cumple estos criterios, se envían ordenadas, desde la que contiene el Path
más específico hasta la que menos.