Códigos de Estado HTTP y Tipos MIME

Referencia con búsqueda de códigos de estado HTTP (qué significan realmente) más búsqueda de extensión → tipo MIME.

encoding

Códigos de estado HTTP y tipos MIME

  • 100

    Continue

    Request headers accepted — client may send the body.

  • 101

    Switching Protocols

    Server agrees to switch protocol (e.g. HTTP → WebSocket upgrade).

  • 102

    Processing

    WebDAV: request received, still working — prevents client timeout.

  • 103

    Early Hints

    Preload hints sent before the final response, so browsers fetch assets sooner.

  • 200

    OK

    Standard success — the response body carries the result.

  • 201

    Created

    Resource created; Location header usually points to it.

  • 202

    Accepted

    Request queued for async processing — no promise it will finish.

  • 204

    No Content

    Success with an intentionally empty body (common for DELETE/PUT).

  • 206

    Partial Content

    Byte-range response — used by video streaming and resumable downloads.

  • 301

    Moved Permanently

    Permanent redirect; browsers and search engines update their references.

  • 302

    Found

    Temporary redirect; method may change to GET on follow.

  • 304

    Not Modified

    Cached copy is still valid — sent for conditional requests (ETag / If-Modified-Since).

  • 307

    Temporary Redirect

    Like 302 but the method and body must not change.

  • 308

    Permanent Redirect

    Like 301 but the method and body must not change.

  • 400

    Bad Request

    Malformed request — syntax, framing, or invalid parameters.

  • 401

    Unauthorized

    Authentication missing or invalid — really means "unauthenticated".

  • 403

    Forbidden

    Authenticated but not allowed — credentials won’t help.

  • 404

    Not Found

    No resource at this URL (or the server hides its existence).

  • 405

    Method Not Allowed

    URL exists but not for this HTTP method — check the Allow header.

  • 406

    Not Acceptable

    Server cannot produce a representation matching the Accept headers.

  • 408

    Request Timeout

    Client took too long to send the full request.

  • 409

    Conflict

    Request clashes with current resource state (e.g. concurrent edit).

  • 410

    Gone

    Deliberately removed, permanently — stronger signal than 404.

  • 411

    Length Required

    Server insists on a Content-Length header.

  • 412

    Precondition Failed

    An If-* conditional header did not match (optimistic locking).

  • 413

    Content Too Large

    Request body exceeds the server’s size limit.

  • 415

    Unsupported Media Type

    Body format not supported (wrong Content-Type).

  • 418

    I'm a teapot

    April-fools RFC 2324; some APIs use it for playful blocks.

  • 422

    Unprocessable Content

    Syntax is fine but the data fails validation rules.

  • 425

    Too Early

    Server refuses to risk a replayed request (TLS early data).

  • 429

    Too Many Requests

    Rate limit hit — Retry-After tells you when to try again.

  • 431

    Request Header Fields Too Large

    Headers (often cookies) exceed the server limit.

  • 451

    Unavailable For Legal Reasons

    Blocked for legal/censorship reasons.

  • 500

    Internal Server Error

    Unhandled server-side failure — the catch-all 5xx.

  • 501

    Not Implemented

    Server does not support this method at all.

  • 502

    Bad Gateway

    Proxy/load balancer got an invalid response from the upstream server.

  • 503

    Service Unavailable

    Temporarily overloaded or down for maintenance — retry later.

  • 504

    Gateway Timeout

    Proxy gave up waiting for the upstream server.

  • 505

    HTTP Version Not Supported

    Requested HTTP version is not supported.

  • 507

    Insufficient Storage

    WebDAV: server cannot store what the request requires.

  • 508

    Loop Detected

    WebDAV: infinite loop while processing the request.

Se ejecuta completamente en tu navegador. Tus datos nunca salen de tu dispositivo.

What next?

FAQ

¿Qué es esta página?

Una referencia buscable de códigos de estado HTTP y tipos MIME comunes. Busca por número, por nombre, o filtra por clase — 1xx informativo, 2xx éxito, 3xx redirección, 4xx error de cliente, 5xx error de servidor.

¿Cómo leo el primer dígito?

Te dice con quién hablar. Un 4xx dice que la solicitud fue incorrecta — corrige al llamador. Un 5xx dice que el servidor falló mientras manejaba una solicitud válida — corrige el servidor. Obtener ese límite correcto es la mayor parte del valor en el esquema, y es por eso que devolver 200 con un cuerpo de error hace que los sistemas sean difíciles de operar: cada monitor y caché aguas abajo ahora cree que la llamada tuvo éxito.

¿Cuál es la diferencia entre 301 y 302?

301 es permanente y 302 es temporal. Los navegadores y motores de búsqueda almacenan en caché un 301 agresivamente — a menudo indefinidamente — así que un 301 emitido por error es genuinamente difícil de deshacer, porque los clientes dejan de pedir la URL antigua. Usa 302 (o 307) mientras no estés seguro.

¿Qué hay de 307 y 308?

Son las versiones estrictas de 302 y 301. Los códigos más antiguos permitían a los clientes cambiar un POST a un GET al seguir la redirección; 307 y 308 lo prohíben, preservando el método y el cuerpo. Si estás redirigiendo cualquier cosa que no sea un GET, prefiere ellos.

¿Cuándo debo usar 401 versus 403?

401 significa "no autenticado" — no has probado quién eres, y un encabezado WWW-Authenticate debe acompañarlo. 403 significa "autenticado, pero no permitido". Una fuga común es devolver 403 donde 404 sería mejor: decirle a un usuario no autorizado que existe un recurso es en sí información.

¿Para qué es 304 No Modificado?

Solicitudes condicionales. El cliente envía un validador como If-None-Match, y si nada cambió el servidor responde 304 sin cuerpo — ahorrando la transferencia mientras confirma que la copia en caché sigue siendo buena.

¿Es 418 real?

Es un código genuinamente registrado de un RFC de Abril de Tontos — "Soy una tetera" — y periódicamente se propone para su eliminación. No lo uses en producción; aparece en la lista por completitud.

¿Por qué necesito tipos MIME junto a códigos de estado?

Porque ambos son parte de obtener una respuesta correcta. Un estado correcto con text/plain en JSON deja a los clientes adivinando, y los navegadores pueden inspeccionar el contenido y comportarse de formas que no pretendías.

¿Se envía algo a un servidor?

No. La lista se incluye con la página y se busca localmente.

More encoding tools