不支持的浏览器的HTTP状态代码

Yar*_*rin 6 http http-status-codes web

您将返回哪个HTTP状态代码表示浏览器不受支持?我查看了4xx(客户端错误)代码,但似乎都没有.

And*_*e D 12

403 Forbidden 是最合适的.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4说:

服务器理解请求,但拒绝履行请求.

400 Bad Request 不是很合适,因为它暗示请求本身是畸形的,这可能不是真的.

但是,如果您正在构建网站,以这种方式禁止特定的Web浏览器并不是一个好习惯.尝试构建一个符合您的受众使用的所有浏览器的网站.如果您正在构建HTTP API,那么这是一个不同的故事,您应该使用安全机制来授权客户端.如果这就是您所需要的,请考虑OAuth.

编辑 2015年7月:较新的RFC 7231详细阐述了它的解释403,更清楚的是即使它不是凭证授权问题也可以使用.

https://tools.ietf.org/html/rfc7231#section-6.5.3(我加粗):

403(禁止)状态代码表示服务器理解请求但拒绝授权.希望公开请求被禁止的服务器可以在响应有效负载中描述该原因(如果有的话).

如果请求中提供了身份验证凭据,则服务器认为它们不足以授予访问权限.客户端不应该使用相同的凭据自动重复请求.客户端可以使用新的或不同的凭据重复请求.但是,出于与凭证无关的原因,可能会禁止请求.