CONCEPTOS BASE

HTTP

Protocolo de comunicación que define cómo cliente (navegador, app) y servidor intercambian información sobre la web. La base de internet moderno.

Nivel · principiante5 min de lecturaActualizado 22 may 2026
También conocido como: Hypertext Transfer Protocol

Definición

HTTP (siglas de Hypertext Transfer Protocol) es el protocolo de comunicación sobre el que funciona la web. Define las reglas con las que cliente (un navegador, una app móvil, otro servidor) y servidor (la máquina que aloja una web o una API) intercambian información.

Cada vez que tu navegador carga una página, envía emails con Gmail, pide datos a una app móvil o un sistema empresarial llama a otro vía API — hay HTTP por debajo. Es uno de los pilares fundacionales de internet desde 1991 y, aunque ha evolucionado (HTTP/1.1 → HTTP/2 → HTTP/3), las bases siguen siendo las mismas.

Su versión segura es HTTPS (HTTP sobre TLS) — exactamente lo mismo pero cifrado en tránsito. En 2026 toda web seria es HTTPS; HTTP "puro" sin la S es prácticamente inaceptable.

Cómo funciona

HTTP es un protocolo de petición-respuesta sin estado. El flujo básico:

  1. Cliente envía una petición a una URL específica indicando:
    • Un método (GET, POST, PUT, DELETE, etc.)
    • Headers (metadatos: autenticación, formato esperado, idioma...)
    • Un body opcional con datos (formulario, JSON, archivo)
  2. Servidor recibe, procesa, y devuelve una respuesta con:
    • Un código de estado (200 OK, 404 Not Found, 500 Error...)
    • Headers de respuesta (tipo de contenido, cookies, cache)
    • Un body con el contenido (HTML, JSON, imagen, vídeo...)
  3. La conexión se cierra (o se reutiliza para siguientes peticiones).

"Sin estado" significa que cada petición es independiente — el servidor no recuerda quién eres entre una petición y otra. Para mantener sesión se usan cookies o tokens en cada petición.

Métodos HTTP más usados

MétodoSignificadoEjemplo típico
GETLeer un recursoCargar una página, listar productos
POSTCrear algo nuevo o enviar datosLogin, crear pedido
PUTReemplazar un recurso enteroActualizar perfil completo
PATCHModificar parte de un recursoCambiar un solo campo
DELETEEliminar un recursoBorrar usuario
HEADComo GET pero solo headersComprobar si existe
OPTIONSPreguntar qué se permiteCORS preflight

GET y HEAD son idempotentes y deben ser seguros (no cambiar nada). El resto puede modificar estado.

Códigos de estado HTTP

El código de respuesta es un número de 3 dígitos. Las categorías:

RangoSignificadoEjemplos clave
1xxInformativo100 Continue
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

Memorízate al menos los marcados en negrita — aparecen constantemente en logs y debugging.

Ejemplo práctico

Petición HTTP real al pedir un producto:

GET /v1/productos/12345 HTTP/1.1
Host: api.imdica.es
Authorization: Bearer abc123token
Accept: application/json
User-Agent: Mozilla/5.0 ...

Respuesta del servidor:

HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: max-age=300
Content-Length: 187

{
  "id": 12345,
  "nombre": "Fresa carburo Ø10mm",
  "precio": 23.50,
  "stock": 47
}

Si el producto no existe:

HTTP/1.1 404 Not Found
Content-Type: application/json

{
  "error": "Producto no encontrado",
  "code": "PRODUCT_NOT_FOUND"
}

Si no estás autenticado:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="api"

Los códigos comunican el resultado a programas; el body comunica el detalle a humanos y a otras aplicaciones.

HTTP vs HTTPS

HTTPHTTPS
CifradoNo (texto plano)Sí (TLS)
Puerto por defecto80443
Indicador navegadorInseguro ⚠️Candado ✅
SEOPenalizado por GoogleFactor positivo de ranking
Compatibilidad APIs modernasLimitadaTotal

Regla: en 2026, cualquier sitio público debe ser HTTPS. Sin excepciones.

Versiones modernas

  • HTTP/1.1 (1997) — la versión que todos aprendimos, una petición por conexión, headers en texto plano.
  • HTTP/2 (2015) — multiplexado (muchas peticiones por conexión), compresión de headers, server push. Mejora masiva en latencia.
  • HTTP/3 (2022) — sobre QUIC en lugar de TCP. Aún más rápido en redes inestables (móvil), conexiones más resistentes a cambios de red.

La mayoría de CDNs modernos (Cloudflare, Vercel, AWS CloudFront) hablan HTTP/3 ya por defecto. Tu navegador moderno también. No tienes que hacer nada especial — solo asegurarte de que tu hosting lo soporta.

Errores comunes

  • Confundir GET con POST: GET sirve para leer y NO debe modificar nada. POST modifica. Los crawlers de Google asumen esto: si tu enlace <a href> modifica estado vía GET, Google puede borrar cosas accidentalmente al indexarte.
  • No usar códigos de estado adecuados: devolver siempre 200 OK con { "error": ... } dentro hace que los clientes no detecten bien los fallos. Usa códigos HTTP correctos.
  • Headers Content-Type incorrectos: si tu API devuelve JSON pero pone Content-Type: text/html, los clientes pueden no parsearlo.
  • Olvidar HTTPS en producción: aunque tu hosting "ofrece" HTTPS, asegúrate de que TODAS las redirecciones van a HTTPS y de que tu sitemap, robots.txt y enlaces internos usan https://.
  • Confundir 401 con 403: 401 = "no sé quién eres" (falta credencial), 403 = "sé quién eres pero no puedes" (sin permisos).

Referencias

Tagsredprotocolobackendweb