我的 Web 应用程序向我的一个用户给出了一个错误:
错误请求
您的浏览器发送了服务器无法理解的请求。请求标头字段的大小超出了服务器限制。
看来我使用的 cookie 使得请求标头太长而无法处理。老问题是我没有收到相同的错误,其他用户也没有。这让我相信这是特定于此特定用户的设置的问题。
他们的 IT 人员说他们不使用代理服务器,但他们使用 WCCP(不管那是什么!)有人能解释为什么会发生这种情况吗?
答案1
浏览器可以发送对您的域名通用的 cookie(例如 example.com 以及 webapp.example.com 的 cookie)- 这些 cookie 可能是由域名以相同 TLD 结尾的不相关网站设置的。
HTTP 代理可以向响应和请求添加自己的 HTTP 标头。它们还可以更改现有的 HTTP 标头。
这两种情况都可能增加 HTTP 标头的大小。
找出正在发生的事情的最佳方法是记录 HTTP 请求。这可以通过在用户的 PC 或服务器上使用数据包嗅探器(如 Wireshark 或 tcpdump)来完成 - 我会根据另一端的 IP 地址进行过滤。
显然,如果您可以最小化 cookie 的数量和大小,这将有所帮助。理想情况下,cookie 只包含存储在服务器上的状态信息的参考 ID。