RFC 2616 section 6.1.1指定“HTTP状态代码是可扩展的”:
HTTP状态代码是可扩展的。不需要HTTP应用程序 了解所有已注册状态代码的含义,尽管如此 理解显然是可取的。
一个常见的例子是Twitter的420 Enhance Your Calm。
我想在Rack应用程序中使用自定义代码进行响应。我能够以超级直接的方式使用自定义代码:
app = proc do |env|
['299', {}, ['Hey there custom status codes!']]
end
run app
服务器正确响应:
HTTP/1.1 299
Connection: Keep-Alive
...
我想要做的是定义自定义代码和关联的自定义消息。 我搜索了Rack文档并用Google搜索了一段时间,但没有得出任何结论性答案。
答案 0 :(得分:3)
(1)除非意图实际记录和注册,否则不要使用自定义状态代码。
(2)状态消息仅用于调试,您不能依赖它不被中介或软件库损坏。此外,它已经在HTTP / 2中消失了。
(3)如果您在回复中需要其他信息,请考虑将其放入邮件正文中。
(4)有关更多信息,请参阅RFC 7231,而不是RFC 2616。