Introducción

  1. HTTP es un protocolo sin estado: que no guarda ninguna información sobre conexiones anteriores.

  2. El desarrollo de aplicaciones web necesita frecuentemente mantener estado.

  3. Para esto se usan las cookies, que es información que un servidor puede almacenar en el sistema cliente.

  4. Esto le permite a las aplicaciones web introducir la noción de sesión, y también permite rastrear usuarios ya que las cookies pueden guardarse en el cliente por tiempo indeterminado.
  5. Una transacción HTTP está formada por un encabezado seguido, opcionalmente, por una línea en blanco y algún dato.

  6. El encabezado especificará cosas como la acción requerida del servidor, o el tipo de dato retornado, o el código de estado.
  7. El uso de campos de encabezados enviados en las transacciones HTTP le da flexibilidad al protocolo. Estos campos permiten que se envíe información descriptiva en la transacción, permitiendo así la autenticación, cifrado e identificación de usuario.
  8. Un encabezado es un bloque de datos que precede a la información propiamente dicha, por lo que a veces se hace referencia a él como metadato, porque tiene datos sobre los datos.
  9. Si se reciben líneas de encabezado del cliente, el servidor las coloca en las variables de entorno de CGI con el prefijo HTTP_ seguido del nombre del encabezado. Cualquier carácter guion ( - ) del nombre del encabezado se convierte a caracteres "_".

    Ejemplos de estos encabezados del cliente son HTTP_ACCEPT y HTTP_USER_AGENT.

    1. HTTP_ACCEPT. Los tipos MIME que el cliente aceptará, dados los encabezados HTTP. Los elementos de esta lista deben estar separados por comas
    2. HTTP_USER_AGENT. El navegador que utiliza el cliente para realizar la petición. El formato general para esta variable es: software/versión biblioteca/versión.
    El servidor envía al cliente:
    1. Un código de estado que indica si la petición fue correcta o no. Los códigos de error típicos indican que el archivo solicitado no se encontró, que la petición no se realizó de forma correcta o que se requiere autenticación para acceder al archivo.
    2. La información propiamente dicha. HTTP permite enviar documentos de todo tipo y formato, como gráficos, audio y video.
    3. Información sobre el objeto que se retorna.

Casiano Rodriguez León 2015-06-18