418 Tôi là ấm trà

Câu chuyện HTTP 418, mã trạng thái HTCPCP Cá tháng Tư trở thành easter egg được yêu thích trên web, cách Google xử lý 418 và rủi ro khi WAF trả mã này trên trang thật.

Xuất bản lần đầu: 4 thg 7, 2026 · Cập nhật lần cuối: 22 thg 8, 2026 · Beginner
Ngôn ngữ
1 tín hiệu bằng chứng trên trang này

HTTP 418 I'm a teapot là mã trạng thái hài hước từ RFC HTCPCP Cá tháng Tư năm 1998: ấm trà bị yêu cầu pha cà phê phải từ chối. Mã chưa bao giờ có ngữ nghĩa ứng dụng HTTP thông thường, nhưng không phải chưa được gán; RFC 9110 chính thức dành riêng mã và IANA liệt kê là (Unused). Hướng dẫn Google năm 2023 coi 418 như mọi 4xx ngoài 429 trong Search, còn trang trạng thái crawler chung hiện hành không bao phủ mã hiếm này. Rủi ro thực tế xuất hiện khi WAF hoặc tầng bảo vệ bot dùng 418 để chặn yêu cầu và vô tình phục vụ mã cho Googlebot; hãy audit như mọi 4xx khác. URL /coffee của site này trả 418 thật.

Tóm tắt — 418 I'm a teapot là mã trạng thái hài hước được yêu thích nhất trên web. Mã xuất phát từ RFC 2324, một RFC Cá tháng Tư về bình pha cà phê, và chưa bao giờ có ngữ nghĩa ứng dụng HTTP thông thường; nhưng theo RFC 9110 và sổ đăng ký IANA, mã được dành riêng chứ không phải chưa được gán. Hướng dẫn Google năm 2023 coi mã này như mọi 4xx khác trừ 429: URL không được lập chỉ mục. Hãy thử trên site này: /coffee trả 418 thật; bạn có thể kiểm tra trong thẻ 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

418 bắt nguồn từ đâu

Ngày 1 tháng 4 năm 1998, IETF công bố RFC 2324: Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) — giao thức được đặc tả đầy đủ nhưng hoàn toàn châm biếm để điều khiển bình pha cà phê qua web. Các đóng góp gồm phương thức BREW, header Accept-Additions (sữa, siro, whisky) và một mã trạng thái bất hủ:

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.” (bản dịch) «Mọi nỗ lực pha cà phê bằng ấm trà phải dẫn đến mã lỗi ‘418 I’m a teapot’. Nội dung thực thể trả về CÓ THỂ thấp và tròn.»

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

Toàn bộ trò đùa chỉ vậy: bạn yêu cầu một ấm trà pha cà phê. Nó không làm được vì nó là ấm trà.

Mười sáu năm sau, RFC 7168 trở lại ý tưởng này cho thiết bị pha trà — một RFC Thông tin khác vào ngày Cá tháng Tư, lần này phân biệt thiết bị tạm hết cà phê với thiết bị vốn là ấm trà vĩnh viễn. Không RFC nào trao cho 418 ngữ nghĩa ứng dụng HTTP thông thường; cả hai mô tả HTCPCP, một giao thức châm biếm, không phải HTTP lõi.

Vì sao mã này chưa bao giờ trở thành HTTP thật

418 chưa bao giờ được gán ngữ nghĩa HTTP thông thường, nhưng cũng không phải “chưa được gán”. RFC 9110, đặc tả Ngữ nghĩa HTTP hiện hành, chính thức dành riêng mã này vì nó thường được triển khai như trò đùa; Sổ đăng ký mã trạng thái HTTP của IANA liệt kê 418 là (Unused) và tham chiếu RFC 9110, nghĩa là không sẵn sàng để tái sử dụng thông thường. 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) Năm 2017, nhóm công tác HTTP của IETF đề xuất dọn mã để có thể gán lại cho mục đích hữu ích. Internet đáp lại bằng chiến dịch “Save 418”, nên trạng thái dành riêng được giữ; RFC 9110 vẫn để ngỏ khả năng gán lại nếu hoàn cảnh tương lai thật sự yêu cầu. 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

Trạng thái dành riêng không ngăn người triển khai: net/http của Go và module http của Python đều cung cấp hằng số 418 có tên (StatusTeapot, HTTPStatus.IM_A_TEAPOT), còn framework và nền tảng khác làm theo như một easter egg — trong đó có google.com/teapot của 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 Hằng số có tên không có nghĩa framework mặc định phát 418; nó chỉ nghĩa mã được nhận biết, không phải mang ngữ nghĩa HTTP đã được gán.

418 có ý nghĩa gì với SEO

Không có gì đặc biệt — và đó là điều cần biết. Google không diễn giải trò đùa; một bài Search Central tháng 2 năm 2023 có tên cụ thể nói mọi phản hồi 4xx trừ 429 được xử lý giống nhau trong Search: URL từng được lập chỉ mục sẽ dần bị loại và nội dung trang không được dùng. 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 Đây là phát biểu chung về 4xx, không phải rule riêng cho ấm trà; trang trạng thái crawler chung hiện hành của Google nói rõ bảng không bao phủ trạng thái hiếm như 418. 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 Trong thực tế lập chỉ mục, 418 hoạt động như 4xx khác ngoài 429; không có rule xếp hạng, lịch deindex hay bảo đảm phục hồi riêng cho ấm trà ngoài phát biểu chung đó.

Điểm trò đùa hết vui là một số cấu hình WAF và bảo vệ bot dùng 418 làm phản hồi “yêu cầu bị chặn”, vì mã nổi bật và dễ tìm trong log. Nếu rule như vậy kích hoạt nhầm với Googlebot, trang thật bắt đầu trả 418 và sẽ bị xử lý hệt như trang không tồn tại.

Nếu thấy 418 trong log máy chủ hoặc báo cáo crawl trên URL quan trọng, riêng mã trạng thái không cho biết tầng nào tạo ra nó. Mã ứng dụng, mặc định framework, rule WAF/bảo vệ bot, CDN hay máy chủ gốc đều có thể phát mã, và phản hồi có thể đi qua nhiều tầng trước khi đến client. Kiểm tra cấu hình, header phản hồi và log đường dẫn yêu cầu ở từng tầng để tìm nguồn thật, rồi sửa như mọi 4xx ngoài ý muốn trên URL cần được lập chỉ mục.

Dùng chuỗi chẩn đoán tối thiểu sau:

  1. Ghi lại trạng thái thô và header phản hồi của URL bị ảnh hưởng.
  2. So sánh log ứng dụng, WAF, CDN và origin cho cùng đường dẫn cùng thời điểm yêu cầu.
  3. Sửa tầng đang phát 418, rồi lặp lại yêu cầu thô và kiểm tra crawler.

Mã 418 trên site này

Đúng tinh thần RFC, /coffee trên site này trả 418 thật, thấp và tròn, trực tiếp từ edge. Trang này tồn tại để easter egg đó có lời giải thích canonical và để cụm mã trạng thái HTTP bao phủ mã duy nhất thật sự khiến mọi người mỉm cười.

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.