Accept-Encoding: gzip,deflate 以压缩格式接收请求数据
2015-01-11 21:01
274 查看
转自:http://www.cnblogs.com/linyawen/archive/2011/01/17/1937204.html
IE和我们的代码使用的HTTP头里面都有这条内容,将这条内容删掉我得到了正确的结果。原因如下:
这条信息代表本地可以接收压缩格式的数据,而服务器在处理时就将大文件压缩再发回客户端,IE在接收完成后在本地对这个文件又进行了解压操作,所以文件内容是正确的。而在我们的代码里是将这些内容直接存入文件,不存在解压缩的过程,所以Size变小,内容也不一样。
细心的人可以发现在,IE在Down某一个比较大一点的东西时,Down的过程中显示的大小,比Down下来实际大小要小,这就是因为在接收的过程中接收的是压缩文件,而存到本地后的文件当然要大一些了哈~~
前面一片Blog内容是说用程序模仿浏览器来请求页面。
之前在调试的时候,发现请求正常,但是请求结果是乱码。
尝试了好几种编码的方式,都解决不了。
问题出在我那段Cookie的参数上面了。一个个试,终于发现问题出现在这行上面:
getMethod.setRequestHeader("Accept-Encoding","gzip, deflate");
去掉这行,一切就正常了!
Google了一下,发现问题出在gzip上面。
下面是一个普通的HTTP请求信息:
为什么用浏览器可以正常浏览,而我用程序模仿就不行呢?
答案在这里:
引用
gzip是一种数据格式
默认且目前仅使用deflate算法压缩data部分,此法用于压缩传输
如果服务器支持Gzip,那么客户端必须要IE5.5以上!
数据返回给客户端时候已经被gzip压缩了,只是IE可以自动解压,而你的程序里面没有自动解压而已……
同样道理,你可以弄个解压算法来把乱码的数据解压,即可得到正常的HTML返回结果。
如果是我们程序的话就要把这个去掉,否则没有响应的解压代码,则取不到正常数据。
IE和我们的代码使用的HTTP头里面都有这条内容,将这条内容删掉我得到了正确的结果。原因如下:
这条信息代表本地可以接收压缩格式的数据,而服务器在处理时就将大文件压缩再发回客户端,IE在接收完成后在本地对这个文件又进行了解压操作,所以文件内容是正确的。而在我们的代码里是将这些内容直接存入文件,不存在解压缩的过程,所以Size变小,内容也不一样。
细心的人可以发现在,IE在Down某一个比较大一点的东西时,Down的过程中显示的大小,比Down下来实际大小要小,这就是因为在接收的过程中接收的是压缩文件,而存到本地后的文件当然要大一些了哈~~
Accept-Encoding: gzip,deflate
文章分类:Web前端前面一片Blog内容是说用程序模仿浏览器来请求页面。
之前在调试的时候,发现请求正常,但是请求结果是乱码。
尝试了好几种编码的方式,都解决不了。
问题出在我那段Cookie的参数上面了。一个个试,终于发现问题出现在这行上面:
getMethod.setRequestHeader("Accept-Encoding","gzip, deflate");
getMethod.setRequestHeader("Accept-Encoding","gzip, deflate");
去掉这行,一切就正常了!
Google了一下,发现问题出在gzip上面。
下面是一个普通的HTTP请求信息:
为什么用浏览器可以正常浏览,而我用程序模仿就不行呢?
答案在这里:
引用
gzip是一种数据格式
默认且目前仅使用deflate算法压缩data部分,此法用于压缩传输
如果服务器支持Gzip,那么客户端必须要IE5.5以上!
数据返回给客户端时候已经被gzip压缩了,只是IE可以自动解压,而你的程序里面没有自动解压而已……
同样道理,你可以弄个解压算法来把乱码的数据解压,即可得到正常的HTML返回结果。
如果是我们程序的话就要把这个去掉,否则没有响应的解压代码,则取不到正常数据。
相关文章推荐
- C# 利用HttpWebRequest模拟登陆获取数据设置Accept-Encoding为gzip,deflate后返回的网页是乱码处理
- python---get/post请求下载指定URL返回的网页内容,出现gzip乱码处理。设置Accept-Encoding为gzip,deflate,返回的网页是乱码
- [置顶] Android Accept-Encoding为gzip,deflate Http请求返回的结果为乱码
- 将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
- “Accept-Encoding: gzip, deflate”问题
- Accept-Encoding: gzip, deflate ; Transfer-Encoding: chunked ; Content-Encoding: gzip
- httpclient访问网站时设置Accept-Encoding为gzip,deflate返回的结果为乱码的问题
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- 将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
- 做好所有请求数据的格式模板 做好接收所有可能的传过来的数据
- GZIP压缩原理分析(18)——第五章 Deflate算法详解(五09) 算法分析(03) 格式说明(02) 存储类型
- web服务交互中HTTP数据内容GZIP,ZLIB格式压缩与解压缩封装(共享)
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- php学习笔记(三十)ajax请求和接收参数的实现方式(包括json数据格式的简单处理)
- Accept-Encoding: gzip,deflate
- 使用zlib实现gzip格式数据的压缩和解压
- httpclient访问网站时设置Accept-Encoding为gzip,deflate返回的结果为乱码的问题
- Accept-Encoding gzip, deflate
- GZIP压缩原理分析(20)——第五章 Deflate算法详解(五11) 算法分析(05) 格式说明(04) 动态哈夫曼编码