El protocolo HTTP o Protocolo de Transferencia de Hipertexto es un conjunto de normas que posibilitan la comunicación entre servidor y cliente, permitiendo la transmisión de información entre ambos. La información transferida son las conocidas páginas HTML o páginas web. Se trata del método más común de intercambio de información en la World Wide Web.
HTTP define tanto la sintaxis como la semántica que utilizan clientes y servidores para comunicarse. Algunas consideraciones importantes sobre HTTP son las siguientes:
- Es un protocolo que sigue el esquema petición-respuesta entre un cliente y un servidor.
- Utiliza por defecto el puerto 80
- Al cliente que efectúa la petición, por ejemplo un navegador web, se le conoce como agente del usuario (user agent).
- A la información transmitida se la llama recurso y se la identifica mediante un localizador uniforme de recursos (URL).
Por ejemplo:
http://www.iesalandalus.org/organizacion.htm
- 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.
El funcionamiento esquemático del protocolo HTTP es el siguiente:
- El usuario especifica en el cliente web la dirección del recurso a localizar con el siguiente formato:
http://dirección[:puerto][ruta]
, por ejemplo:http://www.iesalandalus.org/organizacion.htm
- El cliente web descompone la información de la URL diferenciando el protocolo de acceso, la IP o nombre de dominio del servidor, el puerto y otros parámetros si los hubiera.
- El cliente web establece una conexión al servidor y solicita el recurso web mediante un mensaje al servidor, encabezado por un método, por ejemplo
GET /organizacion.htm HTTP/1.1
y otras líneas. - El servidor contesta con un mensaje encabezado con la línea
HTTP/1.1 200 OK
, si existe la página y la envía, o bien envía un código de error. - El cliente web interpreta el código HTML recibido.
- Se cierra la conexión.
En el siguiente enlace dispones de un ejemplo de diálogo entre cliente y servidor utilizando el protocolo HTTP. Más adelante, estudiaremos algunos detalles más de este protocolo para poder programar un servicio web básico.
HTTP es un protocolo sin estado, lo que significa que no recuerda nada relativo a conexiones anteriores a la actual. Algunas aplicaciones necesitan que se guarde el estado y para ello hacen uso de lo que se conoce como cookie.