Python套接字垃圾响应

时间:2014-09-24 11:07:06

标签: python-2.7 encoding http-headers

问题:当我发送网页的GET请求时,输出已损坏。

GET http://www.vox.com/a/maps-explain-the-middle-east HTTP/1.1\r\nHost: www.vox.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\nConnection: keep-alive\r\n\r\n

输出是包含

等数据的错误文件
���v�������/�:@�J�|d[��Xt��tF(�p3E%������?�Λ�'��\k��E�7�q����"�®}_sϵ�܏ӛv'�,,ƣ'�=���� K{O>K����l�&�A:ϳ���rѯ��U�4X,f��������_k?=�}9����p��%��d�M���g�Y�([��q��\K�B&)��fdz

但是当我发送

GET http://www.vox.com/a/maps-explain-the-middle-east HTTP/1.1\r\nHost: www.vox.com\r\n\r\n

我收到了网页。我实际上只添加了一些从Firefox获取的额外标头。 两种情况下的响应头都是

HTTP / 1.0 200 OK

服务器:nginx

Content-Type:text / html;字符集= UTF-8

状态:200 OK

X-UA兼容:IE = Edge,chrome = 1

Cache-Control:max-age = 0,private,must-revalidate

X-Request-Id:f5e482e1dd57f613df9c1b416a65b9b2

X-Runtime:0.039694

P3P:CP =" CAO DSP COR CURA ADMa DEVa PSAa PSDa CONI OUR IND PHY ONL UNI COM NAV INT CNT STA"

内容编码:gzip

Accept-Ranges:bytes

日期:2014年9月24日星期三,格林尼治标准时间10:39:19

年龄:0

X-Served-By:cache-iad2129-IAD,cache-lax1430-LAX

X-Cache:MISS,MISS

X-Cache-Hits:0,0

X-Timer:S1411555159.330146,VS0,VE108

变化:接受编码

X-Cache:来自localhost的MISS

X-Cache-Lookup:来自localhost的MISS:3128

Via:1.1 varnish-v4,1.1 varnish,1.1 varnish,1.0 localhost(squid / 3.1.19)

连接:关闭

我不明白为什么会发生这种压缩。

编辑:但如果我使用压缩,我将如何恢复原始数据???

1 个答案:

答案 0 :(得分:1)

是的,我认为这可能是由于使用了编码方案。

因为如果我不使用'接受编码:gzip,deflate'我得到了正确的网页。

但我不知道如何从此编码恢复网页