收到 Proxy-Authorization 并不表示代理已接受该账号。当凭据缺失、无效或不完整时,再发一个 407 Proxy Authentication Required 可能是恰当的响应。

该响应必须包含 Proxy-Authenticate 质询。Basic 的示例如下:

HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: Basic realm="Office proxy"
Content-Length: 0

随后客户端可以获取另一份凭据,或继续所选方案的交换。有些认证机制需要多轮往返,因此第二次 407 本身并不能证明密码输入错误。

RFC 9110 还区分了有效但权限不足的凭据:对于在该身份下拒绝执行的请求,服务器应使用 403。代理实现应当有意识地做出这一访问决定,而不是仅因为出现了授权头就选择一个新状态。

在客户端一侧,重复的相同失败需要一个停止点。在诊断信息中保留响应状态与质询,并停止盲目重发同一份被拒绝的凭据。

相关文章