Web Protocol

HTTP & HTTPS

HTTP es el protocolo de la web. Los métodos, códigos de estado, headers y el almacenamiento en caché son el vocabulario sobre el cual se construye cada API y cada carga de página.

beginner16 min readUpdated 15 sept 2026
request.js
js
// request.js
const res = await fetch("/api/users", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Accept: "application/json",
  },
  body: JSON.stringify({ name: "Ada" }),
});

console.log(res.status); // 201
const user = await res.json();
Modelo
Petición / respuesta
Métodos
GET, POST, PUT, PATCH, DELETE
Estado
1xx a 5xx
Sin estado
Las cookies mantienen el estado
Seguro
HTTPS sobre TLS
Moderno
HTTP/2 y HTTP/3

Por que importa

Por qué HTTP es importante

Universal

Cada navegador, API, proxy y CDN habla HTTP, lo que lo convierte en la interfaz más interoperable del software.

Seguro por defecto

HTTPS cifra el tráfico y verifica el servidor, protegiendo los datos y a los usuarios en redes hostiles.

Almacenable en caché

Los headers correctos permiten que los navegadores y CDNs reutilicen respuestas, lo que representa la mejora de rendimiento más económica disponible.

La imagen completa

Las tres partes de HTTP

Una petición describe lo que quieres, una respuesta describe lo que sucedió y los headers transportan los metadatos de ambas.

La petición

Pedir

Un método, una ruta, headers y un cuerpo opcional describen lo que el cliente desea.

La respuesta

Responder

Un código de estado, headers y un cuerpo describen el resultado.

Headers

Metadatos

Tipos de contenido, caching, cookies y políticas de seguridad viajan junto con la carga útil.

HTTP de un vistazo

El núcleo de HTTP

Métodos

GET lee, POST crea, PUT reemplaza, PATCH actualiza, DELETE elimina.

Códigos de estado

2xx éxito, 3xx redirección, 4xx error del cliente, 5xx error del servidor.

Headers

Metadatos como Content-Type, Accept, Authorization y Cache-Control.

Cookies

Pequeños valores que el navegador envía automáticamente, utilizados para sesiones.

Caching

ETag, Last-Modified y Cache-Control controlan la reutilización.

TLS

HTTPS cifra la conexión y demuestra la identidad del servidor.

Una breve historia

De HTTP/0.9 a HTTP/3

  1. 1991

    HTTP/0.9

    Un único método para obtener HTML mediante una petición simple.

    91
  2. 1997

    HTTP/1.1

    Las conexiones persistentes, los host headers y el caching se convierten en el estándar.

    97
  3. 2015

    HTTP/2

    El multiplexado y la compresión de headers solucionan muchos cuellos de botella de HTTP/1.1.

    15
  4. 2022

    HTTP/3

    Un nuevo transporte sobre QUIC reduce la latencia y mejora la fiabilidad.

    22
  5. Hoy

    HTTPS en todas partes

    El cifrado es el estándar en toda la web.

    Hoy

La guia completa

HTTP & HTTPS: Todo lo que necesitas saber

¿Qué es HTTP?

HTTP (HyperText Transfer Protocol) es la forma en que los clientes y los servidores se comunican en la web. Un cliente envía una request describiendo lo que necesita; un servidor envía una response describiendo lo que sucedió. Cada carga de página, llamada a una API, imagen y fuente viaja de esta manera.

Es un protocolo simple, basado en texto y stateless (sin estado): cada request es independiente y el servidor no recuerda las anteriores, a menos que algo como una cookie transporte ese estado. Esa simplicidad es la razón por la cual HTTP ha escalado a toda la web.

Requests

Una solicitud tiene un método, una ruta, encabezados y, en ocasiones, un cuerpo.

POST /api/users HTTP/2
Host: example.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer <token>

{ "name": "Ada" }

El método indica qué tipo de acción se está realizando. La ruta identifica el recurso. Los encabezados transportan metadatos y el cuerpo transporta los datos para métodos como POST y PUT.

Método Propósito Seguro Idempotente
GET Leer un recurso
POST Crear o activar No No
PUT Reemplazar un recurso No
PATCH Actualizar parcialmente No No
DELETE Eliminar un recurso No

Seguro significa que no cambia el estado; idempotente significa que repetirlo tiene el mismo efecto que hacerlo una sola vez. Estas propiedades son importantes para el almacenamiento en caché, los reintentos y los proxies.

Respuestas y códigos de estado

Una respuesta tiene un código de estado, encabezados y un cuerpo.

HTTP/2 201 Created
Content-Type: application/json
Location: /api/users/42

{ "id": 42, "name": "Ada" }

El código de estado le indica al cliente qué sucedió. Aprende los más comunes:

  • 200 OK — éxito.
  • 201 Created — se creó un nuevo recurso.
  • 204 No Content — éxito sin cuerpo de respuesta.
  • 301 / 302 — redirecciones permanentes y temporales.
  • 304 Not Modified — la copia en caché sigue siendo válida.
  • 400 Bad Request — entrada inválida.
  • 401 Unauthorized — no autenticado.
  • 403 Forbidden — autenticado pero sin permisos.
  • 404 Not Found — el recurso no existe.
  • 500 Internal Server Error — el servidor falló.

Devolver el código correcto no es un capricho: los clientes, las cachés y el monitoreo dependen de ello.

Headers

Los headers son la capa de metadatos. Algunos headers de solicitud comunes incluyen Accept, Content-Type, Authorization, Cookie y User-Agent. Los headers de respuesta comunes incluyen Content-Type, Content-Length, Cache-Control, Set-Cookie y headers de seguridad como Content-Security-Policy.

// fetch.js
const res = await fetch("/api/posts", {
  headers: {
    Accept: "application/json",
    Authorization: `Bearer ${token}`,
  },
});

Los headers son la forma en que se expresan la negociación de contenido, la autenticación, el almacenamiento en caché y las políticas de seguridad.

Cookies y sesiones

HTTP no tiene estado (stateless), por lo que los servidores utilizan cookies para reconocer a los usuarios que regresan. El servidor envía Set-Cookie y el navegador devuelve esa cookie en las solicitudes posteriores al mismo origen.

Las cookies de sesión siempre deben ser:

Set-Cookie: session=abc123; HttpOnly; Secure; SameSite=Lax; Path=/
  • HttpOnly evita que JavaScript pueda leerla, lo que mitiga los ataques XSS.
  • Secure hace que se envíe únicamente a través de HTTPS.
  • SameSite limita el envío entre sitios, lo que ayuda a prevenir CSRF.

La guía de Seguridad Web cubre el panorama completo.

Caching

El caching es la característica de HTTP más valiosa para el rendimiento. Dos mecanismos trabajan en conjunto:

  • Freshness (frescura) con Cache-Control, que define cuánto tiempo se puede reutilizar una respuesta.
  • Validation (validación) con ETag o Last-Modified, que permite al cliente preguntar “¿ha cambiado esto?” y recibir un 304 Not Modified cuando no ha habido cambios.
# versioned assets: cache for a year
Cache-Control: public, max-age=31536000, immutable

# HTML: revalidate every time
Cache-Control: no-cache

Aplica fingerprinting a tus assets mediante un hash de contenido y almacénalos en caché de forma agresiva; si un archivo cambia, recibirá un nombre nuevo. Sirve el HTML con un tiempo de caché corto y revalida para que los despliegues se apliquen inmediatamente.

HTTPS y TLS

HTTPS es HTTP sobre TLS. TLS realiza tres funciones:

  1. Cifra el tráfico para que no pueda ser leído durante el tránsito.
  2. Autentica el servidor mediante un certificado.
  3. Preserva la integridad para que los datos no puedan ser alterados silenciosamente.

Obtén un certificado (existen opciones gratuitas), redirige todo el tráfico HTTP a HTTPS y habilita HSTS para evitar que los navegadores utilicen HTTP sin cifrar en tu dominio. Trata el HTTP como un protocolo legado.

Versiones de HTTP

  • HTTP/1.1 — una solicitud a la vez por conexión, razón por la cual antes se solía concatenar los archivos en los sitios web.
  • HTTP/2 — multiplexa múltiples solicitudes sobre una sola conexión y comprime los headers, eliminando la mayoría de esos trucos.
  • HTTP/3 — se ejecuta sobre QUIC, un transporte basado en UDP, reduciendo la latencia de conexión y gestionando mejor la pérdida de paquetes.

Servir HTTPS generalmente habilita HTTP/2 o HTTP/3 automáticamente a través de tu servidor o CDN. Rara vez es necesario modificar tu código.

Mejores prácticas

  • Usa HTTPS en todas partes y redirige el tráfico HTTP a HTTPS mediante HSTS.
  • Devuelve códigos de estado precisos y cuerpos de error significativos.
  • Mantén los métodos seguros e idempotentes según sus definiciones.
  • Configura Cache-Control y validadores de manera deliberada.
  • Usa cookies HttpOnly, Secure y SameSite para las sesiones.
  • Configura cabeceras de seguridad como CSP y X-Content-Type-Options.
  • Prioriza HTTP/2 o HTTP/3 y deja que la plataforma lo negocie.

Errores comunes

  • Devolver un código 200 en caso de error, lo que provoca fallos en los clientes y en las cachés.
  • Mutar datos mediante GET, lo cual es inseguro y puede ser almacenado en caché o precargado.
  • Desactivar la caché para todo, afectando negativamente al rendimiento.
  • Almacenar tokens de sesión en localStorage en lugar de una cookie.
  • Olvidar redireccionar el tráfico HTTP a HTTPS.
  • Ignorar Content-Type y recibir errores de parseo.

Próximos pasos

HTTP es el lenguaje compartido de la web, y dominarlo es fundamental en cualquier proyecto. Refuerza tus conocimientos con los fundamentos de internet, comprende cómo funciona DNS, realiza peticiones desde JavaScript con Fetch y protege tu tráfico con la guía de seguridad web.

Informar el resultado

Devuelve el código de estado que coincida con lo sucedido para que los clientes y cachés se comporten correctamente.

Preferir
if (!post) {
  return res.status(404).json({
    message: "Post not found",
  });
}
Evitar
// always 200, even for errors
return res.json({ error: "not found" });

Almacenar una respuesta en caché

Los headers de caché explícitos permiten que los navegadores y CDNs reutilicen respuestas de forma segura en lugar de solicitarlas cada vez.

Preferir
Cache-Control: public, max-age=31536000, immutable
ETag: "a1b2c3"
Evitar
Cache-Control: no-store
# every visitor downloads
# everything again

Preguntas frecuentes

Preguntas frecuentes

Keep learning

Related topics from the roadmap.

$ comienza a aprender

Listo para aprender HTTP / HTTPS?

Nuestro tutorial interactivo te guia a traves de HTTP / HTTPS paso a paso — con quizzes y codigo real que puedes ejecutar en el navegador.