【发布时间】:2014-07-02 17:29:25
【问题描述】:
我一直在编写一些 Perl 实用程序来与我公司的一些内部网站进行交互。不久前,我在访问某些页面时开始遇到间歇性错误:“HTTP 响应中的块大小错误”。我将此消息跟踪到模块Net::HTTP::Methods。我花了一点时间试图诊断错误的最终根源,但没有成功。然后在某个地方我发现了一个建议,将我的 HTTP 请求的协议设置为“HTTP/1.0”可能会有所帮助,令我惊讶的是,确实如此。一旦我为所有给我带来问题的页面请求执行此操作,一切顺利。
最近,我一直在编写与本地 Bugzilla 服务器交互的代码。有一个间歇性错误,HTTP 响应在页面中间的某处被截断。起初我很困惑,但后来我想起了我上面描述的问题并尝试将协议设置为 HTTP/1.0。再次,它奏效了。我尝试访问 Bugzilla 的“输入 CR”页面一百次。使用默认的 HTTP/1.1,我的响应被截断了六次;使用 HTTP/1.0,零次。
有人知道这里会发生什么吗?我从来没有在我的浏览器中看到页面截断,这表明问题出在 LWP 库上,但很难相信这样一个古老且广泛使用的库会有如此明显的错误。我使用最新的 Perl 模块运行 Ubuntu,Bugzilla 响应将服务器识别为 Apache,如果这有帮助的话。
【问题讨论】: