Códigos de estado HTTP
La referencia completa de los códigos de estado de respuesta HTTP: qué significa cada código, cuándo lo envían los servidores y cómo reaccionar — para depurar solicitudes, documentar APIs y revisar registros de servidor.
Usa los enlaces de salto para moverte entre clases de respuesta, o abre las guías detalladas para los códigos más comunes.
Tabla de códigos de respuesta HTTP
| Code | Name | Meaning |
|---|---|---|
| 1xx Informativos | ||
| 100 | Continue | El servidor recibió las cabeceras de la solicitud y el cliente debería enviar el cuerpo de la solicitud. |
| 101 | Switching Protocols | El servidor acepta cambiar al protocolo solicitado en la cabecera Upgrade. |
| 102 | Processing | El servidor aceptó la solicitud completa pero aún no la ha completado (WebDAV). |
| 103 | Early Hints | Cabeceras preliminares, principalmente sugerencias de precarga Link, enviadas antes de la respuesta final. |
| 2xx Éxito | ||
| 200 | OK | La solicitud tuvo éxito y la respuesta lleva la representación solicitada. |
| 201 | Created | La solicitud tuvo éxito y se creó un nuevo recurso, normalmente indicado en Location. |
| 202 | Accepted | La solicitud fue aceptada para un procesamiento asíncrono que aún no ha terminado. |
| 203 | Non-Authoritative Information | La respuesta fue modificada por un proxy transformador en el camino. |
| 204 | No Content | La solicitud tuvo éxito y deliberadamente no hay cuerpo de respuesta. |
| 205 | Restablecer Content | La solicitud tuvo éxito y el cliente debería restablecer la vista del documento o formulario. |
| 206 | Partial Content | La respuesta entrega solo el rango de bytes solicitado con la cabecera Range. |
| 3xx Redirección | ||
| 300 | Multiple Choices | Existen varias representaciones y el cliente debería elegir una de ellas. |
| 301 | Moved Permanently | El recurso tiene una nueva URL permanente y los enlaces deberían actualizarse. |
| 302 | Found | El recurso vive temporalmente en una URL diferente; sigue usando la original. |
| 303 | See Other | El resultado está disponible en otra URL y debería obtenerse con GET. |
| 304 | Not Modified | La copia en caché sigue siendo válida, así que no se envía el cuerpo de nuevo. |
| 307 | Temporary Redirect | Redirección temporal que debe conservar el método HTTP y el cuerpo originales. |
| 308 | Permanent Redirect | Redirección permanente que debe conservar el método HTTP y el cuerpo originales. |
| 4xx Errores de Cliente | ||
| 400 | Bad Request | El servidor no puede procesar la solicitud porque está malformada. |
| 401 | Unauthorized | Se requieren credenciales de autenticación válidas y faltan o son incorrectas. |
| 402 | Payment Required | Estado reservado, usado en la práctica por algunas APIs para límites de facturación. |
| 403 | Forbidden | El servidor entendió la solicitud pero se niega a autorizarla. |
| 404 | Not Found | No existe ningún recurso en la URL solicitada. |
| 405 | Method Not Allowed | La URL existe pero no admite este método HTTP. |
| 406 | Not Acceptable | Ninguna representación coincide con las cabeceras de negociación Accept. |
| 407 | Proxy Authentication Required | El cliente debe autenticarse primero con el proxy. |
| 408 | Request Timeout | El servidor cerró la conexión porque la solicitud tardó demasiado en llegar. |
| 409 | Conflict | La solicitud entra en conflicto con el estado actual del recurso, por ejemplo una colisión de edición. |
| 410 | Gone | El recurso fue eliminado deliberadamente y no volverá. |
| 411 | Length Required | La solicitud debe incluir una cabecera Content-Length. |
| 412 | Precondition Failed | Una cabecera condicional como If-Match se evaluó como falsa. |
| 413 | Content Too Large | El cuerpo de la solicitud excede el tamaño que acepta el servidor. |
| 414 | URI Too Long | La URL de la solicitud es más larga de lo que el servidor puede procesar. |
| 415 | Unsupported Media Type | El formato del cuerpo de la solicitud no es compatible con este recurso. |
| 416 | Range Not Satisfiable | El rango de bytes solicitado está fuera del tamaño del recurso. |
| 417 | Expectation Failed | No se pudo cumplir la cabecera de solicitud Expect. |
| 418 | I'm a teapot | Un estado de broma del Día de los Inocentes de la RFC 2324; algunas APIs lo usan como huevo de pascua. |
| 421 | Misdirected Request | La solicitud llegó a un servidor que no puede producir una respuesta para esta autoridad. |
| 422 | Unprocessable Content | La solicitud está bien formada pero es semánticamente inválida, algo común en la validación REST. |
| 425 | Too Early | El servidor se niega a procesar una solicitud que podría ser repetida (datos tempranos de TLS). |
| 426 | Upgrade Required | El cliente debe cambiar a un protocolo diferente según lo indicado en Upgrade. |
| 428 | Precondition Required | El servidor requiere una solicitud condicional para evitar actualizaciones perdidas. |
| 429 | Too Many Requests | El cliente excedió un límite de solicitudes; Retry-After indica cuándo volver a intentarlo. |
| 431 | Request Header Fields Too Large | Las cabeceras, a menudo cookies, exceden los límites de tamaño del servidor. |
| 451 | Unavailable For Legal Reasons | El acceso está bloqueado por razones legales, como órdenes judiciales. |
| 5xx Errores de Servidor | ||
| 500 | Internal Server Error | El servidor encontró un error inesperado al manejar la solicitud. |
| 501 | Not Implemented | El servidor no reconoce ni admite el método de la solicitud. |
| 502 | Bad Gateway | Una puerta de enlace o proxy recibió una respuesta inválida del servidor de origen. |
| 503 | Service Unavailable | El servidor no puede atender solicitudes temporalmente, debido a sobrecarga o mantenimiento. |
| 504 | Gateway Timeout | Una puerta de enlace o proxy se cansó de esperar al servidor de origen. |
| 505 | HTTP Version Not Supported | El servidor no admite la versión del protocolo HTTP utilizada. |
| 506 | Variant Also Negotiates | Una configuración incorrecta de negociación de contenido en el servidor. |
| 507 | Insufficient Storage | El servidor no puede almacenar lo necesario para completar la solicitud (WebDAV). |
| 508 | Loop Detected | El servidor detectó un bucle infinito durante el procesamiento (WebDAV). |
| 510 | Not Extended | La solicitud necesita extensiones adicionales que no se proporcionaron. |
| 511 | Network Authentication Required | La red (por ejemplo, un portal cautivo) requiere autenticación primero. |
1xx Informativos
Las respuestas informativas confirman que la solicitud fue recibida y que el cliente puede continuar. Son provisionales: siempre sigue un estado final. El que realmente encontrarás en la práctica es 103 Early Hints, que permite a los servidores enviar sugerencias de precarga antes de que la respuesta completa esté lista.
2xx Éxito
Las respuestas de éxito significan que la solicitud fue entendida y aceptada. 200 OK lleva el resultado en el cuerpo, 201 Created anuncia un nuevo recurso, y 204 No Content confirma el éxito sin nada que devolver, deliberadamente.
3xx Redirección
Las respuestas de redirección envían al cliente a otro lugar. La distinción clave es la permanencia — 301/308 son permanentes, 302/307 temporales — y si el método HTTP debe conservarse (307/308) o puede cambiar a GET (301/302). 304 Not Modified es el caso especial que hace posible el cacheo del navegador.
4xx Errores de Cliente
Los errores de cliente significan que la solicitud misma fue rechazada. Los habituales: 400 solicitud malformada, 401 autenticación requerida, 403 acceso denegado, 404 nada en esta URL y 429 límite de solicitudes excedido.
5xx Errores de Servidor
Los errores de servidor significan que el servidor falló en una solicitud que pudo ser perfectamente válida. 500 es un fallo de la aplicación, 502 y 504 son proxies reportando un origen roto o silencioso, y 503 es una indisponibilidad temporal deliberada.
Cómo leer un código de estado
El primer dígito es la clase: 1xx informativo, 2xx éxito, 3xx redirección, 4xx error de cliente, 5xx error de servidor. Un cliente que encuentra un código desconocido puede recurrir de forma segura a tratarlo como el código x00 de su clase — así es como los nuevos códigos mantienen la compatibilidad hacia atrás. Al depurar, revisa siempre las cabeceras de respuesta junto al código: Location explica las redirecciones, Allow explica el 405, Retry-After explica el 429 y el 503.
Ejemplos
200 OK — page served normally 301 Moved Permanently — URL changed for good, follow Location 304 Not Modified — your cached copy is still valid 404 Not Found — nothing exists at this URL 429 Too Many Requests — rate limit hit, wait Retry-After seconds 503 Service Unavailable — temporary downtime or maintenance
Preguntas frecuentes
¿Qué es HTTP 404?
HTTP 404 significa que el recurso solicitado no pudo encontrarse en la URL especificada. Consulta la guía detallada de 404 para conocer causas, soluciones e impacto en el SEO.
¿Cuál es la diferencia entre 301 y 302?
Una redirección 301 es permanente — los enlaces y los motores de búsqueda deben actualizarse a la nueva URL. Un 302 indica un traslado temporal donde la URL original sigue siendo la canónica.
¿Qué significa 503?
HTTP 503 significa que el servicio no está disponible temporalmente, normalmente por mantenimiento o sobrecarga, y el cliente debería reintentar tras una espera.
¿Cuál es la diferencia entre 401 y 403?
401 significa que el servidor necesita credenciales de autenticación válidas. 403 significa que sabe quién eres y aun así rechaza el acceso — volver a iniciar sesión no ayudará.
¿Cuál es la diferencia entre 502 y 504?
Ambos provienen de un proxy que habla con un servidor de origen: 502 significa que el origen devolvió una respuesta inválida, 504 significa que nunca respondió dentro del tiempo límite.
¿Qué códigos de estado importan más para el SEO?
200 marca páginas indexables, 301/308 transfieren el posicionamiento en traslados permanentes, 404/410 eliminan URLs muertas y 503 protege el posicionamiento durante caídas cuando se sirve con Retry-After.