Codes de statut HTTP
Parcourez les codes par catégorie. Dépliez une ligne pour voir un exemple de message HTTP réel pour ce code.
1xxInformationnelles (Informational)
100ContinueLe client devrait poursuivre l’envoi du corps de la requête.Exemple
→ REQUEST
POST /uploads HTTP/1.1 Host: example.com Content-Length: 5242880 Expect: 100-continue
← RESPONSE
HTTP/1.1 100 Continue (client now streams the 5 MB body) HTTP/1.1 201 Created Location: /uploads/8f2c
101Switching ProtocolsLe serveur accepte de changer de protocole (p. ex. passage à WebSocket).Exemple
→ REQUEST
GET /chat HTTP/1.1 Host: example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Sec-WebSocket-Version: 13
← RESPONSE
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
102ProcessingComprendre le code 102 Processing, comment cette réponse évite les expirations côté client lors de requêtes longues, et son origine WebDAV.Exemple
→ REQUEST
GET /sample.pdf HTTP/1.1 Host: example.com
103Early HintsComprendre 103 Early Hints et comment ce code accélère le chargement des pages en préchargeant les ressources avant la réponse finale.Exemple
→ REQUEST
GET /index.html HTTP/1.1 Host: example.com
2xxSuccès (Success)
200OKLa requête a réussi ; la réponse contient la ressource demandée.Exemple
→ REQUEST
GET /products/42 HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 200 OK Content-Type: application/json Content-Length: 51 { "id": 42, "name": "Trailhead Boot", "price": 189 }
201CreatedLa requête a réussi et une nouvelle ressource a été créée.Exemple
→ REQUEST
POST /products HTTP/1.1 Host: example.com Content-Type: application/json { "name": "Ridge Boot", "price": 210 }
← RESPONSE
HTTP/1.1 201 Created Location: /products/43 Content-Type: application/json { "id": 43, "name": "Ridge Boot", "price": 210 }
202AcceptedDécouvrez ce que signifie une réponse 202 Accepted, comment ce code signale un traitement asynchrone et comment interroger le résultat final.Exemple
→ REQUEST
POST /job HTTP/1.1 Host: example.com Content-Type: application/xml Content-Length: 68 <?xml version="1.0"?> <job> <id>125</id> <task>G01</task> </job>
203Non-Authoritative InformationDécouvrez ce que signifie une réponse 203 Non-Authoritative Information, quand les proxys renvoient 203 et en quoi ce code diffère de 200 OK.Exemple
→ REQUEST
GET /instructions HTTP/1.1 Host: example.com
204No ContentRéussi, sans corps de réponse.Exemple
→ REQUEST
DELETE /products/43 HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 204 No Content (no body)
205Reset ContentDécouvrez ce que signifie une réponse 205 Reset Content, comment elle demande au client d’effacer les données du formulaire et en quoi elle diffère de 204.Exemple
→ REQUEST
POST /signup HTTP/1.1 Host: example.com Content-Type: application/xml Content-Length: 92 <?xml version="1.0"?> <person> <name>David Smith</name> <country>USA</country> </person>
206Partial ContentComprendre la réponse 206 Partial Content, le fonctionnement des requêtes Range pour les téléchargements reprenables et les réponses de plages multipart.Exemple
→ REQUEST
GET /videos/sample.mp4 HTTP/1.1 Host: example.com Range: bytes=25000-75000
207Multi-StatusDécouvrez ce que signifie une réponse 207 Multi-Status, comment WebDAV l’utilise pour rapporter un résultat par ressource et comment analyser le corps XML.Exemple
<d:response> <d:href>http://example.re/tasks</d:href> <d:status>HTTP/1.1 200 OK</d:status> </d:response>
208Already ReportedComprendre le code 208 Already Reported et la façon dont WebDAV l’utilise au sein des réponses 207 pour éviter de lister deux fois les ressources.Exemple
→ REQUEST
PROPFIND /main/ HTTP/1.1 Host: example.com Depth: infinity DAV: bind Content-Type: application/xml; charset="utf-8" Content-Length: 139 <?xml version="1.0" encoding="utf-8" ?> <d:propfind xmlns:d="DAV:"> <d:prop> <d:name/> <d:link/> </d:prop> </d:propfind>
226IM UsedDécouvrez ce que signifie une réponse 226 IM Used et comment l’encodage delta et les manipulations d’instance économisent de la bande passante.Exemple
→ REQUEST
GET /livingdocs/current_specs.pdf HTTP/1.1 Host: example.com Accept-Encoding: gzip
3xxRedirection
300Multiple ChoicesComprendre la réponse 300 Multiple Choices, quand les serveurs l’envoient et comment les clients choisissent parmi plusieurs représentations.Exemple
→ REQUEST
GET /tech-news HTTP/1.1 Host: example.com
301Moved PermanentlyLa ressource a été déplacée définitivement vers l’adresse indiquée dans Location.Exemple
→ REQUEST
GET /old-path HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 301 Moved Permanently Location: https://example.com/new-path
302FoundLa ressource se trouve temporairement à l’adresse de Location.Exemple
→ REQUEST
GET /account HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 302 Found Location: /login
303See OtherDécouvrez le fonctionnement de la redirection 303 See Other, pourquoi elle bascule toujours en GET et quand l’employer après POST, PUT ou DELETE.Exemple
→ REQUEST
DELETE /tasks/314 HTTP/1.1 Host: example.com
304Not ModifiedLe cache est valide ; la copie locale peut être utilisée telle quelle.Exemple
→ REQUEST
GET /logo.png HTTP/1.1 Host: example.com If-None-Match: "9c2e-abc123"
← RESPONSE
HTTP/1.1 304 Not Modified ETag: "9c2e-abc123" (no body — reuse the cached copy)
305Use ProxyDécouvrez le code 305 Use Proxy, désormais obsolète, les raisons de sécurité de son retrait et ce qui l’a remplacé.Exemple
→ REQUEST
GET /document.pdf HTTP/1.1 Host: example.com
307Temporary RedirectComprendre 307 Temporary Redirect, pourquoi il préserve la méthode de requête contrairement à 302, et quand le préférer à 302 ou 303.Exemple
→ REQUEST
GET /news.html HTTP/1.1 Host: example.com
308Permanent RedirectComprendre 308 Permanent Redirect, comment il préserve la méthode contrairement à 301, et comment les moteurs transfèrent la valeur des liens.Exemple
→ REQUEST
POST /api/v1/orders HTTP/1.1 Host: example.com Content-Type: application/json Content-Length: 35 {"item": "widget", "quantity": 10}
4xxErreur client (Client Error)
400Bad RequestLa syntaxe ou les paramètres de la requête sont invalides.Exemple
→ REQUEST
POST /products HTTP/1.1 Host: example.com Content-Type: application/json { "price": "not-a-number" }
← RESPONSE
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "price must be a number" }
401UnauthorizedAuthentification requise.Exemple
→ REQUEST
GET /account HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 401 Unauthorized WWW-Authenticate: Bearer realm="api"
402Payment RequiredComprendre 402 Payment Required : un code réservé, son usage non standard par Shopify et Stripe, et son impact SEO.Exemple
→ REQUEST
GET /tech-news HTTP/1.1 Host: example.com
403ForbiddenAuthentifié mais non autorisé.Exemple
→ REQUEST
DELETE /users/1 HTTP/1.1 Host: example.com Authorization: Bearer <valid-token>
← RESPONSE
HTTP/1.1 403 Forbidden Content-Type: application/json { "error": "admin role required" }
404Not FoundLa ressource cible est introuvable.Exemple
→ REQUEST
GET /products/9999 HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "product 9999 not found" }
405Method Not AllowedLa méthode n’est pas autorisée pour cette ressource.Exemple
→ REQUEST
DELETE /products HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 405 Method Not Allowed Allow: GET, POST, QUERY
406Not AcceptableCorriger les erreurs 406 Not Acceptable. Comprendre la négociation de contenu, les en-têtes Accept et le traitement des requêtes impossibles à satisfaire.Exemple
Accept: text/html, text/plain
407Proxy Authentication RequiredCorriger les erreurs 407 Proxy Authentication Required. Découvrir les schémas d’authentification proxy et les en-têtes Proxy-Authenticate.Exemple
→ REQUEST
GET /documents/tech-news HTTP/1.1 Host: example.com
408Request TimeoutCorriger les erreurs 408 Request Timeout. Comprendre pourquoi les serveurs ferment les connexions lentes et comment résoudre les problèmes de transmission.Exemple
→ REQUEST
PUT /docs HTTP/1.1 Host: example.com Content-Type: application/pdf Content-Length: 10000
409ConflictCorriger les erreurs 409 Conflict. Comprendre les conflits d’état de ressource, les stratégies de résolution et les cas d’usage courants en API.Exemple
→ REQUEST
POST /blog/update?postid=111&flag=like HTTP/1.1 Host: example.com
410GoneComprendre 410 Gone : suppression définitive de la ressource, différences avec 404, comportement du cache et impact sur l’indexation.Exemple
→ REQUEST
GET /holiday-promotion-Jan-2021.pdf HTTP/1.1 Host: example.com
411Length RequiredCorriger les erreurs 411 Length Required. Découvrez quand l’en-tête Content-Length est requis et comment résoudre cette erreur client.Exemple
→ REQUEST
PUT /docs HTTP/1.1 Host: example.com Content-Type: application/pdf <PDF file included as message body>
412Precondition FailedCorriger les erreurs 412 Precondition Failed. Découvrir les en-têtes de requête conditionnelle, les échecs If-Match et la prévention des pertes de mise à jour.Exemple
→ REQUEST
POST /blog/update?postid=111&task=reply HTTP/1.1 Host: example.com If-Unmodified-Since: Fri, 1 Jan 2021 00:00:00 GMT Content-Type: text/plain Content-Length: 45 <Message body contains reply-text from the client>
413Content Too LargeCorriger les erreurs 413 Content Too Large. Découvrir les limites de taille côté serveur, l’usage de l’en-tête Expect et la gestion des envois trop volumineux.Exemple
→ REQUEST
PUT /docs HTTP/1.1 Host: example.com Content-Type: application/pdf Content-Length: 10000
414URI Too LongCorriger les erreurs 414 URI Too Long. Comprendre les limites de longueur d’URL, les restrictions des navigateurs et comment raccourcir les URI de requête.Exemple
→ REQUEST
GET /<...a_long_URI...> HTTP/1.1 Host: example.com
415Unsupported Media TypeCorriger les erreurs 415 Unsupported Media Type. Découvrir la validation de Content-Type et Content-Encoding, avec une démarche de dépannage.Exemple
→ REQUEST
POST /blog/newmessage HTTP/1.1 Host: example.com Content-Type: text/plain Content-Length: 24 Good morning, Everybody!
416Range Not SatisfiableCorriger les erreurs 416 Range Not Satisfiable. Comprendre les requêtes de plages d’octets, l’en-tête Content-Range et la résolution.Exemple
Content-Range: bytes */512
417Expectation FailedCorriger les erreurs 417 Expectation Failed. Découvrir le fonctionnement de l’en-tête Expect et du mécanisme 100-continue, et quand 417 est renvoyé.Exemple
→ REQUEST
PUT /docs HTTP/1.1 Host: example.com Content-Type: application/pdf Content-Length: 10000 Expect: 100-continue
418I'm a teapotJe suis une théière — le code de statut easter egg du RFC 2324.Exemple
→ REQUEST
BREW /coffee HTTP/1.1 Host: teapot.example
← RESPONSE
HTTP/1.1 418 I'm a teapot Content-Type: text/plain I refuse to brew coffee — I am a teapot.
421Misdirected RequestCorriger les erreurs 421 Misdirected Request. Comprendre la réutilisation des connexions, le routage HTTP/2 et le dépannage Alt-Svc.Exemple
→ REQUEST
GET /tech-news HTTP/2 Host: example.com
422Unprocessable ContentCorriger les erreurs 422 Unprocessable Content. Découvrir les différences avec 400 et 415 et comment résoudre les échecs de validation sémantique.Exemple
→ REQUEST
POST /requests HTTP/1.1 Host: example.com Content-Type: application/xml Content-Length: 101 <?xml version="1.0" encoding="utf-8"?> <request> <id>100</id> <action>start</action> </request>
423LockedCorriger les erreurs 423 Locked. Découvrir les mécanismes de verrouillage WebDAV, les en-têtes Lock-Token, les codes de précondition et le déverrouillage des ressources.Exemple
→ REQUEST
PUT /documents/ HTTP/1.1 Host: example.com Content-Type: application/pdf Content-Length: 10000 <PDF file transferred>
424Failed DependencyCorriger les erreurs 424 Failed Dependency. Découvrir les réponses multi-statuts WebDAV, les opérations PROPPATCH et la résolution des dépendances.Exemple
→ REQUEST
PROPPATCH /update.html HTTP/1.1 Host: example.com Content-Type: application/xml; charset="utf-8" Content-Length: 305 <?xml version="1.0" encoding="utf-8" ?> <d:propertyupdate xmlns:d="DAV:" xmlns:z="urn:example"> <d:set> <d:prop> <z:seats> <z:seatnumber>100</z:seatnumber> <z:seatnumber>101</z:seatnumber> </z:seats> </d:prop> <d:prop> <d:name>Smith</d:name> </d:prop> </d:set> </d:propertyupdate>
425Too EarlyComprendre 425 Too Early : risques de rejeu des early data TLS, l’en-tête Early-Data et les stratégies de protection côté serveur.Exemple
→ REQUEST
GET /tech-news HTTP/1.1 Host: example.com Early-Data: 1
426Upgrade RequiredCorriger les erreurs 426 Upgrade Required. Découvrir les exigences de mise à niveau de protocole, l’en-tête Upgrade et les étapes de résolution.Exemple
→ REQUEST
GET /tech-news HTTP/1.1 Host: example.com
428Precondition RequiredCorriger les erreurs 428 Precondition Required. Découvrir les en-têtes conditionnels comme If-Match et comment éviter les pertes de mise à jour.Exemple
→ REQUEST
PUT /reservations.txt HTTP/1.1 Host: example.com
429Too Many RequestsTrop de requêtes ; limitation de débit appliquée.Exemple
→ REQUEST
GET /api/search HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 429 Too Many Requests Retry-After: 30 Content-Type: application/json { "error": "rate limit exceeded" }
431Request Header Fields Too LargeCorriger les erreurs 431 Request Header Fields Too Large. Découvrir les limites de taille des en-têtes, la réduction des cookies et les étapes de dépannage.Exemple
→ REQUEST
GET /tech-news HTTP/1.1 Host: example.com Cookie: first_cookie=<very_long>; second_cookie=<long_again>
451Unavailable For Legal ReasonsComprendre 451 Unavailable For Legal Reasons : réponses de censure, injonctions légales et usage dans Exchange ActiveSync.Exemple
→ REQUEST
GET /tech-trial-updates HTTP/1.1 Host: example.com
5xxErreur serveur (Server Error)
500Internal Server ErrorUne erreur interne du serveur s’est produite.Exemple
→ REQUEST
GET /report HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "unexpected server error" }
501Not ImplementedCorriger les erreurs 501 Not Implemented. Comprendre les méthodes HTTP non prises en charge, les différences avec 405 et la configuration du serveur.Exemple
→ REQUEST
POST /requests?id=111&flag=start HTTP/1.1 Host: example.com
502Bad GatewayLa passerelle a reçu une réponse invalide de l’amont.Exemple
→ REQUEST
GET /api/users HTTP/1.1 Host: gateway.example.com
← RESPONSE
HTTP/1.1 502 Bad Gateway Content-Type: text/plain upstream sent an invalid response
503Service UnavailableLe service est temporairement indisponible (surcharge ou maintenance).Exemple
→ REQUEST
GET / HTTP/1.1 Host: example.com
← RESPONSE
HTTP/1.1 503 Service Unavailable Retry-After: 120 Content-Type: text/plain under maintenance — try again shortly
504Gateway TimeoutCorriger les erreurs 504 Gateway Timeout. Découvrir les causes des expirations en amont, la configuration du proxy et le dépannage.Exemple
→ REQUEST
GET /news HTTP/1.1 Host: example.com
505HTTP Version Not SupportedCorriger les erreurs 505 HTTP Version Not Supported. Découvrir les incompatibilités de version de protocole et la compatibilité serveur.Exemple
→ REQUEST
GET / HTTP/2 Host: example.com
506Variant Also NegotiatesComprendre 506 Variant Also Negotiates : références circulaires dans la négociation de contenu transparente et mauvaise configuration serveur.Exemple
→ REQUEST
GET /docs HTTP/1.1 Host: example.com Accept: text/html, application/xhtml+xml
507Insufficient StorageCorriger les erreurs 507 Insufficient Storage. Comprendre les limites de stockage WebDAV, les différences avec 413 et la résolution.Exemple
→ REQUEST
PUT /docs HTTP/1.1 Host: example.com Content-Type: application/pdf Content-Length: 10000 <PDF file included in message body>
508Loop DetectedCorriger les erreurs 508 Loop Detected. Comprendre les boucles infinies WebDAV et le dépannage des limites de ressources cPanel.Exemple
→ REQUEST
PROPFIND /shared/ HTTP/1.1 Host: example.com Depth: infinity Content-Type: application/xml
510Not ExtendedComprendre 510 Not Extended : le HTTP Extension Framework obsolète, son statut historique et son usage.Exemple
→ REQUEST
GET /resource HTTP/1.1 Host: example.com
511Network Authentication RequiredCorriger les erreurs 511 Network Authentication Required. Comprendre les portails captifs, les pages de connexion Wi-Fi et la gestion côté client.Exemple
→ REQUEST
GET / HTTP/1.1 Host: example.com