HTTP/1.1规范(RFC2616)定义了许多状态码,可以由HTTP服务器返回以表示某些情况。其中一些代码可以被Web应用程序和框架利用。在经典和异步(XHR)响应中,哪些代码在实践中最有用,在什么情况下使用每个代码?应避免使用哪些代码,例如,应用程序是否应处理5xx代码范围?在返回REST Web服务的HTTP代码时,您的约定是什么?除了302之外,您是否曾经使用过其他重定向?
grep 'Status:'
找到的):
我意识到我可以简单地让服务器对所有事情都发送“200”,但当用户看到(或导致)错误并且没有告诉您时,他们会避免很多痛苦。我已经有了显示访问被拒绝消息等功能,因此添加这些功能并不需要太多工作。
418: 我是茶壶
来自http://www.ietf.org/rfc/rfc2324.txt 超文本咖啡壶控制协议 (HTCPCP/1.0)
当有人试图获取只能通过POST方式访问的URL时,我倾向于使用405 Method Not Allowed状态码。还有其他人也是这样做吗?
我基本上根据需要使用它们。规范本身定义了每个代码及其应使用的情况。
在构建RESTful Web应用程序时,我不建议挑选状态码,并将自己限制在部分完整范围内。除非为特定的HTTP客户端构建Web应用程序 - 在这种情况下,您实际上并不是在构建Web应用程序,而是在为该特定客户端构建应用程序。
在我们公司中,我们有一些Flex客户端。它们无法正确处理200以外的状态码,因此我们让它们发送一个特殊参数来告诉我们的服务器始终发送200,即使这不是正确的响应。
对于用户数据错误(例如表单提交),我使用409而不是400。
关于409的规范提到了版本冲突,但它还提到修复问题的信息应该在响应中发送。这非常适合处理格式错误的电子邮件或密码错误的消息。
400只处理语法问题,对我来说,这听起来像是请求根本就没有意义,而不是未通过某些正则表达式。
我曾经做过关于数字500的噩梦。