FreeToGenerate.com

El registro completo de IANA, incluidos los códigos que no debes usar.

64 códigos

1xx Informativos

La petición se ha recibido y el trabajo sigue en marcha.

100
Continue[RFC9110, Section 15.2.1]
101
Switching Protocols[RFC9110, Section 15.2.2]
102
Processing[RFC2518]
103
Early Hints[RFC8297]
104
Upload Resumption Supportedtemporal · 2026-11-13[draft-ietf-httpbis-resumable-upload-05]

2xx Correctos

La petición se ha recibido, entendido y aceptado.

200
OK[RFC9110, Section 15.3.1]
201
Created[RFC9110, Section 15.3.2]
202
Accepted[RFC9110, Section 15.3.3]
203
Non-Authoritative Information[RFC9110, Section 15.3.4]
204
No Content[RFC9110, Section 15.3.5]
205
Reset Content[RFC9110, Section 15.3.6]
206
Partial Content[RFC9110, Section 15.3.7]
207
Multi-Status[RFC4918]
208
Already Reported[RFC5842]
226
IM Used[RFC3229]

3xx Redirección

Hace falta algo más para completar la petición.

300
Multiple Choices[RFC9110, Section 15.4.1]
301
Moved Permanently[RFC9110, Section 15.4.2]
302
Found[RFC9110, Section 15.4.3]
303
See Other[RFC9110, Section 15.4.4]
304
Not Modified[RFC9110, Section 15.4.5]
305
Use Proxy[RFC9110, Section 15.4.6]
306
(Unused)reservado[RFC9110, Section 15.4.7]
307
Temporary Redirect[RFC9110, Section 15.4.8]
308
Permanent Redirect[RFC9110, Section 15.4.9]

4xx Error del cliente

La petición estaba mal formada, o no puede atenderse tal como llegó.

400
Bad Request[RFC9110, Section 15.5.1]
401
Unauthorized[RFC9110, Section 15.5.2]
402
Payment Required[RFC9110, Section 15.5.3]
403
Forbidden[RFC9110, Section 15.5.4]
404
Not Found[RFC9110, Section 15.5.5]
405
Method Not Allowed[RFC9110, Section 15.5.6]
406
Not Acceptable[RFC9110, Section 15.5.7]
407
Proxy Authentication Required[RFC9110, Section 15.5.8]
408
Request Timeout[RFC9110, Section 15.5.9]
409
Conflict[RFC9110, Section 15.5.10]
410
Gone[RFC9110, Section 15.5.11]
411
Length Required[RFC9110, Section 15.5.12]
412
Precondition Failed[RFC9110, Section 15.5.13]
413
Content Too Large[RFC9110, Section 15.5.14]
414
URI Too Long[RFC9110, Section 15.5.15]
415
Unsupported Media Type[RFC9110, Section 15.5.16]
416
Range Not Satisfiable[RFC9110, Section 15.5.17]
417
Expectation Failed[RFC9110, Section 15.5.18]
418
(Unused)reservado[RFC9110, Section 15.5.19]
421
Misdirected Request[RFC9110, Section 15.5.20]
422
Unprocessable Content[RFC9110, Section 15.5.21]
423
Locked[RFC4918]
424
Failed Dependency[RFC4918]
425
Too Early[RFC8470]
426
Upgrade Required[RFC9110, Section 15.5.22]
428
Precondition Required[RFC6585]
429
Too Many Requests[RFC6585]
431
Request Header Fields Too Large[RFC6585]
451
Unavailable For Legal Reasons[RFC7725]

5xx Error del servidor

La petición era correcta y aun así el servidor falló.

500
Internal Server Error[RFC9110, Section 15.6.1]
501
Not Implemented[RFC9110, Section 15.6.2]
502
Bad Gateway[RFC9110, Section 15.6.3]
503
Service Unavailable[RFC9110, Section 15.6.4]
504
Gateway Timeout[RFC9110, Section 15.6.5]
505
HTTP Version Not Supported[RFC9110, Section 15.6.6]
506
Variant Also Negotiates[RFC2295]
507
Insufficient Storage[RFC4918]
508
Loop Detected[RFC5842]
510
Not Extendedobsoleto[RFC2774][Status change of HTTP experiments to Historic]
511
Network Authentication Required[RFC6585]

RESERVADO

Figura en el registro como (Unused): reservado para que nadie lo asigne. No devuelvas estos.

Se registró en su día y luego pasó a Histórico. Sigue listado, ya no se usa.

Un registro provisional con fecha de caducidad. Puede expirar o cambiar.

Códigos que no están en el registro

Aparecen en casi todas las tablas publicadas como si fueran estándar. IANA no ha asignado ninguno: el 419 y el 420 caen dentro de un rango sin asignar. Son comportamientos reales de programas concretos, así que aquí van con el programa indicado.

420
Enhance Your CalmTwitter API v1, since retired
444
No Responsenginx, closes the connection without a response
494
Request header too largenginx
495
SSL Certificate Errornginx
496
SSL Certificate Requirednginx
497
HTTP Request Sent to HTTPS Portnginx
499
Client Closed Requestnginx
520
Web server returns an unknown errorCloudflare
521
Web server is downCloudflare
522
Connection timed outCloudflare
523
Origin is unreachableCloudflare
524
A timeout occurredCloudflare
525
SSL handshake failedCloudflare
526
Invalid SSL certificateCloudflare

Rangos que IANA no ha asignado a nadie

Cualquier código de estos rangos está libre. Si te inventas uno para una API interna, de aquí debería salir, y seguirá siendo una extensión privada y no un estándar.

105-199209-225227-299309-399419-420427430432-450452-499509512-599

Generado a partir del registro de IANA el 2026-08-07.

También disponible en: English · Português · Français · العربية

Códigos de estado HTTP

La lista completa del registro de IANA, con los cuatro estados que casi todas las tablas confunden en uno.

Qué es un código de estado HTTP

Toda respuesta HTTP empieza con un número de tres cifras que dice cómo ha ido. La primera cifra es la clase: 1xx significa que el servidor sigue trabajando, 2xx que ha salido bien, 3xx que tienes que ir a otro sitio, 4xx que la petición estaba mal y 5xx que el que estaba mal era el servidor. El número es lo que interpreta el software; la frase que lo acompaña es para las personas.

La lista con autoridad es el registro de códigos de estado HTTP de IANA, y esta página se genera a partir de él en vez de escribirse de memoria. Eso importa más de lo que parece, porque el registro recoge cuatro estados distintos y casi todas las tablas publicadas los aplanan en una sola lista de códigos que podrías usar.

Cómo usar esta lista

  1. Busca por número o por frase. Los números se buscan por el principio, así que escribir 40 te da toda la familia 40x y 404 la reduce a uno. El texto se busca en cualquier parte de la frase: prueba gateway, o legal.
  2. Mira las etiquetas antes de usar un código. Reservado significa que el registro lo apartó para que nadie lo usara. Obsoleto significa que se registró y luego se retiró. Temporal significa que ese registro lleva fecha de caducidad.
  3. Baja hasta debajo del registro para lo demás. Los códigos que has visto por ahí y no encuentras arriba están en la sección de proveedores, cada uno atribuido al programa que lo devuelve, y después los rangos que IANA no ha asignado a nadie.

El 418 no es un código de broma que puedas usar

El dato más repetido sobre los códigos HTTP es que el 418 I'm a Teapot es una broma de los Inocentes de 1998 y que puedes devolverlo por diversión. La primera mitad es cierta. La segunda está del revés, y el registro lo dice sin rodeos: el 418 está listado, su descripción es (Unused) y su referencia es la sección 15.5.19 del RFC 9110. Aparece en el registro precisamente para que no pueda asignarse nunca a nada real.

Ese es un estado distinto de «sin asignar», y esa distinción es la razón de ser de esta página. El 306 está en la misma situación: reservado, inutilizable para siempre. El 510 Not Extended está en un tercer estado: se registró de verdad y después su experimento se reclasificó como Histórico, así que figura como obsoleto. Y el 104 Upload Resumption Supported está en un cuarto: un registro temporal que caduca el 13 de noviembre de 2026 y puede desaparecer sin más.

Quita todo eso y te quedan 61 códigos que un servidor debería devolver realmente, de 64 filas del registro. Una tabla que presenta los 64 como iguales te está diciendo que uses dos códigos que existen para ser inusables.

Los códigos que ni siquiera están en el registro

Las tablas publicadas tienen un segundo problema: los códigos que añaden. El 420, el 444, el 499 y la familia 52x salen en casi todas las listas como si estuvieran junto al 404. IANA no ha asignado ninguno. En el caso del 420 el registro es explícito en sentido contrario: 419-420 es uno de los once rangos marcados como sin asignar.

No son inventados, eso sí: son comportamientos reales de programas concretos, y por eso aquí van en su propia sección con el programa indicado. El 499 es nginx anotando que el cliente colgó antes de que la respuesta estuviera lista. El 444 es nginx cerrando la conexión sin contestar siquiera. La familia 52x es de Cloudflare, y su propia documentación de soporte lista del 520 al 526 y el 530 junto a los códigos 5xx estándar sin mencionar en ningún momento que no están registrados, lo que explica buena parte de su difusión.

La consecuencia práctica es sencilla. Cualquier código de un rango sin asignar está libre para tu uso interno, y seguirá siendo una extensión privada y no un estándar: ninguna biblioteca cliente sabrá qué quieres decir con él.

Límites honestos

Esto es una instantánea. El registro cambia: el 451 se añadió en 2016, el 103 en 2017, y el 104 llegó en 2024 como registro temporal ya con fecha de caducidad. La fecha en que se generó la lista está impresa al final, y el script que la generó está en el repositorio, así que la página puede decir cuándo fue cierta en vez de insinuar que lo será siempre.

Las frases de estado son las del propio registro, en inglés, y deliberadamente no se traducen en las demás versiones de esta página. La frase viaja por el cable como parte del protocolo —un servidor envía Not Found, no «No encontrado»—, así que traducirla describiría algo que ningún servidor devuelve. Lo que se traduce es la explicación de alrededor; el protocolo no.

La tabla de proveedores es la única parte que no sale de un registro, porque no hay ningún registro del que sacarla. Cada fila viene de la documentación del propio proveedor. No es exhaustiva y no puede serlo, ya que cualquiera puede devolver el número que le apetezca.

¿Por qué es gratis?

Porque es una lista. Toda la página es texto estático con un buscador que la filtra en tu navegador: no se sube nada, no se guarda nada y no hay servidor de por medio para leerla.

Así que no hay cuenta, ni registro, ni nada detrás de un muro. El registro de base es un documento público que mantiene IANA, y una lista de hechos públicos no debería tener un cobro delante.