418 I'm a teapot
Utilisation
Le message d’erreur 418 I’m a teapot a été conçu comme l’un des poissons d’avril de l’IETF. La RFC précise que toute théière à laquelle on demande d’infuser du café répond par ce message. Plus précisément, le corps de message qui en résulte est décrit comme petit et trapu.
Bien que ce code de statut ne soit pas utilisé en production, de nombreuses bibliothèques HTTP le prennent en charge. Une tentative de suppression de ce code de statut, destinée à libérer le numéro pour un usage officiel, s’est heurtée à une résistance et a donné naissance à l’initiative Save 418. Le message et le code de statut subsistent.
Réservation du code de statut
La spécification HTTP réserve le code de statut 418 comme “(Unused)” afin d’éviter les conflits avec les nombreuses implémentations de HTCPCP.
Impact SEO
Les moteurs de recherche comme Google n’indexent pas une URL dont le statut de réponse est 418 I’m a teapot. Les URL précédemment indexées sont retirées des résultats de recherche.
Exemple
Le client demande que du café soit infusé, mais la théière s’y oppose.
Requête
BREW coffee HTTP/1.1
Host: example.com
Content-Type: message/coffeepot
Content-Length: 5
start
Réponse
HTTP/1.1 418 I'm a teapot
Content-Type: text/html
Content-Length: 146
<html>
<head>
<title>Beverage not supported</title>
</head>
<body>
<p>This is a teapot. Coffee is not supported.</p>
</body>
</html>
Déclencher une réponse 418
Une réponse 418 n’est renvoyée que par des serveurs configurés pour prendre en charge le protocole humoristique HTCPCP, ou par des applications qui renvoient explicitement ce code. Google renvoie un 418 sur google.com/teapot en guise d’easter egg. De nombreux frameworks web permettent de renvoyer un 418 en définissant directement le code de statut de la réponse. Aucun serveur HTTP standard ne renvoie 418 sans configuration délibérée.
Histoire du 418
Le code de statut est né en 1998 dans le cadre d’une spécification de poisson d’avril pour le Hyper Text Coffee Pot Control Protocol (HTCPCP). Une spécification complémentaire étendant HTCPCP au thé a suivi en 2014. Lorsque l’IETF a envisagé en 2017 de récupérer ce code pour un usage officiel, la communauté des développeurs s’y est opposée et a lancé le mouvement Save 418. L’IETF a finalement réservé le code comme “(Unused)” dans la spécification HTTP principale.
Références de code
.NET
StatusCodes.Status418ImATeapot
Rust
http::StatusCode::IM_A_TEAPOT
Go
http.StatusTeapot
Symfony
Response::HTTP_I_AM_A_TEAPOT
Python3.9+
http.HTTPStatus.IM_A_TEAPOT
Angular
@angular/common/http/HttpStatusCode.ImATeapot