2010-10-31 50 views
3

当我使用telnet查看我的网页时,我在输出中看到这些奇怪的数字/字母。这不会发生在浏览器中,它们绝对不在我的源代码中。我查了其他网站,他们没有。任何想法为什么?他们是垃圾吗?我怎样才能摆脱它们?HTTP输出中的垃圾字节?

的telnet www.mysite.com 80
GET/HTTP/1.1
主机www.mysite.com

网页的某些部分是确定,但其他人看起来像这样(我强调它们以粗体显示):


<ul>
<li><a href="/path/to/file
1B
">Link name</a></li>
<li><a href="/path-to-another-file
2A

编辑:详细信息请求
的Apache 2和CGI(C)
动态生成

+0

什么HTTP服务器软件在您的Web服务器上运行?你的页面是静态的还是动态生成的? – 2010-10-31 20:53:23

+0

也许这个问题应该去ServerFault? – 2010-10-31 20:54:16

回答

5

服务器使用的是"chunked" encoding,它允许Web服务器在请求动态生成的页面(例如CGI,PHP或ASP)后保持HTTP连接处于打开状态以便重用,而不会在服务器端缓存整个页面传输。它通过发送网页的小部分(“块”),每个小部分具有指定的以字节为单位的长度(十六进制数字分散在整个页面中)。这允许客户端知道服务器何时完成发送数据。

根据RFC 2616(HTTP规范),所有HTTP/1.1客户端都是required to be able to decode chunked encoding。这意味着,如果你不想接受分块响应,您需要使用HTTP/1.0,旧版本的规范的版本标识请求页面:

telnet www.mysite.com 80 
GET/HTTP/1.0 
Host: www.mysite.com 

的服务器将关闭连接完成后,而不是使用分块编码并保持连接处于打开状态。