Cada vez que tu navegador pide algo a un servidor, este responde con un código de estado HTTP: un número de tres cifras que resume qué ha pasado. El más famoso es el 404, pero hay muchos más y entenderlos te ayuda a depurar webs, APIs y problemas de SEO. Esta guía los explica por categorías.
Cómo se organizan: las cinco familias
El primer dígito indica la categoría:
- 1xx — Informativos: la petición se recibió y el proceso continúa. Raramente los ves.
- 2xx — Éxito: la petición funcionó.
- 3xx — Redirección: hace falta una acción más (normalmente ir a otra URL).
- 4xx — Error del cliente: algo está mal en la petición (tú o tu navegador).
- 5xx — Error del servidor: la petición estaba bien, pero el servidor falló.
Esta regla mental ya te dice mucho: 4xx es culpa del que pide, 5xx es culpa del servidor.
2xx — Éxito
| Código | Nombre | Significa |
|---|---|---|
| 200 | OK | Todo correcto, aquí está la respuesta |
| 201 | Created | Se creó un recurso (típico tras un POST) |
| 204 | No Content | Correcto, pero no hay nada que devolver |
| 206 | Partial Content | Respuesta parcial (descargas, streaming) |
3xx — Redirecciones (clave para el SEO)
| Código | Nombre | Significa |
|---|---|---|
| 301 | Moved Permanently | La URL cambió para siempre. Transfiere el SEO a la nueva |
| 302 | Found | Redirección temporal. NO transfiere autoridad igual que el 301 |
| 304 | Not Modified | No ha cambiado; usa tu versión en caché |
| 307/308 | Temporary/Permanent Redirect | Como 302/301 pero conservando el método HTTP |
Para SEO, la diferencia entre 301 y 302 importa mucho: si mueves una página de forma permanente, usa 301 para no perder posicionamiento. Usar un 302 por error es un fallo común.
4xx — Errores del cliente
| Código | Nombre | Significa |
|---|---|---|
| 400 | Bad Request | La petición está malformada |
| 401 | Unauthorized | Necesitas autenticarte (no has iniciado sesión) |
| 403 | Forbidden | Estás identificado, pero no tienes permiso |
| 404 | Not Found | El recurso no existe |
| 405 | Method Not Allowed | Método HTTP no permitido aquí (POST donde solo se acepta GET) |
| 409 | Conflict | Conflicto con el estado actual (ej. dato duplicado) |
| 422 | Unprocessable Entity | Sintaxis correcta pero datos inválidos (validación) |
| 429 | Too Many Requests | Has hecho demasiadas peticiones (rate limit) |
La diferencia clave: 401 = "no sé quién eres"; 403 = "sé quién eres y no puedes". Y el 429 es el que verás si una API te limita por exceso de llamadas.
5xx — Errores del servidor
| Código | Nombre | Significa |
|---|---|---|
| 500 | Internal Server Error | Fallo genérico del servidor (un bug, una excepción) |
| 502 | Bad Gateway | Un servidor intermedio recibió una respuesta inválida |
| 503 | Service Unavailable | El servidor está caído o saturado (a veces, en mantenimiento) |
| 504 | Gateway Timeout | Un servidor intermedio no recibió respuesta a tiempo |
Si ves un 500, el problema está en el servidor, no en tu petición. Un 503 suele ser temporal (sobrecarga o mantenimiento).
Cómo se usan en la práctica
- APIs REST: devuelven códigos para indicar el resultado. Una API bien diseñada usa 200/201 para éxito, 400/422 para datos inválidos, 401/403 para permisos, 404 para no encontrado.
- SEO: Google trata cada código distinto. Un 404 saca la página del índice; un 301 traslada su autoridad; un 503 le dice "vuelve luego".
- Depuración: el código de estado es lo primero que miras cuando algo falla. Las DevTools del navegador (pestaña Network) lo muestran para cada petición.
Si quieres consultar el significado de cualquier código al instante, puedes usar la referencia de códigos HTTP de esta web.
Curiosidades
- 418 I'm a teapot: un código de broma (de un April Fools) que dice "soy una tetera, no puedo hacer café". Algunos servidores lo implementan por diversión.
- 451 Unavailable For Legal Reasons: contenido bloqueado por motivos legales. El número es un guiño a la novela Fahrenheit 451.
Conclusión
No necesitas memorizar los cientos de códigos HTTP: con entender las cinco familias y los diez o quince más comunes, cubres casi todo lo que verás depurando una web o una API. Recuerda la regla básica: 2xx bien, 3xx ve a otro sitio, 4xx tu error, 5xx error del servidor.