基本authentication中的“领域”是什么?
我设置了一个PHP网站的基本身份validation,发现这个页面上的PHP手册显示设置。 标题中的“领域”是什么意思?
header('WWW-Authenticate: Basic realm="My Realm"');
这是页面被请求?
从RFC 1945(HTTP / 1.0)和RFC 2617(HTTP / 1.1引用的HTTPauthentication)
所有发出挑战的authenticationscheme都需要领域属性(不区分大小写)。 域值(区分大小写)与正在访问的服务器的规范根URL组合,定义了保护空间。 这些领域允许将服务器上受保护的资源划分为一组保护空间,每个保护空间都有自己的authenticationscheme和/或授权数据库。 领域值是一个string,通常由原始服务器分配,可能具有特定于authenticationscheme的附加语义。
简而言之,同一领域的页面应共享凭据。 如果您的凭证适用于“我的领域”领域的页面,则应该假定相同的用户名和密码组合应该适用于具有相同领域的其他页面。
领域可以被看作是使用凭证的区域(不是特定的页面,它可以是一组页面) 这也是浏览器popuplogin窗口时显示的string,例如
请input您的用户名和密码
<realm name>
:
当领域改变时,浏览器可能会显示另一个popup窗口,如果它没有该特定领域的凭证。
根据RFC 7235 , realm
参数被保留用于定义保护空间 (需要证书的页面或资源集合),并且authenticationscheme使用它来指示保护范围 。
有关更多详细信息,请参阅下面的报价(亮点不在RFC中):
2.2。 保护空间(领域)
“领域”authentication参数被保留供希望指示保护范围的authenticationscheme使用 。
保护空间由正在访问的服务器的规范根URI(有效请求URI的scheme和权威组件)以及存在的领域值定义。 这些领域允许将服务器上受保护的资源划分为一组保护空间,每个保护空间都有自己的authenticationscheme和/或授权数据库。 领域值是一个string,通常由原始服务器分配,可以具有特定于authenticationscheme的附加语义。 请注意,对于相同的身份validationscheme,不同领域的响应可能有多个挑战。 […]
注1: HTTPauthentication框架目前由RFC 7235定义, RFC 7235更新了RFC 2617 ,并使RFC 2616过时。
注2: 挑战中不再需要realm
参数。