418 I'm a Teapot — réponse HTTP

L’histoire de HTTP 418 — le code de statut HTCPCP des poissons d’avril devenu l’easter egg préféré du Web —, ce qui se passe réellement quand Google rencontre une 418 et pourquoi une WAF qui la renvoie sur de vraies pages pose problème.

Première publication : 4 juil. 2026 · Dernière mise à jour : 8 août 2026 · Beginner
Langues
1 indice probant sur cette page

HTTP 418 I'm a teapot est un code de statut humoristique issu de la RFC HTCPCP des poissons d’avril de 1998 (RFC 2324) : une théière à qui l’on demande de préparer du café doit refuser, puisqu’elle est une théière. Le code n’a jamais reçu de sémantique applicative HTTP ordinaire, mais il n’est pas « non attribué » : la RFC 9110 le réserve formellement et le registre de l’IANA le répertorie comme (Unused), donc indisponible pour une réutilisation ordinaire. Une tentative de récupération en 2017 a échoué face à la campagne « Save 418 ». Les recommandations Google datées de 2023 traitent 418 comme n’importe quelle autre 4xx non-429 pour Search, tandis que la page générique actuelle sur les statuts d’exploration ne couvre pas les codes exotiques comme celui-ci. Cela compte surtout en pratique lorsqu’une WAF ou une couche de protection anti-robots utilise 418 pour bloquer des requêtes et la renvoie par erreur à Googlebot — vérifiez-la comme n’importe quelle autre 4xx. L’URL /coffee de ce site renvoie une vraie 418, conformément à la RFC.

TL;DR — 418 I'm a teapot est le code de statut humoristique préféré du Web. Il vient de la RFC 2324, une RFC des poissons d’avril consacrée aux cafetières, et n’a jamais reçu de sémantique applicative HTTP ordinaire — mais il est formellement réservé, et non attribué, par la RFC 9110 et le registre de l’IANA. Les recommandations Google datées de 2023 le traitent comme toute autre 4xx non-429 : l’URL n’est pas indexée. Essayez-le sur ce site : /coffee renvoie une vraie 418 — vérifiez l’onglet réseau.

Evidence for this claim RFC 2324 introduced 418 as an April Fools' status code for a teapot that refuses to brew coffee. Scope: The original 1998 Hyper Text Coffee Pot Control Protocol joke specification. Confidence: high · Verified: IETF: RFC 2324 §2.3.2 — 418 I'm a teapot

D’où vient la 418 ?

Le 1er avril 1998, l’IETF a publié RFC 2324 : le Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) — un protocole entièrement spécifié et totalement satirique pour contrôler des cafetières sur le Web. Parmi ses contributions : la méthode BREW, l’en-tête Accept-Additions (lait, sirop, whisky) et un code de statut immortel :

418 I’m a teapot — “Any attempt to brew coffee with a teapot should result in the error code ‘418 I’m a teapot’. The resulting entity body MAY be short and stout.” (traduction) : « Toute tentative de préparer du café avec une théière doit produire le code d’erreur “418 I’m a teapot”. Le corps d’entité résultant MAY être court et trapu. »

Evidence for this claim RFC 2324 introduced 418 as an April Fools' status code for a teapot that refuses to brew coffee. Scope: The original 1998 Hyper Text Coffee Pot Control Protocol joke specification. Confidence: high · Verified: IETF: RFC 2324 §2.3.2 — 418 I'm a teapot

C’est toute la plaisanterie : vous avez demandé du coffee à une teapot. Elle ne peut pas. C’est une théière.

Seize ans plus tard, la RFC 7168 a repris l’idée pour les appareils qui préparent du thé — une autre RFC informative des poissons d’avril, qui distingue un appareil momentanément à court de café d’un appareil qui est définitivement une théière. Aucune des deux RFC n’attribue de sémantique applicative HTTP ordinaire à 418 ; elles décrivent toutes deux HTCPCP, un protocole satirique, et non le HTTP central.

Pourquoi elle n’est jamais devenue du vrai HTTP

La 418 n’a jamais reçu de sémantique HTTP ordinaire — mais elle n’est pas « non attribuée » pour autant. La RFC 9110, la spécification actuelle des sémantiques HTTP, réserve formellement le code (en rappelant la fréquence de son déploiement comme plaisanterie), et le registre des codes de statut HTTP de l’IANA répertorie 418 comme (Unused), en référence à la RFC 9110 — elle n’est pas disponible pour une réutilisation ordinaire. Evidence for this claim RFC 9110 reserves status code 418, citing how often it has been deployed as a joke, and leaves open the possibility of assigning it a different meaning in the future if circumstances require it. Scope: Current HTTP Semantics reservation; RFC 9110 does not make 418 a normal production status, but does not permanently foreclose future reassignment. Confidence: high · Verified: IETF: RFC 9110 §15.5.19 — 418 (Unused) En 2017, le groupe de travail HTTP de l’IETF a proposé de la nettoyer afin de réattribuer le code à quelque chose d’utile. Internet a répondu par une campagne « Save 418 », et la réservation a été maintenue — la RFC 9110 laisse également ouverte la possibilité de la réattribuer plus tard si les circonstances l’exigent. Evidence for this claim The IANA HTTP Status Code Registry lists 418 as "(Unused)" and references RFC 9110; it is not an unassigned number available for ordinary reuse. Scope: IANA's current registry entry for status code 418. Confidence: high · Verified: IANA: HTTP Status Code Registry — 418

Cela n’a pas empêché les implémenteurs d’en faire usage : net/http de Go et le module http de Python exposent tous deux une constante 418 nommée (StatusTeapot, HTTPStatus.IM_A_TEAPOT), et d’autres frameworks et plateformes l’ont adoptée comme easter egg — notamment le google.com/teapot de Google. Evidence for this claim Go's net/http and Python's http module both expose a named 418 status constant, showing implementation recognition without requiring servers to emit 418. Scope: Named constants in two mainstream standard libraries; not evidence of a default response. Confidence: high · Verified: Go: net/http status constants (StatusTeapot) Python docs: http.HTTPStatus.IM_A_TEAPOT Une constante nommée ne signifie pas qu’un framework émet 418 par défaut ; cela signifie que le code est reconnu, pas qu’il possède une sémantique HTTP attribuée.

Ce que signifie une 418 pour le SEO

Rien de spécial — et c’est le point important. Google ne décode pas la plaisanterie ; une publication Search Central nommée de février 2023 indique que toutes les réponses 4xx sauf 429 reçoivent le même traitement dans Search : les URL auparavant indexées sont retirées avec le temps et le contenu de la page n’est pas utilisé. Evidence for this claim Google's Search Central blog states that all 4xx responses except 429 receive the same treatment for Search: content isn't used and previously indexed URLs are removed over time. Scope: Google Search's dated, named statement on 4xx handling (not 418-specific). Confidence: high · Verified: Google Search Central Blog (Feb 2023): Don't use 403s or 404s for rate limiting C’est une affirmation générale sur les 4xx, pas une règle spécifique aux théières — la page générique actuelle de Google sur les statuts d’exploration indique explicitement que les statuts exotiques comme 418 ne figurent pas dans son tableau. Evidence for this claim Google's current generic crawler-status-code page states that exotic statuses such as 418 are not covered by its table. Scope: Scope note limiting Google's generic HTTP-status guidance to common codes. Confidence: high · Verified: Google: How HTTP status codes affect Google's crawlers En pratique, une 418 se comporte comme une autre 4xx non-429 du point de vue de l’indexation ; il n’existe aucune règle de classement propre aux théières, aucun calendrier de désindexation ni garantie de récupération au-delà de cette affirmation générale.

C’est ici que la plaisanterie cesse d’être drôle : certaines configurations WAF et de protection anti-robots utilisent 418 comme réponse « requête bloquée », parce qu’elle est distinctive et facile à repérer dans les journaux. Si une telle règle se déclenche par erreur sur Googlebot, vos vraies pages commencent à répondre 418 — et elles sont traitées exactement comme des pages qui n’existent pas.

Si vous voyez des 418 dans les journaux serveur ou les rapports d’exploration sur des URL importantes, le code de statut seul ne vous dit pas quelle couche l’a produit — le code applicatif, un défaut de framework, une règle WAF ou anti-robots, un CDN ou le serveur d’origine peuvent tous le produire, et une réponse peut traverser plusieurs de ces couches avant d’arriver au client. Vérifiez la configuration, les en-têtes de réponse et les journaux du chemin de requête à chaque couche pour trouver la source réelle, puis corrigez-la comme n’importe quelle autre 4xx indésirable sur une URL indexable.

Utilisez cette séquence minimale de diagnostic :

  1. Capturez le statut brut et les en-têtes de réponse de l’URL concernée.
  2. Comparez les journaux de l’application, de la WAF, du CDN et de l’origine pour le même chemin de requête et le même moment.
  3. Corrigez la couche qui émet 418, puis répétez la requête brute et le test d’exploration.

Celle de ce site

Dans l’esprit de la RFC, /coffee sur ce site renvoie une vraie 418, courte et trapue, directement depuis la périphérie. Cette page existe pour donner à cet easter egg une explication canonique — et pour que le cluster http-status-codes couvre le seul code de statut qui fait vraiment sourire.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.