¿Qué es HTTP? | Protocolo de Transferencia de Hipertexto Explicado

HTTP (HyperText Transfer Protocol) es la base de la comunicación de datos en la web. Aprende cómo funciona HTTP, qué significan los métodos y códigos de estado HTTP, la diferencia entre HTTP y HTTPS, y cómo se comparan HTTP/1.1, HTTP/2 y HTTP/3.

HTTP (HyperText Transfer Protocol) es el protocolo de capa de aplicación que define cómo los clientes y servidores intercambian datos en la web. Cada visita a un sitio web, llamada a una API y descarga de archivos usa HTTP.


TL;DR HTTP es el conjunto de reglas que gobierna cómo los navegadores y servidores se comunican. Un navegador envía una solicitud HTTP (ej.: GET /index.html); el servidor devuelve una respuesta HTTP con un código de estado y contenido. HTTP no tiene estado — cada solicitud es independiente. HTTPS es HTTP protegido con cifrado TLS. HTTP/1.1 (1997) abría una conexión por solicitud; HTTP/2 (2015) multiplexaba muchas solicitudes en una conexión; HTTP/3 (2022) reemplazó TCP con QUIC para menor latencia. Toda interacción web usa HTTP en su núcleo.


¿Qué es HTTP?

HTTP (HyperText Transfer Protocol) es un protocolo de capa de aplicación que define el formato y las reglas para la comunicación entre clientes (navegadores, aplicaciones, APIs) y servidores. Es la base de la World Wide Web.

HTTP opera en un modelo de solicitud-respuesta:

  1. Un cliente envía una solicitud HTTP a un servidor.
  2. El servidor procesa la solicitud y devuelve una respuesta HTTP.

HTTP no tiene estado — cada solicitud es completamente independiente. El servidor no tiene memoria de solicitudes anteriores del mismo cliente. Las cookies, sesiones y tokens se usan para mantener el estado entre solicitudes en la capa de aplicación.

HTTP se ejecuta sobre TCP (HTTP/1.1 y HTTP/2) o QUIC/UDP (HTTP/3). HTTPS es HTTP con cifrado TLS agregado en la capa de transporte.


El ciclo de solicitud-respuesta HTTP

Estructura de una solicitud HTTP

GET /products?category=shoes HTTP/1.1
Host: shop.example.com
Accept: application/json
Authorization: Bearer eyJhbGci...
User-Agent: Mozilla/5.0

Una solicitud HTTP tiene cuatro partes:

  1. Línea de solicitud — método, ruta, versión HTTP
  2. Headers — metadatos sobre la solicitud (host, tipo de contenido, autenticación)
  3. Línea en blanco — separa los headers del cuerpo
  4. Cuerpo (opcional) — datos enviados con solicitudes POST, PUT, PATCH

Estructura de una respuesta HTTP

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 342
Cache-Control: max-age=3600
{"products": [...]}

Una respuesta HTTP tiene:

  1. Línea de estado — versión HTTP, código de estado, frase de razón
  2. Headers — metadatos sobre la respuesta
  3. Línea en blanco
  4. Cuerpo — el contenido solicitado

Métodos HTTP

Los métodos HTTP (también llamados verbos) definen la acción prevista de la solicitud:

MétodoPropósitoTiene cuerpoIdempotenteSeguro
GETRecuperar un recursoNo
POSTCrear un recurso o enviar datosNoNo
PUTReemplazar un recurso por completoNo
PATCHActualizar parcialmente un recursoNoNo
DELETEEliminar un recursoNoNo
HEADIgual que GET pero sin cuerpo de respuestaNo
OPTIONSDescubrir capacidades del servidor (usado en preflight CORS)No

Idempotente significa que hacer la misma solicitud varias veces produce el mismo resultado. Seguro significa que el método no cambia el estado del servidor.


Códigos de estado HTTP

Los códigos de estado son números de tres dígitos que le dicen al cliente el resultado de la solicitud:

RangoCategoríaEjemplos comunes
1xxInformativo100 Continue, 101 Switching Protocols
2xxÉxito200 OK, 201 Created, 204 No Content
3xxRedirección301 Moved Permanently, 302 Found, 304 Not Modified
4xxError del cliente400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests
5xxError del servidor500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout

El primer dígito define la categoría. 4xx significa que el cliente cometió un error. 5xx significa que el servidor falló.


Headers HTTP clave

Headers de solicitud

HeaderPropósitoEjemplo
HostDominio del servidor de destinoHost: api.example.com
AuthorizationCredenciales de autenticaciónAuthorization: Bearer <token>
Content-TypeFormato del cuerpo de la solicitudContent-Type: application/json
AcceptFormatos que el cliente puede manejarAccept: application/json
Cache-ControlDirectivas de cachéCache-Control: no-cache
User-AgentIdentificador del software clienteUser-Agent: Mozilla/5.0

Headers de respuesta

HeaderPropósitoEjemplo
Content-TypeFormato del cuerpo de la respuestaContent-Type: text/html; charset=utf-8
Cache-ControlCuánto tiempo almacenar en caché la respuestaCache-Control: max-age=3600
LocationURL de destino de la redirecciónLocation: https://example.com/new
Set-CookieEstablecer una cookie en el clienteSet-Cookie: session=abc; HttpOnly
Strict-Transport-SecurityImponer HTTPSStrict-Transport-Security: max-age=31536000

Comparación de versiones HTTP

CaracterísticaHTTP/1.1HTTP/2HTTP/3
Año199720152022
TransporteTCPTCPQUIC (UDP)
MultiplexaciónNo (una solicitud por conexión)Sí (muchas solicitudes por conexión)
Compresión de headersNoSí (HPACK)Sí (QPACK)
Bloqueo head-of-lineSí (a nivel TCP)No
TLS requeridoNoEn la práctica sí (los navegadores lo requieren)Sí (integrado)
Configuración de conexiónHandshake TCPHandshake TCP + TLSQUIC (1-RTT o 0-RTT)

HTTP/1.1 abre una nueva conexión TCP para cada solicitud (o reutiliza conexiones con keep-alive, pero aún serializa las solicitudes). HTTP/2 envía múltiples solicitudes simultáneamente sobre una sola conexión. HTTP/3 elimina el bloqueo head-of-line de TCP usando QUIC sobre UDP — la pérdida de paquetes en un stream no detiene a los demás.


HTTP vs HTTPS

 HTTPHTTPS
Puerto80443
CifradoNingunoTLS
AutenticaciónNingunaCertificado del servidor
Integridad de datosNo garantizadaGarantizada por TLS
SEOPenalizado por GoogleRequerido para posicionamiento
Indicador del navegadorAdvertencia “No seguro”Ícono de candado

HTTPS es HTTP con una capa TLS agregada. El handshake TLS ocurre antes de que fluya cualquier dato HTTP. Todo el contenido HTTP — incluyendo headers, cookies y cuerpos de solicitud — está cifrado en HTTPS.


Preguntas frecuentes

¿Qué es HTTP en términos simples? HTTP es el lenguaje que usan los navegadores y servidores web para comunicarse. Cuando escribes una URL y presionas Enter, tu navegador envía una solicitud HTTP pidiendo esa página. El servidor devuelve una respuesta HTTP que contiene el HTML. HTTP define el formato de ambos mensajes.

¿Cuál es la diferencia entre HTTP y HTTPS? HTTPS es HTTP con cifrado TLS. En HTTP, todos los datos viajan en texto plano — cualquiera entre tú y el servidor puede leerlos. En HTTPS, TLS cifra la conexión para que solo el cliente y el servidor puedan leer los datos. Los navegadores modernos requieren HTTPS y advierten a los usuarios sobre los sitios HTTP.

¿Qué significa que HTTP no tenga estado? Que HTTP no tenga estado significa que cada solicitud es completamente independiente — el servidor no recuerda solicitudes anteriores del mismo cliente. Cada solicitud debe contener toda la información necesaria para procesarla. Las aplicaciones mantienen el estado (como sesiones de inicio de sesión) usando cookies, tokens o sesiones del lado del servidor sobre HTTP.

¿Cuál es la diferencia entre GET y POST? GET recupera datos y no debe tener efectos secundarios — es seguro e idempotente. Los parámetros GET van en la URL. POST envía datos al servidor (creando o modificando recursos) y tiene un cuerpo de solicitud. POST no es idempotente — llamarlo dos veces crea dos recursos.

¿Qué significa un error 404? Un error 404 Not Found significa que el servidor recibió y entendió la solicitud, pero no pudo encontrar el recurso solicitado. El recurso puede que nunca haya existido, puede haber sido eliminado, o la URL puede ser incorrecta. Es un error del cliente (4xx) porque el cliente solicitó algo que no está ahí.

¿Qué es HTTP/2 y por qué es más rápido? HTTP/2 introdujo la multiplexación — enviando múltiples solicitudes simultáneamente sobre una sola conexión TCP. HTTP/1.1 enviaba solicitudes de una en una por conexión (o abría muchas conexiones paralelas). HTTP/2 también comprime headers (HPACK) y permite que los servidores envíen recursos de forma proactiva. El resultado es significativamente menos sobrecarga de conexión y cargas de página más rápidas.

¿Qué es HTTP/3? HTTP/3 reemplaza TCP con QUIC, un protocolo de transporte construido sobre UDP. QUIC integra TLS 1.3 directamente, reduciendo la configuración de conexión a 1-RTT (o 0-RTT para conexiones de retorno). Elimina el bloqueo head-of-line — en HTTP/2 sobre TCP, un paquete perdido detiene todos los streams; QUIC maneja cada stream de forma independiente. HTTP/3 es especialmente beneficioso en redes móviles donde la pérdida de paquetes es común.

¿Qué es un header HTTP? Un header HTTP es un par clave-valor enviado en una solicitud o respuesta HTTP que proporciona metadatos. Los headers de solicitud le dicen al servidor sobre el cliente (idioma Accept, token de Authorization, Content-Type del cuerpo). Los headers de respuesta le dicen al cliente sobre la respuesta (Content-Type del cuerpo, directivas Cache-Control, políticas de seguridad como HSTS).

mantente actualizado

Suscríbete a nuestro boletín informativo

Recibe las últimas actualizaciones de productos, destacados de eventos y conocimientos de la industria tecnológica directamente en tu bandeja de entrada.