2007年11月20日
前段时间调试http client的代码。发现原来的代码对http报头都没有好好的理解,弄得我到处找问题。后来发现问题主要处在报头的http版本号及响应报头中的transport-encoding: chunked两处。原来代码没有解析chunked编码,只是直接利用content-length来接收后面的实体数据。其实http服务对于那些不能确定其长度的页面通常会用chunked编码,因此client端需要对这个支持才能正确接收实体数据。另外一个问题是版本原因,当我的请求报文是用HTTP/1.0时,服务器响应报文头居然Connection: Close,原因可能是1.0版本http不支持chunked编码?还没弄清楚,也懒得去深究了