Saltar al contenido
ToolMug

Códigos de estado HTTP

Una lista completa de los códigos de estado de respuesta HTTP, con buscador. Cada código tiene una explicación breve de lo que significa y de dónde está definido, para que entiendas rápido un error en tus registros o en el navegador.

Funciona en tu navegador: nada de lo que introduces se sube

100

ContinueRFC 9110

El servidor recibió las cabeceras de la petición; el cliente puede enviar el cuerpo.

101

Switching ProtocolsRFC 9110

El servidor cambia al protocolo que pidió el cliente, por ejemplo WebSocket.

103

Early HintsRFC 8297

Cabeceras preliminares, a menudo pistas de precarga Link, enviadas antes de la respuesta final.

200

OKRFC 9110

La petición se realizó con éxito.

201

CreatedRFC 9110

La petición se realizó con éxito y se creó un recurso nuevo, normalmente tras un POST o PUT.

202

AcceptedRFC 9110

La petición se aceptó para procesarla, pero el procesamiento aún no ha terminado.

203

Non-Authoritative InformationRFC 9110

Un proxy transformador modificó la respuesta.

204

No ContentRFC 9110

La petición se realizó con éxito y no hay cuerpo que devolver.

205

Reset ContentRFC 9110

La petición se realizó con éxito; el cliente debe restablecer la vista del documento, por ejemplo vaciando un formulario.

206

Partial ContentRFC 9110

Solo se devuelve una parte del recurso, en respuesta a una petición Range.

207

Multi-StatusRFC 4918 (WebDAV)

Varios códigos de estado para varias operaciones, en un cuerpo XML.

208

Already ReportedRFC 5842 (WebDAV)

Los miembros de un binding ya se indicaron antes en la respuesta.

226

IM UsedRFC 3229

La respuesta es el resultado de manipulaciones de instancia, como una codificación delta.

300

Multiple ChoicesRFC 9110

Hay varias representaciones entre las que elegir.

301

Moved PermanentlyRFC 9110

El recurso se movió de forma permanente a la URL de Location. Los buscadores transfieren el posicionamiento a la nueva URL.

302

FoundRFC 9110

El recurso está temporalmente en otra URL. Los navegadores pueden cambiar POST a GET al seguirla.

303

See OtherRFC 9110

Obtén el resultado de otra URL con GET, normalmente tras enviar un formulario.

304

Not ModifiedRFC 9110

La copia en caché sigue siendo válida, en respuesta a una petición condicional.

307

Temporary RedirectRFC 9110

Redirección temporal que mantiene el método y el cuerpo de la petición.

308

Permanent RedirectRFC 9110

Redirección permanente que mantiene el método y el cuerpo de la petición.

400

Bad RequestRFC 9110

El servidor no puede procesar la petición porque está mal formada.

401

UnauthorizedRFC 9110

Se requiere autenticación o ha fallado. La respuesta incluye WWW-Authenticate.

402

Payment RequiredRFC 9110

Reservado para uso futuro; algunas API lo usan para problemas de facturación.

403

ForbiddenRFC 9110

El servidor entendió la petición pero la rechaza. Volver a iniciar sesión no ayudará.

404

Not FoundRFC 9110

El recurso no existe, o el servidor no quiere admitir que existe.

405

Method Not AllowedRFC 9110

El método no es compatible con este recurso. La cabecera Allow lista los métodos válidos.

406

Not AcceptableRFC 9110

Ninguna representación coincide con las cabeceras Accept de la petición.

407

Proxy Authentication RequiredRFC 9110

El cliente debe autenticarse primero con el proxy.

408

Request TimeoutRFC 9110

El servidor agotó el tiempo esperando la petición.

409

ConflictRFC 9110

La petición entra en conflicto con el estado actual del recurso, por ejemplo un conflicto de edición.

410

GoneRFC 9110

El recurso se eliminó de forma permanente y no volverá.

411

Length RequiredRFC 9110

La petición necesita una cabecera Content-Length.

412

Precondition FailedRFC 9110

No se cumplió una condición de las cabeceras de la petición, como If-Match.

413

Content Too LargeRFC 9110

El cuerpo de la petición es mayor de lo que permite el servidor. Antes se llamaba "Payload Too Large".

414

URI Too LongRFC 9110

La URL es más larga de lo que el servidor procesa.

415

Unsupported Media TypeRFC 9110

No se admite el formato del cuerpo de la petición, indicado por Content-Type.

416

Range Not SatisfiableRFC 9110

El Range solicitado queda fuera del recurso.

417

Expectation FailedRFC 9110

No se puede cumplir la cabecera de petición Expect.

418

I'm a teapotRFC 2324 (April Fools)

Una broma del Día de los Inocentes del Hyper Text Coffee Pot Control Protocol, que algunos servidores conservan.

421

Misdirected RequestRFC 9110

La petición llegó a un servidor que no puede responder por este host, por ejemplo tras reutilizar una conexión.

422

Unprocessable ContentRFC 9110

La petición está bien formada pero su contenido no es válido, por ejemplo por fallar la validación.

423

LockedRFC 4918 (WebDAV)

El recurso está bloqueado.

424

Failed DependencyRFC 4918 (WebDAV)

La petición falló porque falló otra petición de la que dependía.

425

Too EarlyRFC 8470

El servidor no procesará una petición que podría repetirse (datos tempranos de TLS).

426

Upgrade RequiredRFC 9110

El cliente debe cambiar a otro protocolo indicado en la cabecera Upgrade.

428

Precondition RequiredRFC 6585

El servidor exige una petición condicional, para evitar actualizaciones perdidas.

429

Too Many RequestsRFC 6585

Se superó el límite de peticiones. Retry-After indica cuándo volver a intentarlo.

431

Request Header Fields Too LargeRFC 6585

Las cabeceras son demasiado grandes, a menudo por cookies pesadas.

451

Unavailable For Legal ReasonsRFC 7725

El recurso está bloqueado por motivos legales, como una orden judicial.

499

Client Closed RequestNginx · No estándar

Código de registro de Nginx: el cliente cerró la conexión antes de que el servidor respondiera.

500

Internal Server ErrorRFC 9110

Un error inesperado en el servidor.

501

Not ImplementedRFC 9110

El servidor no admite la funcionalidad necesaria.

502

Bad GatewayRFC 9110

Una pasarela o proxy recibió una respuesta no válida del servidor de origen.

503

Service UnavailableRFC 9110

El servidor no puede atender la petición temporalmente, por ejemplo por sobrecarga o mantenimiento.

504

Gateway TimeoutRFC 9110

Una pasarela o proxy no recibió respuesta del servidor de origen a tiempo.

505

HTTP Version Not SupportedRFC 9110

No se admite la versión HTTP de la petición.

506

Variant Also NegotiatesRFC 2295

Un error de configuración en la negociación transparente de contenido.

507

Insufficient StorageRFC 4918 (WebDAV)

El servidor no puede almacenar lo necesario para completar la petición.

508

Loop DetectedRFC 5842 (WebDAV)

El servidor detectó un bucle infinito al procesar la petición.

511

Network Authentication RequiredRFC 6585

Debes iniciar sesión en la red, normalmente en un portal cautivo como el wifi de un hotel.

520

Web Server Returned an Unknown ErrorCloudflare · No estándar

Cloudflare: el servidor de origen devolvió una respuesta vacía, desconocida o inesperada.

521

Web Server Is DownCloudflare · No estándar

Cloudflare: el servidor de origen rechazó la conexión.

522

Connection Timed OutCloudflare · No estándar

Cloudflare: se agotó el tiempo de la conexión TCP con el servidor de origen.

524

A Timeout OccurredCloudflare · No estándar

Cloudflare: el origen aceptó la conexión pero no respondió a tiempo.

Cómo se usa

  1. Escribe un código o una palabra en el buscador, por ejemplo 502 o redirect.
  2. O filtra por clase: informativos, éxito, redirección, error del cliente o error del servidor.
  3. Enlaza a un código concreto añadiendo su número a la dirección de la página, por ejemplo #404.

Opciones explicadas

Clases
1xx informativos, 2xx éxito, 3xx redirección, 4xx errores del cliente (un problema con la petición) y 5xx errores del servidor (un problema en el servidor).
No estándar
Códigos como el 499 de Nginx y los 520–524 de Cloudflare no están en ningún RFC, pero aparecen a menudo en los registros.

Cómo elegir un código de redirección

Los cinco códigos de redirección de la RFC 9110 se diferencian en dos aspectos: si el cambio es permanente y si el cliente puede cambiar el método de la petición al seguir la redirección.

Código Significado Permanente Método tras la redirección
301 Moved Permanently Sí Puede cambiar de POST a GET
302 Found No Puede cambiar de POST a GET
303 See Other No Siempre pasa a GET
307 Temporary Redirect No Debe seguir igual
308 Permanent Redirect Sí Debe seguir igual

Para un cambio de página normal o una redirección de HTTP a HTTPS, lo habitual es 301. Usa 308 o 307 cuando una petición POST, por ejemplo la de un formulario o una llamada a una API, deba llegar sin cambios a la nueva dirección. Usa 303 tras enviar correctamente un formulario para llevar al navegador a una página de resultados que obtiene con GET.

Preguntas frecuentes

¿Qué diferencia hay entre 301 y 302?

301 es un traslado permanente: los navegadores y los buscadores pasan a usar la nueva URL. 302 es temporal. Usa 308 o 307 si el método y el cuerpo de la petición no deben cambiar.

¿Qué diferencia hay entre 401 y 403?

401 significa que no estás autenticado: inicia sesión y vuelve a intentarlo. 403 significa que estás autenticado o identificado, pero no tienes permiso; volver a iniciar sesión no servirá de nada.

¿Qué significa 502 Bad Gateway?

Un proxy o balanceador de carga no pudo obtener una respuesta válida de la aplicación que tiene detrás, normalmente porque la aplicación se ha caído, se está reiniciando o no está escuchando.

Privacidad

Esta herramienta funciona por completo en tu navegador. Tus archivos y textos se procesan en tu dispositivo y nunca se suben a nuestros servidores.

Herramientas relacionadas