418 Jestem czajnikiem

Historia HTTP 418 — kodu statusu HTCPCP z primaaprilisowego RFC, który stał się ulubionym easter eggiem internetu — a także to, co naprawdę dzieje się, gdy Google napotyka 418, i dlaczego zwracanie go przez WAF na prawdziwych stronach stanowi problem.

Opublikowano po raz pierwszy: 4 lip 2026 · Ostatnia aktualizacja: 6 sie 2026 · Beginner
Języki
1 sygnał dowodowy na tej stronie

HTTP 418 I'm a teapot to żartobliwy kod statusu z primaaprilisowego RFC HTCPCP z 1998 roku (RFC 2324): czajnik poproszony o zaparzenie kawy musi odmówić, bo jest czajnikiem. Nigdy nie otrzymał zwykłej semantyki aplikacyjnej HTTP, ale nie jest „nieprzypisany” — RFC 9110 formalnie rezerwuje ten kod, a rejestr IANA wymienia go jako (Unused), a więc nie udostępnia do zwykłego ponownego użycia. Próba odzyskania go w 2017 roku przegrała z kampanią „Save 418”. Datowane wytyczne Google z 2023 roku traktują 418 tak samo jak każdy inny kod 4xx poza 429 w Search, a bieżąca ogólna strona o statusach crawlera w ogóle nie obejmuje egzotycznych kodów takich jak ten. W praktyce ma to znaczenie tylko wtedy, gdy warstwa WAF lub ochrony przed botami używa 418 do blokowania żądań (niektóre tak robią) i przypadkowo zwraca go Googlebotowi — sprawdzaj go tak jak każdy inny kod 4xx. Adres /coffee w tym serwisie zwraca prawdziwy 418, zgodnie z RFC.

TL;DR — 418 I'm a teapot to najbardziej lubiany żartobliwy kod statusu w sieci. Pochodzi z RFC 2324, primaaprilisowego RFC o dzbankach do kawy, i nigdy nie otrzymał zwykłej semantyki HTTP — ale zgodnie z RFC 9110 i rejestrem IANA jest formalnie zarezerwowany, a nie nieprzypisany. Datowane wytyczne Google z 2023 r. traktują go jak każdy inny kod 4xx poza 429: adres URL nie zostaje zindeksowany. Sprawdź go na tej stronie: /coffee odpowiada prawdziwym 418 — zajrzyj do zakładki Network.

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

Skąd pochodzi 418

1 kwietnia 1998 roku IETF opublikował RFC 2324: Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) — w pełni określony, całkowicie satyryczny protokół do sterowania dzbankami do kawy przez sieć. Wśród jego osiągnięć znalazły się metoda BREW, nagłówek Accept-Additions (mleko, syrop, whisky) oraz jeden nieśmiertelny kod statusu:

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.” (tłumaczenie) „Każda próba zaparzenia kawy za pomocą czajnika powinna skutkować kodem błędu „418 I’m a teapot”. Zwracane ciało encji MOŻE być krótkie i krępe.”

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

Cały żart polega na tym, że poproszono czajnik o kawę. Nie może jej zrobić. To czajnik.

Szesnaście lat później RFC 7168 powrócił do tego pomysłu w kontekście urządzeń do parzenia herbaty — to kolejne RFC Informational i primaaprilisowy żart, tym razem rozróżniający urządzenie, któremu tymczasowo skończyła się kawa, od czajnika, któremu skończyła się ona na stałe. Żadne z tych RFC nie nadaje kodowi 418 zwykłej semantyki aplikacyjnej HTTP; oba opisują HTCPCP, satyryczny protokół, a nie podstawowy protokół HTTP.

Dlaczego nie stał się prawdziwym HTTP

Kod 418 nigdy nie otrzymał zwykłej semantyki HTTP — ale nie jest też „nieprzypisany”. RFC 9110, aktualna specyfikacja semantyki HTTP, formalnie rezerwuje ten kod (wskazując, jak często wdrażano go jako żart), a rejestr kodów statusu HTTP IANA wymienia 418 jako (Unused) i odwołuje się do RFC 9110 — kod nie jest dostępny do zwykłego ponownego użycia. 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) W 2017 roku grupa robocza HTTP IETF zaproponowała uporządkowanie tej sytuacji, aby można było przypisać kod do czegoś użytecznego. Internet odpowiedział kampanią „Save 418”, a rezerwacja pozostała w mocy — RFC 9110 pozostawia też możliwość ponownego przypisania kodu w przyszłości, jeśli okoliczności kiedykolwiek tego wymagają.

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

Nie powstrzymało to twórców przed implementacją: zarówno net/http w Go, jak i moduł http w Pythonie udostępniają nazwany stały kodu 418 (StatusTeapot, HTTPStatus.IM_A_TEAPOT), a inne frameworki i platformy poszły w ich ślady jako easter egg — między innymi własne google.com/teapot 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 Nazwana stała nie oznacza, że framework domyślnie emituje 418; oznacza, że kod jest rozpoznawany, a nie że ma przypisaną semantykę HTTP.

Co 418 oznacza dla SEO

Nic szczególnego — i właśnie to warto wiedzieć. Google nie interpretuje żartu; wskazany z datą wpis Google Search Central z lutego 2023 roku mówi, że wszystkie odpowiedzi 4xx poza 429 są traktowane tak samo w Search: wcześniej zindeksowane adresy URL są z czasem usuwane, a treść strony nie jest wykorzystywana. 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 To ogólna zasada dotycząca kodów 4xx, a nie reguła dotycząca czajnika — aktualna ogólna strona Google o statusach crawlera wyraźnie mówi, że egzotyczne statusy, takie jak 418, nie są objęte jej tabelą. 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 W praktyce, jeśli chodzi o indeksowanie, 418 zachowuje się jak każdy inny kod 4xx poza 429; nie ma szczególnej reguły rankingowej dla czajnika, harmonogramu deindeksacji ani gwarancji odzyskania poza tą ogólną zasadą.

Tu kończy się zabawa: niektóre konfiguracje WAF i ochrony przed botami używają 418 jako odpowiedzi „zablokowane żądanie”, ponieważ jest charakterystyczna i łatwa do znalezienia w logach. Jeśli taka reguła zadziała błędnie dla Googlebota, prawdziwe strony zaczną odpowiadać kodem 418 — i będą traktowane dokładnie tak jak strony, które nie istnieją.

Jeśli w logach serwera lub raportach crawlowania widzisz kody 418 przy ważnych adresach URL, sam kod statusu nie mówi, która warstwa go wygenerowała — może to zrobić kod aplikacji, domyślne ustawienie frameworka, reguła WAF lub ochrony przed botami, CDN albo serwer źródłowy, a odpowiedź może przechodzić przez kilka z tych warstw w drodze do klienta. Sprawdź konfigurację, nagłówki odpowiedzi i logi ścieżki żądania na każdej warstwie, aby znaleźć rzeczywiste źródło, a następnie napraw problem jak każdy inny niepożądany kod 4xx dla adresu URL przeznaczonego do indeksowania.

Użyj tej minimalnej sekwencji diagnostycznej:

  1. Zapisz surowy status i nagłówki odpowiedzi dotyczące danego adresu URL.
  2. Porównaj logi aplikacji, WAF, CDN i serwera źródłowego dla tej samej ścieżki żądania i czasu.
  3. Popraw warstwę emitującą 418, a następnie powtórz surowe żądanie i test crawlera.

Ten kod na tej stronie

Zgodnie z duchem RFC adres /coffee w tym serwisie zwraca prawdziwy 418, krótki i krępy, prosto z edge’a. Ta strona istnieje, aby ten easter egg miał kanoniczne wyjaśnienie — i aby klaster http-status-codes obejmował jedyny kod statusu, który naprawdę wywołuje uśmiech.

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.