HTTP Status 418 - I’m a Teapot

Der HTTP-Status-Code 418 I’m a teapot stammt aus RFC 2324 (Hyper Text Coffee Pot Control Protocol) als April-Fools-Joke von 1998. Server signalisiert, dass er eine Teekanne ist und keinen Kaffee brühen kann. Einige APIs verwenden 418 als Easter Egg, Rate-Limit-Alternative oder humorvolle Error-Response.

Typ

Response-Status-Code

Syntax

Der Status Code wird zurückgegeben als humorvolle Reference oder Easter Egg.

http
HTTP/1.1 418 I'm a teapot

Direktiven

Der 418 I’m a teapot Status Code ist keine standardmäßige HTTP-Direktive.

HTCPCP Reference
Original-Intent war Control-Protocol für networked Coffee Pots. Teapot-Server lehnt Coffee-Brewing-Request ab mit 418. Heute als Internet-Meme und API-Easter-Egg bekannt.
Humorous Error Response
Einige APIs verwenden 418 für humorvolle Error-Messages bei Easter-Egg-Endpoints oder als unerwartete Response bei ungültigen Requests. Nicht als Production-Error-Code gedacht.
Rate Limiting Alternative
Manche Entwickler verwenden 418 statt 429 für Rate-Limiting oder als Signal für absichtlich absurde Requests. Nicht empfohlen für Production-APIs da semantisch inkorrekt.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für Status 418.

Beispiel 1 API Easter Egg

http
GET /api/coffee HTTP/1.1
Host: api.example.com

HTTP/1.1 418 I'm a teapot
Content-Type: application/json

{
  "error": "teapot",
  "message": "I'm a teapot, short and stout. I cannot brew coffee.",
  "hint": "Try /api/tea instead",
  "rfc": "https://tools.ietf.org/html/rfc2324"
}

Beispiel 2 Humorous Error Response

http
POST /api/brew HTTP/1.1
Host: htcpcp.example.com
Content-Type: application/coffee-pot-command

BREW coffee://pot-0

HTTP/1.1 418 I'm a teapot
Content-Type: text/plain

Error: This device is a teapot. Coffee brewing operations are not supported.
Please use a coffee pot for coffee brewing.

Beispiel 3 Easter Egg with Redirect Hint

http
GET /api/make-coffee HTTP/1.1
Host: api.example.com
Accept: application/json

HTTP/1.1 418 I'm a teapot
Content-Type: application/json
Link: </api/tea>; rel="alternate"

{
  "status": 418,
  "error": "im_a_teapot",
  "message": "The server refuses to brew coffee because it is, permanently, a teapot.",
  "alternatives": {
    "tea": "/api/tea",
    "water": "/api/water"
  }
}

HTCPCP Protocol Interaction

418 I’m a teapot Response bei Coffee-Request an Teapot-Server

Vorteile für die Systemarchitektur

  • Developer Experience: Easter Eggs wie 418 können Developer Experience verbessern und APIs menschlicher machen. Community-Building durch geteilte Internet-Culture-References.
  • Documentation Engagement: Unerwartete Response Codes erhöhen Chance dass Developers API-Dokumentation lesen. 418 kann Aufmerksamkeit auf spezielle Endpoints oder Features lenken.
  • Error Handling Testing: Teams können 418 für Testing ihrer Error-Handling-Logic verwenden. Stellt sicher dass Clients mit unerwarteten Status-Codes umgehen können.

Spezifikation

RFC 2324, Section 2.3.2 – Hyper Text Coffee Pot Control Protocol https://tools.ietf.org/html/rfc2324#section-2.3.2

Weitere Spezifikationen

HTTP Status 200 - OK, HTTP Status 400 - Bad Request