前些阵子测试程序,在使用urllib2的时候出现了IncompleteRead 这个exception,并非必定出现,十分诡异,网上搜了一下,发现这是一个已知的bug,网上提供了一个已知的解决方案,发现其中修改的http 协议的版本,究竟HTTP/1.0和HTTP/1.1有什么区别呢。
想深入了解的同学可以精读一下两篇RFC
HTTP/1.0
http://www.ietf.org/rfc/rfc1945.txt?number=1945
HTTP/1.1
http://www.ietf.org/rfc/rfc2616.txt?number=2616
当然,想快速了解区别也很简单,在1.1的RFC里搜索1.0,查看相关段落,就基本可以了解大概了。有前辈已经为我们做了 关于HTTP/1.0和HTTP/1.1的区别 的鉴别 ,由于我的程序里对于这些特性没有绝对的依赖,果断修改代码,测试通过,问题解决
import httplib
httplib.HTTPConnection._http_vsn = 10
httplib.HTTPConnection._http_vsn_str = 'HTTP/1.0'