Proxy-Authenticate 头

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

HTTP Proxy-Authenticate 响应头定义了获取代理服务器背后资源所需的认证方法(或质询)。它在 407 Proxy Authentication Required 响应中发送,以便客户端可以向需要认证的代理表明身份。

头类型 响应头
禁止请求头

语法

http
Proxy-Authenticate: <challenge>, …

该值是一个逗号分隔的质询列表,其中 <challenge> 由一个 <auth-scheme> 组成,后跟一个可选的 <token68> 或一个逗号分隔的 <auth-params> 列表。

challenge = <auth-scheme> <auth-param>, …, <auth-paramN>
challenge = <auth-scheme> <token68>

例如

http
Proxy-Authenticate: <auth-scheme>
Proxy-Authenticate: <auth-scheme> token68
Proxy-Authenticate: <auth-scheme> auth-param1=param-token1
Proxy-Authenticate: <auth-scheme> auth-param1=param-token1, …, auth-paramN=param-tokenN

token68 或认证参数的存在取决于所选的 <auth-scheme>。例如,基本认证需要一个 <realm>,并允许可选使用 charset 键,但不支持 token68

http
Proxy-Authenticate: Basic realm="Dev", charset="UTF-8"

指令

<auth-scheme>

一个不区分大小写的令牌,指示所使用的认证方案。一些常见的类型是 BasicDigestNegotiateAWS4-HMAC-SHA256。IANA 维护着一个认证方案列表,但主机服务也提供其他方案。

<auth-param> 可选

一个认证参数,其格式取决于 <auth-scheme><realm> 在下面描述,因为它在许多认证方案中是一个常见的认证参数。

<realm> 可选

字符串 realm 后跟 = 和一个用引号括起来的字符串,描述一个受保护区域,例如 realm="staging environment"。领域允许服务器划分其保护的区域(如果方案支持此划分)。有些客户端会将此值显示给用户,以告知他们需要哪些特定的凭据——尽管大多数浏览器已停止这样做以应对网络钓鱼。此值唯一可靠支持的字符集是 us-ascii。如果未指定领域,客户端通常会显示格式化的主机名。

<token68> 可选

一个对某些方案可能很有用的令牌。该令牌允许 66 个未保留的 URI 字符以及其他一些字符。它可以包含 base64、base64url、base32 或 base16(十六进制)编码,带或不带填充,但排除空白字符。支持 token68 作为 auth-param 列表的替代方案,以与旧式认证方案保持一致。

通常,您需要查看每个 <auth-scheme> 所需认证参数的相关规范。

注意:有关认证参数的更多详细信息,请参阅WWW-Authenticate

示例

Proxy-Authenticate 基本认证

以下响应表明需要具有领域的“基本认证”方案。

http
Proxy-Authenticate: Basic realm="Staging server"

规范

规范
HTTP 语义
# field.proxy-authenticate

浏览器兼容性

另见