这是对话:
==> GET http://xy/z HTTP/1.1
<== HTTP/1.0 401 未经授权/代理连接:关闭
当绕过 Squid (squid/3.0.STABLE6) 时,我得到了 HTTP 基本身份验证提示,这是应该的。
是否有控制这种行为的特定设置,或者这实际上是一个错误?
这是对话:
==> GET http://xy/z HTTP/1.1
<== HTTP/1.0 401 未经授权/代理连接:关闭
当绕过 Squid (squid/3.0.STABLE6) 时,我得到了 HTTP 基本身份验证提示,这是应该的。
是否有控制这种行为的特定设置,或者这实际上是一个错误?
我想我找到了解决方案。Squid 并不是真正的 HTTP 1.1 兼容,因此会与诸如持久连接之类的高级内容相互干扰。
你可以在这里看到http://wiki.squid-cache.org/Http11Checklist在 8.1.2 下有一个未解决的问题被描述为“假设 http/1.1 服务器将保持持久连接,即使在服务器的错误响应之后”。
所以:服务器发送 401 => squid 关闭连接 => BASIC auth 不起作用
悲伤但真实。