什么是511状态码?

客户端需要进行身份验证才能访问网络。

响应表示应该包含到允许用户提交凭证的资源的链接(例如,使用HTML表单)。

请注意,511响应不应该包含挑战或登录界面本身,因为浏览器会将登录界面显示为与最初请求的URL相关联,这可能会引起混淆。

511状态不应该由源服务器生成;它用于拦截作为控制对网络访问的手段而插入的代理。

带有511状态码的响应绝对不能存储在缓存中。

511状态码旨在减轻软件(特别是非浏览器代理)的“专属门户”所引起的问题,这些门户期望从发出请求的服务器(而不是中间的网络基础设施)得到响应。它的目的不是鼓励部署专属门户,而是限制它们造成的损害。

网络运营商希望在授予访问权限之前要求一些身份验证、接受条款或其他用户交互,通常通过使用媒体访问控制(MAC)地址识别尚未这样做的客户端(“未知客户端”)来实现。

未知客户端会阻止所有流量,除了TCP端口80上的流量,该端口被发送到专门用于“登录”未知客户端的HTTP服务器(“登录服务器”),当然还有发送到登录服务器本身的流量。

例如,用户代理可能连接到网络,并在TCP端口80上发出以下HTTP请求:

GET /index.htm HTTP/1.1主机:www.example.com

在收到这样的请求时,登录服务器将生成一个511响应:

HTTP/1.1 511 Network Authentication Required content - type: text/html   Network Authentication Required
  

您需要通过本地网络验证才能获得访问权限。

在这里,511状态代码确保非浏览器客户端不会将响应解释为来自原始服务器,并且META HTML元素将用户代理重定向到登录服务器。


511代码引用

Symfony HTTP状态常量响应:HTTP_NETWORK_AUTHENTICATION_REQUIRED

额外的资源


返回HTTP状态码列表

最重要的