wiz*_*lus 37
我使用此代码。我对两个单独的HTTP服务器有nginx反向代理请求。一种处理对未经身份验证的用户的请求,第二种处理对经过身份验证的用户的请求。在这种特定情况下,问题在于第一台服务器是确定用户是否已通过身份验证的服务器。请不要问为什么。
因此,如果第一台服务器确定用户已通过身份验证,则它会做出响应418 I'm a teapot。然后,NGINX在内部将流量重新路由到第二台服务器。就浏览器而言,这只是一个请求。
这符合HTCPCP代码418的精神,因为如果您尝试用茶壶BREW,则适当的响应是“我不是那种可以处理该请求的东西,但可能还有其他东西。” 换句话说,“我是茶壶。找到咖啡壶。” (第二台服务器是咖啡机)。
最终,虽然418在RFC 7231中未明确定义,但仍被的保护层覆盖4xx (Client Error)。
6.响应状态码
- 4xx(客户端错误):请求包含错误的语法或无法满足
6.5。客户端错误4xx
- 状态代码的4xx(客户端错误)类表明客户端似乎已出错。除响应HEAD请求外,服务器应发送一个包含错误情况说明以及它是暂时还是永久的说明。这些状态代码适用于任何请求方法。用户代理应该向用户显示任何包含的表示。
Rem*_*eau 28
HTTP响应代码418最初在RFC 2324("超文本咖啡壶控制协议(HTCPCP/1.0)")和RFC 7168("用于茶叶外溢设备的超文本咖啡壶控制协议(HTCPCP-TEA)"协议中定义.
每维基百科:HTTP状态代码列表:#418
这段代码在1998年被定义为传统的IETF 愚人节笑话之一,在RFC 2324,超文本咖啡壶控制协议中,预计不会由实际的HTTP服务器实现.RFC指定此代码应由要求冲泡咖啡的茶壶返回.此HTTP状态在某些网站(包括Google.com)中用作复活节彩蛋.
Fia*_*eid 19
是的,我可以确认,我已经看到 HTTP 418 从真正的生产服务器返回。它确实存在。
Twi*_*ode 12
是的,这是一个“真实”的代码,因为它实际上是由 Internet 工程任务组作为官方 RFC 发布的,但该 RFC 于 4 月 1 日发布,意思是愚人节玩笑(以及超文本咖啡壶控制的其余部分)协议),而不是为了合法的实现。这就是为什么大多数网站都将它用作复活节彩蛋,但要避免使用它。正如此评论所指出的,通常有更合适的状态,如 400(错误请求)。综上所述,多亏了 IT 社区,它现在是一个保留代码,所以不要指望它很快就会出现在任何地方。
值得注意的是,根据 Larry Masinter(维基百科声称的那个 RFC 的作者)的说法,有问题的 HTTP 扩展实际上确实有一个(讽刺的)目的:“它确定了 HTTP 被不当扩展的许多方式。”
我认为将 418 视为保留代码更安全,该代码曾经具有半官方含义,但现在正式“未分配”。
我认为,历史上对这些代码的看法与现在有所不同。这在今天听起来既无意义又可笑。可能不是?
换句话说,我会避免使用这段代码。
我实际上用它。在我的项目中,我们有一个后端和一个前端,如果我正在开发一个新的 API,我会使用 418 来表示“不可能在前端发出的错误请求”。它们现在会在我们的错误报告工具中触发严重级别为“警告”的事件,而标准 400 仅在级别“信息”时触发。
我不想使用 500,因为它是调用者的错误,而且我不认为它是常规的 400,因为我们有很多情况,后端正在处理验证,而 400 不是错误。我们本来可以使用 501,但它位于 4xx 中,因为它是请求错误。
| 归档时间: |
|
| 查看次数: |
21043 次 |
| 最近记录: |