您会返回哪个 HTTP 状态代码来指示浏览器不受支持?我查看了4xx(客户端错误)代码,但似乎没有一个适合。
2 回答
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://www.rfc-editor.org/rfc/rfc7231#section-6.5.3(我加粗):
403(Forbidden)状态码表示服务器理解请求但拒绝授权。希望公开请求被禁止的原因的服务器可以在响应负载(如果有)中描述该原因。
如果请求中提供了身份验证凭据,则服务器认为它们不足以授予访问权限。客户端不应使用相同的凭据自动重复请求。客户端可以使用新的或不同的凭据重复请求。但是,由于与凭据无关的原因,可能会禁止请求。
400(错误/格式错误的请求)是唯一适合...有点