recursal/MDN huggingface dataset:
404 Not Found
=============

Le code de statut de réponse HTTP **`404 Not Found`** indique qu'un serveur ne peut pas trouver la ressource demandée. Cette réponse est probablement la plus connue du fait de sa fréquence d'apparition sur le Web. Les liens qui entraînent cette erreur sont souvent appelés liens morts ou brisés et conduisent à un lien rompu.

Un code de statut 404 n'indique pas si cette absence est temporaire ou permanente. Si le serveur sait que cette condition est permanente, il faudra alors utiliser un code `410` (Gone) à la place.

Statut
------
```

404 Not Found
```

Pages d'erreur personnalisées
-----------------------------

De nombreux sites Web personnalisent le style de la page 404 afin que celle-ci soit plus utile pour l'utilisateur et fournisse une certaine aide. Les serveurs Apache peuvent par exemple être configurés en utilisant un fichier `.htaccess` contenant un fragment de code tel que celui-ci :
```

ErrorDocument 404 /notfound.html
```


Vous pouvez aussi vous inspirer de la page 404 de MDN.

**Note :** Le style des pages 404 est une source d'inspiration infinie, mais sachez qu'il existe également un ensemble de meilleurs pratiques pour que cette page particulière soit utile pour les utilisateurs.

Spécifications
--------------

| Specification |
| --- |
| HTTP Semantics # status.404 |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `410`
* Wikipédia : Erreur HTTP 404
303 See Other
=============

Le code de statut de réponse de redirection **`303 See Other`**, généralement renvoyé comme résultat d'une opération `PUT` ou `POST`, indique que la redirection ne fait pas le lien vers la ressource nouvellement téléversée mais vers une autre page (par exemple une page de confirmation ou qui affiche l'avancement du téléversement). La méthode utilisée pour afficher la page redirigée est toujours `GET`.

Statut
------
```

303 See Other
```

Spécifications
--------------

| Specification |
| --- |
| HTTP Semantics # status.303 |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `302 Found`, la redirection temporaire.
* `307 Temporary Redirect`, l'équivalent de ce code de statut, mais qui ne change jamais la méthode utilisée.
429 Too Many Requests
=====================

Le code de statut de réponse HTTP **`429 Too Many Requests`** indique que l'utilisateur a envoyé trop de requêtes en un temps donné.

Un en-tête `Retry-After` (en-US) peut être inclus dans cette réponse afin d'indiquer le temps à attendre pour effectuer une nouvelle requête.

Statut
------
```

429 Too Many Requests
```

Exemple
-------
```

HTTP/1.1 429 Too Many Requests
Content-Type: text/html
Retry-After: 3600
```

Spécifications
--------------

| Specification |
| --- |
| RFC 6585 # section-4 |

Compatibilité des navigateurs
-----------------------------

{{Compat}}Voir aussi
----------

* `Retry-After` (en-US)
* HTTP/1.1 : Définitions des codes de statut (en anglais)
* Solution en Python : comment éviter l'erreur HTTP 429 en Python (en anglais)
506 Variant Also Negotiates
===========================

Le code de réponse HTTP **`506 Variant Also Negotiates`** peut être donné dans le contexte du protocole de **négociation de contenu transparente** (voir RFC 2295). Ce protocole permet à un client de recevoir la meilleure variante d'une ressource donnée, quand le serveur prend en charge plusieurs variantes.

Le statut **`Variant Also Negotiates`** indique une erreur de configuration interne du serveur dans laquelle la variante choisie est elle-même configurée pour s'engager dans la négociation de contenu, et n'est donc pas un point final de négociation approprié.

Statut
------
```

506 Variant Also Negotiates
```

Spécifications
--------------

| Specification |
| --- |
| RFC 2295 # section-8.1 |

Compatibilité des navigateurs
-----------------------------

{{Compat}}
201 Created
===========

Le code de statut HTTP **`201 Created`** indique que la requête a réussi et qu'une ressource a été créée en conséquence. La nouvelle ressource est effectivement créée avant que la réponse soit renvoyée et cette nouvelle ressource est renvoyée dans le corps du message. Son emplacement est indiqué par l'URL de la requête ou le contenu de l'en-tête `Location`.

Ce code de statut est généralement obtenu comme résultat suite à une requête utilisant la méthode `POST`.

Statut
------
```

201 Created
```

Spécifications
--------------

| Specification |
| --- |
| HTTP Semantics # status.201 |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Les différentes méthodes pour les requêtes HTTP
418 I'm a teapot (je suis une théière)
======================================

Le statut erreur client HTTP **`418 I'm a teapot`** qui signifie « Je suis une théière » informe que le serveur refuse de préparer du café, car il s'agit d'une théière. Une cafetière/théière combinée qui serait temporairement à court de café devrait retourner le code 503. Cette erreur est une référence au protocole « *Hyper Text Coffee Pot Control Protocol* » qui est le poisson d'avril des RFCs en 1998.

Certains sites web utilisent ce code de réponse pour les requêtes qu'ils ne souhaitent pas traiter (par exemple des requêtes automatiques).

Statut
------
```

418 I'm a teapot
```

Spécifications
--------------

| Specification |
| --- |
| RFC 2324 # section-2.3.2 |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Hyper Text Coffee Pot Control Protocol sur Wikipédia
307 Temporary Redirect
======================

Le code de statut de réponse de redirection **`307 Temporary Redirect`** indique que la ressource demandée est temporairement déplacée vers l'URL contenue dans l'en-tête `Location`. Un navigateur redirige vers cette page mais les moteurs de recherche ne mettent pas à jour leurs liens vers la ressource (en termes de référencement, cela indique que le flux de référencement n'est pas envoyé vers la nouvelle URL).

La méthode et le corps de la requête originale sont réutilisés pour réaliser la requête redirigée. Si vous souhaitez que la méthode utilisée soit changée `GET`, il faut alors utiliser le code `303 See Other` à la place. Ceci s'avère utile lorsqu'on souhaite donner une réponse à une méthode `PUT` et que cette réponse n'est pas la ressource téléversée mais un message de confirmation (par exemple, « Vous avez téléversé avec succès XYZ »).

La seule différence entre le code `307` et le code `302` réside dans le fait que le statut `307` garantit que la méthode et le corps ne seront pas modifiés lorsque la requête redirigée aura lieu. Avec `302`, quelques anciens clients changent, incorrectement, la méthode vers `GET` : ce comportement, avec les méthodes différentes de `GET` et `302`, est imprédictible sur le Web. En revanche; celui de `307` est bien prédictible. Pour la requête `GET`, leurs comportements respectifs sont identiques.

Statut
------
```

307 Temporary Redirect
```

Spécifications
--------------

| Specification |
| --- |
| HTTP Semantics # status.307 |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `302 Found`, l'équivalent de ce code de statut, mais qui peut modifier la méthode utilisée lorsqu'il ne s'agit pas d'un `GET`.
* `303 See Other`, une redirection temporaire qui change la méthode utilisée en `GET`.
* `301 Moved Permanently`, la redirection permanente.
431 Request Header Fields Too Large
===================================

Le code de statut de réponse HTTP **`431 Request Header Fields Too Large`** indique que le serveur n'est pas disposé à traiter la requête, car les en-têtes HTTP sont trop grands. La requête peut être renvoyée une fois que les en-têtes de la requête auront été réduits.

Ce code peut être utilisé lorsque la taille totale occupée par les en-têtes est trop importante ou lorsqu'un seul en-tête est trop grand. Utiliser le corps de la réponse pour indiquer plus précisément la nature de l'erreur peut aider la partie cliente à diagnostiquer. Il peut également être utile de préciser le ou les en-têtes concernés afin que l'utilisatrice ou l'utilisateur puisse corriger le problème (par exemple en supprimant les cookies).

Les serveurs produiront généralement ce statut si :

* L'URL contenue dans l'en-tête `Referer` est trop longue
* La requête contient de trop nombreux cookies
Statut
------
```

431 Request Header Fields Too Large
```

Spécifications
--------------

| Specification |
| --- |
| RFC 6585 # section-5 |

Compatibilité des navigateurs
-----------------------------

{{Compat}}Voir aussi
----------

* `414 URI Too Long`
* En-tête de requête
400 Bad Request
===============

Le code de statut de réponse HTTP **`400 Bad Request`** indique que le serveur ne peut pas comprendre ou traiter la requête en raison d'une erreur côté client (par exemple une requête dont la syntaxe ou le contenu est invalide).

**Attention :** Le client ne devrait pas répéter la requête sans modification.

Statut
------
```

400 Bad Request
```

Spécifications
--------------

| Specification |
| --- |
| HTTP Semantics # status.400 |

Compatibilité des navigateurs
-----------------------------

{{Compat}}Voir aussi
----------

* HTTP/1.1 : Définitions des codes de statut (en anglais)
510 Not Extended
================

Le code de statut de réponse HTTP **`510 Not Extended`** est envoyé dans le contexte du « *HTTP Extension Framework* », defini dans la RFC 2774.

Dans cette spécification, un client peut envoyer une demande qui contient une déclaration d'extension et qui décrit l'extension à utiliser. Si le serveur reçoit une telle demande, mais que les extensions décrites ne sont pas prises en charge pour la requête, alors, le serveur répond avec le code de statut 510.

Statut
------
```

510 Not Extended
```

Spécifications
--------------

| Specification |
| --- |
| RFC 2774 # section-7 |

Compatibilité des navigateurs
-----------------------------

{{Compat}}
416 Range Not Satisfiable
=========================

Le code de réponse d'erreur HTTP **`416 Range Not Satisfiable`** indique que le serveur ne peut pas servir les plages demandées. L'explication la plus probable est que le document ne contient pas de telles plages, ou que la valeur de l'en-tête `Range` (en-US) n'a aucun sens bien que sa syntaxe soit correcte.

Le message de réponse `416` contient un en-tête `Content-Range` (en-US) qui indique une plage qui n'est pas satisfaite (représentée par `'*'`) suivie par `'/'` puis la ressource courante (par exemple, `Content-Range: */12777`).

Lorsqu'ils rencontrent cette erreur, les navigateurs abandonnent généralement l'opération en cours (un téléchargement ne pourra pas être repris par exemple) ou ils redemandent le document dans son intégralité.

Statut
------
```

416 Range Not Satisfiable
```

Spécifications
--------------

| Specification |
| --- |
| HTTP Semantics # status.416 |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `206 Partial Content`
* `Content-Range` (en-US)
* `Range` (en-US)
101 Switching Protocol
======================

Le code de réponse HTTP **`101 Switching Protocol`** indique le protocole sur lequel le serveur a basculé, comme demandé par le client via l'en-tête de requête `Upgrade`.

Le serveur envoie alors une réponse avec un en-tête de réponse `Upgrade` qui indique le nouveau protocole utilisé. Ce processus est décrit dans l'article Mécanisme de mise à jour du protocole.

Statut
------
```

101 Switching Protocol
```

Exemples
--------

Les changements de protocole peuvent être utilisés avec WebSockets.
```

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
```

Spécifications
--------------

| Specification |
| --- |
| HTTP Semantics # status.101 |

Compatibilité des navigateurs
-----------------------------

{{Compat}}Voir aussi
----------

* Mécanisme de mise à jour du protocole
* WebSockets
* `Upgrade`
* `426 Upgrade Required`
508 Loop Detected
=================

Le code de réponse HTTP **`508 Loop Detected`** peut être donné dans le contexte du protocole WebDAV.

Il indique que le serveur termine une opération, car il rencontre une boucle infinie pendant le traitement de la requête avec « *Depth: infinity* ». Ce statut indique que l'entièreté de l'opération a échouée.

Statut
------
```

508 Loop Detected
```

Spécifications
--------------

| Specification |
| --- |
| RFC 5842 # section-7.2 |

Compatibilité des navigateurs
-----------------------------

{{Compat}}
412 Precondition Failed
=======================

Le code de réponse d'erreur HTTP **`412 Precondition Failed`** indique que l'accès à la ressource visée a été refusé. Cela arrive avec les requêtes conditionnelles lorsque les méthodes utilisées ne sont pas `GET` ou `HEAD` et que la condition définie par les en-têtes `If-Unmodified-Since` (en-US) ou `If-None-Match` n'est pas respectée. Dans ce cas, la requête, généralement un téléversement ou une modification d'une ressource, ne peut être appliquée et ce code de réponse d'erreur est renvoyé.

Statut
------
```

412 Precondition Failed
```

Exemples
--------
```

ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
ETag: W/"0815"
```

### Éviter les conflits d'édition

Grâce aux en-têtes `ETag` et `If-Match` (en-US), il est possible de détecter des conflits d'édition sur une même ressource.

Par exemple, pour un wiki dont l'empreinte du contenu du document édité serait placée dans l'en-tête `Etag` de la réponse :
```

ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
```


Lors d'un enregistrement demandé côté client qui correspond à une requête HTTP `POST`, la requête contiendra un en-tête `If-Match` (en-US) contenant la valeur de l'`ETag` afin de vérifier la fraîcheur du contenu.
```

If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"
```


Si les deux empreintes ne correspondent pas, cela signifie que le document a été édité entre-temps et une erreur `412 Precondition Failed` est déclenchée.

Spécifications
--------------

| Specification |
| --- |
| HTTP Semantics # status.412 |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `304 Not Modified`
* `If-Unmodified-Since` (en-US)
* `If-None-Match`
* `428`
500 Internal Server Error
=========================

Le code de réponse d'erreur serveur HTTP **`500 Internal Server Error`** indique que le serveur a rencontré un problème inattendu qui l'empêche de répondre à la requête.

Cette réponse d'erreur est une réponse générique « fourre-tout ». Souvent, les administrateurs des serveurs enregistreront les erreurs qui entraînent un code 500 avec d'autres informations à propos de la requête afin d'empêcher que l'erreur ne se reproduise à nouveau.

Statut
------
```

500 Internal Server Error
```

Spécifications
--------------

| Specification |
| --- |
| HTTP Semantics # status.500 |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* HTTP/1.1 : Définitions des codes de statut (en anglais)
406 Not Acceptable
==================

Le code de réponse d'erreur HTTP **`406 Not Acceptable`** indique qu'il est impossible de servir une réponse qui satisfait aux critères définis dans les en-têtes de négociation de contenu et que le serveur ne souhaite pas fournir de représentation par défaut.

Les en-têtes de négociation de contenu incluent :

* `Accept`
* `Accept-Encoding`
* `Accept-Language`

En réalité, cette erreur est très rarement utilisée. Plutôt que de répondre avec ce code, incompréhensible de l'utilisateur (et difficile à résoudre), les serveurs ignorent les en-têtes en question et renvoient une page à l'utilisateur. On part du principe que, même si l'utilisateur ne sera pas complètement satisfait, ce scénario est préférable à un code d'erreur.

Si un serveur renvoie ce code d'erreur, le corps du message doit contenir la liste des représentations disponibles pour cette ressource afin de pouvoir choisir manuellement parmi celles-ci.

Statut
------
```

406 Not Acceptable
```

Spécifications
--------------

| Specification |
| --- |
| HTTP Semantics # status.406 |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `Accept`
* `Accept-Encoding`
* `Accept-Language`
* Négociation du contenu en HTTP
301 Moved Permanently
=====================

Le code de statut de réponse de redirection **`301 Moved Permanently`** indique que la ressource a définitivement été déplacée à l'URL contenue dans l'en-tête `Location`. Un navigateur redirigera vers cette page et les moteurs de recherche mettront à jour leurs liens vers la ressource.

**Note :** Même si la spécification impose que la méthode et le corps ne soient pas altérés lors d'une redirection, tous les agents utilisateurs ne s'y conforment pas et il est possible de trouver des logiciels bogués sur ce point. Il est donc recommandé d'utiliser le code `301` uniquement pour répondre à une requête `GET` ou `HEAD`, et de privilégier le code `308 Permanent Redirect` pour répondre à `POST` puisque le changement de méthode est explicitement interdit avec ce statut.

Statut
------
```

301 Moved Permanently
```

Exemple
-------

### Requête du client
```

GET /index.php HTTP/1.1
Host: www.example.org
```

### Réponse du serveur
```

HTTP/1.1 301 Moved Permanently
Location: http://www.example.org/index.asp
```

Spécifications
--------------

| Specification |
| --- |
| HTTP Semantics # status.301 |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `308 Permanent Redirect`
* `302 Found`, la redirection temporaire.
504 Gateway Timeout
===================

Le code de réponse HTTP d'erreur serveur **`504 Gateway Timeout`** indique que le serveur, agissant comme passerelle ou proxy, n'a pas obtenu de réponse à temps de la part d'un serveur situé en amont pour la complétion de la requête.

**Note :** Une passerelle (*gateway*) peut faire référence à différents éléments en réseaux et une erreur 504 est habituellement quelque chose que vous ne pouvez pas corriger mais qui nécessite une correction sur le serveur web ou sur le proxy par lequel vous passez pour y accéder.

Statut
------
```

504 Gateway Timeout
```

Spécifications
--------------

| Specification |
| --- |
| HTTP Semantics # status.504 |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* HTTP/1.1 : Définitions des codes de statut (en anglais)
* `502`
451 Unavailable For Legal Reasons
=================================

Le code de réponse d'erreur HTTP **`451 Unavailable For Legal Reasons`** indique que le client a demandé une ressource qui n'est pas disponible pour des raisons légales (par exemple, une page web sous le coup d'une action en justice).

Statut
------
```

451 Unavailable For Legal Reasons
```

Exemple
-------

Cet exemple de réponse est tiré de la RFC IETF (cf. ci-après), et contient une référence à Monty Python : La Vie de Brian.

**Note :** L'en-tête `Link` peut aussi contenir une relation `rel="blocked-by"` identifiant l'entité ayant mis en place le blocage de la ressource et pas nécessairement l'entité ayant demandé le blocage.

C'est le corps de la réponse (et non `rel="blocked-by"`) qui pourra renseigner sur l'entité responsable en premier lieu du blocage de la ressource. Le corps peut ainsi contenir le nom de la personne ou de l'organisation qui a réalisé la demande à l'origine du retrait du contenu.
```

HTTP/1.1 451 Unavailable For Legal Reasons
Link: <https://spqr.example.org/legislatione>; rel="blocked-by"
Content-Type: text/html
```



```html
<html>
  <head>
    <title>Unavailable For Legal Reasons</title>
  </head>
  <body>
    <h1>Unavailable For Legal Reasons</h1>
    <p>
      This request may not be serviced in the Roman Province of Judea due to the
      Lex Julia Majestatis, which disallows access to resources hosted on
      servers deemed to be operated by the People's Front of Judea.
    </p>
  </body>
</html>
```

Spécifications
--------------

| Specification |
| --- |
| An HTTP Status Code to Report Legal Obstacles # n-451-unavailable-for-legal-reasons |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* La page Wikipédia sur le code d'erreur HTTP 451
* La page Wikipédia de l'œuvre Fahrenheit 451 (qui a donné son numéro à ce code de statut)
203 Non-Authoritative Information
=================================

Le code de statut de réponse HTTP **`203 Non-Authoritative Information`** indique que la requête a réussi mais que le contenu a été modifié entre la réponse `200` (`OK`) du serveur original par un proxy transformant.

La réponse 203 est similaire au code d'en-tête `214` (Transformation Applied) (en-US) `Warning` (en-US), qui a l'avantage d'être applicable à tout code de statut.

Statut
------
```

203 Non-Authoritative Information
```

Spécifications
--------------

| Specification |
| --- |
| HTTP Semantics # status.203 |

Compatibilité des navigateurs
-----------------------------

{{Compat}}Voir aussi
----------

* `200`
* Serveur proxy
* `Warning` (en-US)
402 Payment Required
====================

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

Le code de statut de réponse HTTP **`402 Payment Required`** est une erreur non standard réservée pour un usage futur.

En général, ce code indique que la requête ne peut pas être traitée avant que le client effectue un paiement. Initialement, il a été créé afin de permettre des (micro) paiements numériques et indiquerait que le contenu demandé n'est pas disponible avant que le client ne fasse un paiement. Cependant, aucune convention d'usage commune n'existe et différentes entités l'utilisent dans différents contextes.

Statut
------
```

402 Payment Required
```

Exemple de réponse
------------------
```

HTTP/1.1 402 Payment Required
Date: Wed, 21 Oct 2015 07:28:00 GMT
```

Spécifications
--------------

| Specification |
| --- |
| HTTP Semantics # status.402 |

Compatibilité des navigateurs
-----------------------------

{{Compat}}Voir aussi
----------

* Authentification HTTP