HTTP 418 I'm a teapot 客户端错误响应代码表示服务器拒绝冲泡咖啡,因为它是个茶壶。

该状态来自超文本咖啡壶控制协议,属于保留协议,并无实际应用。

状态

418 I'm a teapot

附:超文本咖啡壶控制协议简介

  1. 简介

这是一个真实存在的玩笑性质的通信协议,定义了一个基于 HTTP 协议的、对咖啡壶进行控制、监测与诊断的标准,其被定义在 RFC2324 :Hyper Text Coffee Pot Control Protocol (HTCPCP)。

这个协议诞生于 1998 年的愚人节,由 Larry Masinter 提出。这个人是一位因特网先驱,毕业于斯坦福大学,主要就职于 AT&T 和 Adobe,参与制定了不少 RFC 标准。这个协议的开头解释了它的目的:

There is coffee all over the world. Increasingly, in a world in which computing is ubiquitous, the computists want to make coffee. Coffee brewing is an art, but the distributed intelligence of the web-connected world transcends art. Thus, there is a strong, dark, rich requirement for a protocol designed espressoly for the brewing of coffee. Coffee is brewed using coffee pots. Networked coffee pots require a control protocol if they are to be controlled.
咖啡已经遍布世界各地。在一个充满计算机的世界里,计算机使用者也想要煮咖啡。煮咖啡是一门艺术,而这样一个由网络连接的世界所构成的分布式智能已经超越了艺术。 因此,我们强烈、暗黑、充分地需求一个浓缩的为煮咖啡而设计的协议。咖啡是用咖啡壶煮出来的,要控制互联网咖啡壶,就需要一个控制协议。

2. 协议内容

在 HTCPCP 协议中,客户端如果想要冲泡咖啡需要使用 BREW 或 POST 请求,且 Content-Type 应被设置为 “application/coffee-pot-command”。HTTP 头中可以携带各种额外选项,包括牛奶、糖浆甚至酒精的类型等等。PROPFIND 请求可以获取咖啡的 metadata。WHEN 请求用于控制什么时候停止把牛奶倒入咖啡。最后通过 GET 请求可以“获取”煮好的咖啡。

HTTP 服务端也有对应的返回状态码,一个是 406 Not Acceptable 表示客户提出了不能完成的请求;另一个非常有趣的是 418 I’m a teapot,即任何企图用一个茶壶进行煮咖啡的客户端行为会收到这个 418 错误码。由于这个 418 状态码非常幽默有趣,它真的被各大平台所囊括,作为一个有趣的小彩蛋。一些服务会用 418 来告知用户错误访问了一些服务。