http输出中的垃圾字节?

时间:2010-10-31 20:44:32

标签: html http browser telnet

当我使用telnet查看我的网页时,我在输出中得到这些奇怪的数字/字母。这不会发生在浏览器中,它们肯定不在我的源代码中。我检查了其他网站,但他们没有。有什么想法吗?他们是垃圾吗?我该怎样摆脱它们?

  

telnet www.mysite.com 80
    GET / HTTP / 1.1
  主持www.mysite.com

网页的某些部分可以,但其他部分看起来像这样(我用粗体突出显示):

  

51
  <ul>
  <li><a href="/path/to/file
   1b的
  ">Link name</a></li>
  <li><a href="/path-to-another-file
   2a

编辑:请求更多信息
Apache 2和CGI(C)
动态生成

2 个答案:

答案 0 :(得分: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 

服务器将在完成响应后关闭连接,而不是使用分块编码并保持连接打开。

答案 1 :(得分:2)

这是HTTP Chunked transfer encoding,如果您不想这样做,请改为执行HTTP 1.0请求。