您将返回哪个HTTP状态代码表示浏览器不受支持?我查看了4xx (client error) codes,但似乎都没有。
答案 0 :(得分:11)
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(禁止)状态代码表示服务器理解请求但拒绝授权。希望公开请求被禁止的服务器可以在响应有效负载中描述该原因(如果有的话)。
如果请求中提供了身份验证凭据,则服务器认为它们不足以授予访问权限。客户端不应该使用相同的凭据自动重复请求。客户端可以使用新的或不同的凭据重复请求。但是,可能会因与凭据无关的原因而禁止请求。
答案 1 :(得分:2)
400(错误/格式错误的请求)是唯一适合......有点
的答案 2 :(得分:0)
您应该使用406(NOT_ACCEPTABLE)
使用IE:此错误(HTTP 406 Not Acceptable)表示Internet Explorer能够从您访问过的网站接收信息,但信息是 不是Internet Explorer可以显示的格式。