http响应头上为什么没有Content-Encoding
2015-07-30 08:22
681 查看
http://zhidao.baidu.com/link?url=p1XeaVEL-J0FqQXfgkwj2hgBOBC8yvVDetzbXQzZiDEeEfLpm0lRI6DMPrtZTvEuCLx4BC1N2RfVxlvvlcOoKxUBBjScv9g9OJ1TpwjzsWW
http响应头上为什么没有Content-Encoding
2015-01-04 15:41暗夜幽冥嶀t分类:欧美流行乐|浏览 127 次
互联网
分享到:
2015-01-04 15:51
#群雄争霸,团队需要你!#
提问者采纳
此前遇到这个问题,HTTP头部没有Content-Length字段。一位朋友通过修改服务器的配置解决。 他使用的方法是: this.getResponse().setBufferSize(402800); 然而,当他们安装新的服务器时,又使用了默认的配置,程序再次出现故障。为了解决这个问题,最好的方法自然是在客户端处理。于是:大致总结如下: 如果没有Content-Length,而改用Tansfer-Encoding:chunke,则: 以"\r\n\r\n“作为HTTP头部的结束符号。其后,追加的是16进制的数据正文长度。接着是"\r\n“。接着是数据正文,再接着是"\r\n0\r\n\r\n"。即: "\r\n\r\n“+十六进制的长度(字符串)+"\r\n“+数据正文+"\r\n0\r\n\r\n" 但这不是绝对的。比如,我的HTML内容是"a 0",那么,没有指定长度时,客户端应该收到"\r\n\r\n3\r\na 0\r\n0\r\n\r\n",而事实上结果可能不是这样,而是"\r\n\r\n3\r\na 0\r\n\r\n"。这点就比较恼人了。——我的处理方法是:假设收到的数据经过计算,发现内容长度(例如3个字节)都已传送完毕,就认为接收完毕。至于后面是"\r\n0\r\n\r\n"还是"\r\n\r\n",都不是我们所关心的问题。 然而,这也不是绝对的!因为上面的数据是未经过压缩的!有些HTTP服务器支持数据压缩,比如“Content-Encoding: gzip”,这时候,收到的数据,首先是根据上面的方法取得真实长度和数据内容,然后解压缩。
相关文章推荐
- 黑马程序员------TCP协议-客户端&服务端建立通信
- python网络编程
- python网络编程
- 《一起学》系列8:网络编程
- 系列8:网络编程
- windows 8下IIS8 HTTP 错误 500.19 - Internal Server Error
- 简易“线程池”在Python网络爬虫中的应用
- 基于Google Volley的Android Http连接库
- 基于Google Volley的Android Http连接库
- NAT网络穿透
- cocos2dx 网络连接
- OKHttp源码解析(二)
- Android核心基础-7.Android 网络通信-2.使用开源项目AsyncHttpClient
- HTTP协议
- socket连接和HTTP连接的区别
- WEB服务器、应用程序服务器、HTTP服务器有何区别
- $GLOBALS ["HTTP_RAW_POST_DATA"]为空
- pxe+kickstart 实现基于网络的无人值守安装操作系统
- Unix网络编程--卷一:套接字联网API 读书笔记
- C#编程:网络连接状态的定时检测