Squid Web Cache Wiki

Squid Web Cache 文档

🔗 URL 过大

🔗 摘要

HTTP 客户端发送的 HTTP 请求的 URL 长度超过了 Squid 的处理限制。检测到的长度将显示在消息之后。

🔗 症状

🔗 解释

此消息是信息性的,它的出现是因为请求行(request-lines)的限制已提高到 64KB。以前,它可能会显示为无效请求或其他类似错误。

请注意,RFC 7230 规定 HTTP 请求行总长度只需要支持 8000 字节,任何更大的长度都不太可能被 HTTP 软件接受。Squid 的限制已经超过了这个值。因此,如果客户端无法处理这些超长 URL,则这是客户端的 bug。

🔗 规避方法

应用的限制是 MAX_URL 宏 - 存储 URL 部分的堆栈变量的尺寸限制。Squid 有时会在堆栈内存中分配高达 5*MAX_URL 的空间,或者将 URL 复制到未按 MAX_URL 调整大小的缓冲区中,因此不建议增加此宏。

目前正在进行将 Squid 改为更灵活的动态缓冲区的相关工作。随着更新的进展,相关的代码将自然地迁移到 64KB 或 2MB 的限制,具体取决于细节。bug 4422 用于跟踪工作进展。欢迎订阅以获取通知,但除非您打算协助进行更改,否则请不要在那里发表评论。我们已经知道 **每个人** 都受到了此问题的影响。

类别: 知识库

导航: 站点搜索站点页面类别🔼 向上