http返回头中content-length与Transfer-Encoding: chunked的问题释疑
来源:互联网 发布:java 物联网 开源框架 编辑:程序博客网 时间:2024/05/18 01:56
转自:http://www.blogjava.net/anchor110/articles/336371.html
先说说问题出现的背景:
公司服务器与手机客户端交互,客户端请求一个动态生成的XML文件,在用firebug查看http响应头的时候,有时候发现有content-length属性,有时候没有这个属性,取而代之的是Transfer-Encoding: chunked属性。由于客户端强制要求,服务器端必须返回content-length,否则,客户端将不予解析。于是测试发现,当XML文件很小的时候,是有content-length属性的,到达一个值时,就成了Tansfer-Encoding:chunked。再引用一段话,解释一下Transfer-Encoding:chunked这个属性的意义:
通常,HTTP协议中使用Content-Length这个头来告知数据的长度。然后,在数据下行的过程中,Content-Length的方式要预先在服务器中缓存所有数据,然后所有数据再一股脑儿地发给客户端。
如果要一边产生数据,一边发给客户端,WEB 服务器就需要使用"Transfer-Encoding: chunked"这样的方式来代替Content-Length。
最后说说自己的理解与解决方式:
通过种种迹象,我得出的结论是,JSP页面有一个缓存大小,当输出数据的长度没有到达这个大小的时候,服务器是知道总的数据长度的,所以服务器会输出content-length头。但如果超过缓存大小,那么,缓存一满,服务器就得输出内容给客户端,所以,不能判断整个内容的大小,于是返回Transfer-Encoding:chunked这个头信息。
解决方式是:在JSP页面中加入代码,response.setBufferSize(402800);40820即400K,其实只要这个值大于你返回的数据的大小就行了。具体设置多少,你可以根据实际情况,合理配置。另外说一句,在page指令中加入buffer="400kb",是不管用的,我测试的情况是这样。
0 0
- http返回头中content-length与Transfer-Encoding: chunked的问题释疑
- http返回头中content-length与Transfer-Encoding: chunked的问题释疑
- http返回头中content-length与Transfer-Encoding: chunked的问题释疑
- http返回头中content-length与Transfer-Encoding: chunked的问题
- Http 响应头中Transfer-Encoding: chunked
- 关于Http中Transfer-Encoding: chunked问题
- Tomcat 中响应头信息(Http Response Header) Content-Length 和 Transfer-Encoding 之种种
- Tomcat 中响应头信息(Http Response Header) Content-Length 和 Transfer-Encoding 之种种
- Tomcat 中响应头信息(Http Response Header) Content-Length 和 Transfer-Encoding 之种种
- Tomcat 中响应头信息(Http Response Header) Content-Length 和 Transfer-Encoding 之种种
- transfer-encoding: chunked的问题
- HTTP协议首部字段transfer-encoding与content-length差异
- HTTP 1.1 中Transfer-Encoding chunked编码
- HTTP 1.1 中Transfer-Encoding chunked编码
- HTTP 1.1 中Transfer-Encoding chunked编码
- HTTP头中的Content-Transfer-Encoding
- http 协议 通用信息头 Transfer-Encoding: chunked
- http协议Chunked transfer encoding
- linux修改网卡名称
- AFNetworking(v3.0+)框架学习总结(三框架基本使用)
- MongoDB概览
- 【IMWeb训练营作业】todo list项目
- C++ BMP转JPG方法三
- http返回头中content-length与Transfer-Encoding: chunked的问题释疑
- 常见meta和link标签
- [bzoj4825][HNOI2017]单旋
- Python爬取网页信息时,经常使用的正则表达式及方法
- MySQL忘记密码
- Yii URL美化 Apache配置文件
- 《挑战程序设计竞赛》2.4 加工并存储数据的数据结构
- 继承和多态
- org.quartz定时格式