FreeToGenerate.com

Le registre complet de l’IANA, y compris les codes à ne pas utiliser.

64 codes

1xx Informatifs

La requête a été reçue et le traitement se poursuit.

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 Supportedtemporaire · 2026-11-13[draft-ietf-httpbis-resumable-upload-05]

2xx Succès

La requête a été reçue, comprise et acceptée.

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 Redirection

Il faut encore quelque chose pour aboutir.

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)réservé[RFC9110, Section 15.4.7]
307
Temporary Redirect[RFC9110, Section 15.4.8]
308
Permanent Redirect[RFC9110, Section 15.4.9]

4xx Erreur du client

La requête était mal formée, ou ne peut être satisfaite telle quelle.

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)réservé[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 Erreur du serveur

La requête était correcte et le serveur a échoué quand même.

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 Extendedobsolète[RFC2774][Status change of HTTP experiments to Historic]
511
Network Authentication Required[RFC6585]

RÉSERVÉ

Inscrit au registre comme (Unused) : réservé pour que personne ne l’attribue. Ne renvoyez pas ces codes.

Enregistré autrefois, puis versé au statut Historique. Toujours listé, plus employé.

Un enregistrement provisoire assorti d’une date d’expiration. Il peut disparaître ou changer.

Les codes absents du registre

Ils figurent dans presque toutes les tables publiées comme s’ils étaient normalisés. L’IANA n’en a attribué aucun : 419 et 420 tombent dans une plage non attribuée. Ce sont de véritables comportements de logiciels précis, d’où leur présence ici avec le logiciel nommé.

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

Plages que l’IANA n’a attribuées à personne

Tout code de ces plages est libre. Si vous en inventez un pour une API interne, c’est de là qu’il doit venir — et ce restera une extension privée, non une norme.

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

Généré à partir du registre de l’IANA le 2026-08-07.

Aussi disponible en : English · Español · Português · العربية

Codes de statut HTTP

La liste complète du registre de l’IANA, avec les quatre états que presque toutes les tables confondent en un seul.

Qu’est-ce qu’un code de statut HTTP ?

Toute réponse HTTP commence par un nombre à trois chiffres indiquant comment les choses se sont passées. Le premier chiffre donne la classe : 1xx signifie que le serveur travaille encore, 2xx que tout s’est bien passé, 3xx qu’il faut aller ailleurs, 4xx que la requête était fautive et 5xx que c’était le serveur. Le nombre est ce que le logiciel interprète ; la phrase à côté est pour les humains.

La liste qui fait foi est le registre des codes de statut HTTP de l’IANA, et cette page en est générée plutôt qu’écrite de mémoire. Cela compte plus qu’il n’y paraît, car le registre consigne quatre états distincts et presque toutes les tables publiées les aplatissent en une seule liste de codes que vous pourriez employer.

Comment utiliser cette liste

  1. Cherchez par nombre ou par phrase. Les nombres se cherchent par le début : taper 40 vous donne toute la famille 40x, et 404 la réduit à un seul. Le texte se cherche n’importe où dans la phrase — essayez gateway, ou legal.
  2. Regardez les étiquettes avant d’employer un code. Réservé signifie que le registre l’a mis de côté pour que personne ne s’en serve. Obsolète signifie qu’il a été enregistré puis retiré. Temporaire signifie que cet enregistrement porte une date d’expiration.
  3. Descendez sous le registre pour le reste. Les codes que vous avez croisés sans les trouver ci-dessus sont dans la section des éditeurs, chacun attribué au logiciel qui le renvoie, puis viennent les plages que l’IANA n’a attribuées à personne.

418 n’est pas un code pour rire que vous pouvez employer

Le fait le plus répété au sujet des codes HTTP est que 418 I’m a Teapot est un poisson d’avril de 1998 et que vous êtes libre de le renvoyer pour l’amusement. La première moitié est vraie. La seconde est à l’envers, et le registre le dit sans détour : 418 y figure, sa description est (Unused) et sa référence est la section 15.5.19 du RFC 9110. Il est au registre précisément pour ne jamais pouvoir être attribué à quoi que ce soit de réel.

C’est un état différent de « non attribué », et cette distinction est la raison d’être de cette page. 306 est dans la même situation : réservé, inutilisable définitivement. 510 Not Extended relève d’un troisième état : il a bel et bien été enregistré, puis son expérience a été reclassée comme Historique, si bien qu’il apparaît comme obsolète. Et 104 Upload Resumption Supported relève d’un quatrième : un enregistrement temporaire qui expire le 13 novembre 2026 et peut tout simplement disparaître.

Retirez tout cela et il reste 61 codes qu’un serveur devrait réellement renvoyer, sur 64 lignes de registre. Une table qui présente les 64 sur un pied d’égalité vous invite à employer deux codes qui existent pour être inutilisables.

Les codes qui ne sont pas du tout au registre

Les tables publiées ont un second défaut : les codes qu’elles ajoutent. 420, 444, 499 et la famille 52x figurent dans la plupart des listes comme s’ils voisinaient 404. L’IANA n’en a attribué aucun. Pour 420, le registre est même explicite en sens inverse : 419-420 est l’une des onze plages marquées non attribuées.

Ils ne sont pas inventés pour autant : ce sont de véritables comportements de logiciels précis, d’où leur section propre ici avec le logiciel nommé. 499, c’est nginx notant que le client a raccroché avant que la réponse soit prête. 444, c’est nginx fermant la connexion sans répondre du tout. La famille 52x est de Cloudflare, et sa propre documentation d’assistance énumère 520 à 526 et 530 à côté des codes 5xx normalisés sans jamais préciser qu’ils ne sont pas enregistrés, ce qui explique une bonne part de leur diffusion.

La conséquence pratique est simple. Tout code d’une plage non attribuée est libre pour votre usage interne, et il restera une extension privée et non une norme : aucune bibliothèque cliente ne saura ce que vous entendez par là.

Limites honnêtes

Ceci est un instantané. Le registre évolue : 451 a été ajouté en 2016, 103 en 2017, et 104 est arrivé en 2024 comme enregistrement temporaire, date d’expiration déjà attachée. La date de génération de la liste est imprimée en bas, et le script qui l’a produite est dans le dépôt : la page peut donc dire quand elle était exacte plutôt que de laisser croire qu’elle le restera.

Les phrases de statut sont celles du registre, en anglais, et ne sont délibérément pas traduites dans les autres versions de cette page. La phrase circule sur le fil comme partie du protocole — un serveur envoie Not Found, pas « Non trouvé » —, de sorte que la traduire décrirait quelque chose qu’aucun serveur ne renvoie. Ce qui est traduit, c’est l’explication autour ; le protocole ne l’est pas.

La table des éditeurs est la seule partie qui ne provienne pas d’un registre, faute de registre d’où la tirer. Chaque ligne vient de la documentation de l’éditeur concerné. Elle n’est pas exhaustive et ne peut pas l’être, puisque n’importe qui peut renvoyer le nombre qu’il veut.

Pourquoi est-ce gratuit ?

Parce que c’est une liste. Toute la page est du texte statique avec un champ de recherche qui la filtre dans votre navigateur : rien n’est envoyé, rien n’est conservé, et aucun serveur n’intervient pour la lire.

Il n’y a donc ni compte, ni inscription, ni quoi que ce soit derrière un mur. Le registre sous-jacent est un document public tenu par l’IANA, et une liste de faits publics ne devrait pas avoir de péage devant elle.