HTTP

HTTP es el protocolo en la comunicación entre nuestro Navegador (cliente) y los servidores web. Entraremos en más detalle en estas páginas con el objetivo de comprender la ideas básicas que necesitamos saber.

TCP/IP

El Protocolo de Control de Transmisión (TCP) y el Protocolo Internet (IP) son dos de los protocolos más importantes de Internet, y por ello suelen usarse para referirse al conjunto de los principales protocolos de Internet.

TCP/IP define cómo se mueve la información desde el remitente hasta el destinatario. En primer lugar, los programas envían mensajes o datos a uno de los protocolos de la capa de transporte de Internet, UDP (User Datagram Protocol) o TCP (Transmission Control Protocolo). Estos protocolos reciben los datos de la aplicación, los dividen en partes más pequeñas llamadas paquetes, añaden una dirección de destino y, a continuación, pasan los paquetes a la siguiente capa de protocolo, la capa de red de Internet.

La capa de red de Internet pone el paquete en un datagrama de IP (Internet Protocol), pone la cabecera y la cola de datagrama, decide dónde enviar el datagrama (directamente a un destino o a una pasarela) y pasa el datagrama a la capa de interfaz de red. La capa de interfaz de red acepta los datagramas IP y los transmite como tramas a través de un hardware de red específico, por ejemplo redes Ethernet.

HTTP

HTTP es un protocolo de aplicación que utiliza TCP como protocolo de transporte e IP como protocolo de red. Hay dos tipos de mensajes HTTP: solicitud y respuesta

Ejemplo de petición HTTP

GET /saludo.html HTTP/1.1
Host www.urjc.es

Ejemplo de Respuesta

HTTP/1.1 200 OK
Date: Sun, 7 May 2016 12:00:01 GMT
Content-Type: text/html
Content-Length: 45
<HTML>
<BODY> Hola Mundo! </BODY>
</HTML>

Métodos HTTP

Los mensaje HTTP de solicitud tiene un formato legible por humanos (ASCII). Algunos métodos HTTP 1.0 son:

  • GET: es el método más común en solicitudes. El navegador pide el objeto indicado en la URL. Se pueden enviar datos en la URL.
  • POST: Manda datos al servidor para su procesado. Similar a GET, pero además envía datos en el cuerpo del mensaje. La URL corresponde a un página dinámica que trata los datos enviados.
  • HEAD: es similar a GET, pero sólo pide las cabeceras HTTP. Sirve para comprobar enlaces, para consultar información sobre el fichero (fecha de modificación, tamaño, tipo de servidor, tipo de documento solicitado) antes de solicitarlo, etc…

HTTP 1.1 añadió los siguientes métodos de solicitud:

  • PUT: Almacena el documento enviado en el cuerpo del mensaje. Suele utilizarse con herramientas de publicación web. Permite al usuario o a una aplicación cargar un objeto en una ruta específica.
  • DELETE: Permite a un usuario o aplicación borrar un objeto de un servidor web.

Respuesta HTTP

Algunos códigos de respuesta:

  • 200 OK: Solicitud exitosa. Este es el mensaje de respuesta más habitual y no solo indica que todo ha ido bien si no que también contiene la respuesta: página HTML, imagen, fichero, etc.
  • 301 Moved Permanently: El objeto solicitado ha sido movido permanentemente. La nueva localización se especifica en (Location:). Los códigos 30X indican que tenemos que realizar una nueva petición a la URL que contiene la respuesta.
  • 400 Bad Request: La solicitud no ha sido comprendida por el servidor. Los códigos 40X indican errores que suelen ser achacables al cliente.
  • 404 Not Found: El objeto solicitado no existe en el servidor.
  • 505 HTTP Version Not Supported. Los códigos 5XX indican errores no achacables a nuestras acciones si no a errores en el servidor.