HTTP
Hypertext Transfer Protocol o HTTP (en español protocolo
de transferencia de hipertexto) es el protocolo usado en cada transacción de la
World Wide Web. HTTP fue desarrollado por el World Wide Web Consortium y la
Internet Engineering Task Force, colaboración que culminó en 1999 con la
publicación de una serie de RFC, el más importante de ellos es el RFC 2616 que
especifica la versión 1.1. HTTP define la sintaxis y la semántica que utilizan
los elementos de software de la arquitectura web (clientes, servidores,
proxies) para comunicarse. Es un protocolo orientado a transacciones y sigue el
esquema petición-respuesta entre un cliente y un servidor. Al cliente que
efectúa la petición (un navegador web o un spider) se lo conoce como "user
agent" (agente del usuario). A la información transmitida se la llama
recurso y se la identifica mediante un localizador uniforme de recursos (URL).
Los recursos pueden ser archivos, el resultado de la ejecución de un programa,
una consulta a una base de datos, la traducción automática de un documento,
etc.
HTTP es un protocolo sin estado, es decir, que no guarda
ninguna información sobre conexiones anteriores. El desarrollo de aplicaciones
web necesita frecuentemente mantener estado. Para esto se usan las cookies, que
es información que un servidor puede almacenar en el sistema cliente. Esto le
permite a las aplicaciones web instituir la noción de "sesión", y
también permite rastrear usuarios ya que las cookies pueden guardarse en el
cliente por tiempo indeterminado.
Una transacción HTTP está formada por un encabezado seguido,
opcionalmente, por una línea en blanco y algún dato. El encabezado especificará
cosas como la acción requerida del servidor, o el tipo de dato retornado, o el
código de estado.
El uso de campos de encabezados enviados en las
transacciones HTTP le dan gran 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.
Un encabezado es un bloque de datos que precede a la
información propiamente dicha, por lo que muchas veces se hace referencia a él
como metadato —porque tiene datos sobre los datos—.
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 "_".
El servidor puede excluir cualquier encabezado que ya
esté procesado, como Authorization, Content-type y Content-length. El servidor
puede elegir excluir alguno o todos los encabezados, si incluirlos, si se
excede algún límite del entorno de sistema. Ejemplos de esto son las variables
HTTP_ACCEPT y HTTP_USER_AGENT.

No hay comentarios:
Publicar un comentario