A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Qué es HTTP

HTTP, protocolo de transferencia de hipertextoDefinición:

HTTP, siglas de Hypertext Transfer Protocol o protocolo de transferencia de hipertexto, es el protocolo de aplicación que permite intercambiar recursos entre clientes y servidores en la Web. Define la estructura de las solicitudes y respuestas utilizadas para pedir y entregar documentos, imágenes, datos y otros contenidos.

HTTP sigue un modelo de comunicación cliente-servidor. Habitualmente, un navegador actúa como cliente y solicita un recurso identificado por una URL. El servidor procesa la petición y devuelve una respuesta con un código de estado, encabezados y, cuando corresponde, un cuerpo con el contenido solicitado.

Cómo funciona HTTP

Una comunicación comienza cuando el cliente establece la conexión necesaria y envía un mensaje HTTP. La solicitud incluye un método, el destino del recurso, la versión utilizada y diferentes encabezados. Algunas solicitudes también incorporan un cuerpo con datos, como ocurre al enviar un formulario o una representación JSON.

El servidor interpreta el mensaje, aplica la lógica correspondiente y genera una respuesta. Esta contiene un código de estado, encabezados descriptivos y, si procede, un cuerpo. Los encabezados pueden indicar el tipo de contenido, su longitud, reglas de almacenamiento, autenticación o instrucciones para gestionar la conexión.

HTTP no obliga a que el recurso sea un archivo estático. El servidor puede generar una página, consultar una base de datos, ejecutar una aplicación o actuar como intermediario. El protocolo define cómo se intercambian los mensajes, no cómo debe producirse internamente la información.

Métodos HTTP

El método expresa la acción que el cliente desea realizar sobre un recurso. Cada método posee una semántica concreta y algunas propiedades, como ser seguro, idempotente o admitir un cuerpo. Entre los métodos más habituales se encuentran los siguientes:

  • GET: Solicita una representación del recurso sin indicar una modificación.
  • HEAD: Pide los mismos encabezados que GET, pero sin devolver el cuerpo.
  • POST: Envía datos para que el servidor los procese o cree un recurso subordinado.
  • PUT: Crea o reemplaza la representación del recurso identificado.
  • PATCH: Solicita una modificación parcial de un recurso.
  • DELETE: Pide eliminar la asociación o el recurso indicado.
  • OPTIONS: Consulta las opciones de comunicación disponibles para un destino.

El resultado real depende de la implementación y de los permisos del cliente. Utilizar un método determinado no garantiza que el servidor acepte la operación, por lo que este debe responder con el código de estado apropiado.

Códigos de estado

Los códigos de estado son números de tres cifras que resumen el resultado de una solicitud. La primera cifra define la categoría general de la respuesta:

  • 1xx, información: La solicitud continúa o se ha recibido una respuesta provisional.
  • 2xx, éxito: La operación se recibió, comprendió y procesó correctamente.
  • 3xx, redirección: El cliente debe realizar otra acción o consultar otra ubicación.
  • 4xx, error del cliente: La solicitud no puede procesarse por su formato, permisos o recurso solicitado.
  • 5xx, error del servidor: El servidor no pudo completar una solicitud aparentemente válida.

Algunos ejemplos frecuentes son 200 OK, 301 Moved Permanently, 404 Not Found y 500 Internal Server Error. El código proporciona una señal resumida, mientras que los encabezados y el cuerpo pueden aportar información adicional sobre el resultado.

HTTP es un protocolo sin estado

HTTP es un protocolo sin estado porque, por defecto, cada solicitud puede interpretarse de manera independiente. El protocolo no exige que el servidor recuerde automáticamente las peticiones anteriores del mismo usuario. Esta propiedad simplifica la comunicación, pero no impide que una aplicación mantenga sesiones.

Las aplicaciones pueden relacionar distintas solicitudes mediante una cookie, un identificador de sesión, un token o información incluida en el propio mensaje. Por tanto, HTTP sigue siendo sin estado aunque la aplicación construida sobre él conserve información entre interacciones.

Versiones de HTTP

HTTP/1.0 estableció una base común para la comunicación web. HTTP/1.1 incorporó conexiones persistentes, reglas de almacenamiento más completas y otras mejoras. No obstante, varias solicitudes podían bloquearse entre sí o requerir conexiones paralelas para mejorar el rendimiento.

HTTP/2 introdujo una representación binaria, compresión de encabezados y multiplexación de varias secuencias sobre una misma conexión TCP. HTTP/3 mantiene la semántica de HTTP, pero utiliza QUIC sobre UDP para reducir ciertos bloqueos y mejorar el establecimiento y la recuperación de conexiones.

Las versiones no cambian el propósito básico del protocolo. Métodos, códigos y encabezados continúan expresando el significado de los mensajes, mientras que cada versión modifica la forma de transportarlos con mayor eficiencia.

Diferencias entre HTTP y HTTPS

HTTPS es HTTP protegido mediante TLS. El cifrado ayuda a evitar que terceros lean o modifiquen la comunicación durante el tránsito, y el certificado permite autenticar el servidor frente al cliente. HTTPS no reemplaza la semántica de HTTP, sino que protege el canal por el que circulan sus mensajes.

Una URL HTTP suele comenzar por http://, mientras que una conexión HTTPS utiliza https://. Los navegadores y buscadores actuales esperan HTTPS en sitios públicos porque HTTP transmite la información sin cifrado. La protección del canal tampoco corrige vulnerabilidades de la aplicación ni garantiza que el contenido sea fiable.

HTTP también incorpora mecanismos de caché, negociación de contenido, autenticación, redirección y control de acceso. Estas funciones convierten el protocolo en una base extensible para páginas web, API y servicios distribuidos.