Transfer-Encoding: chunked 的含义
在用firebug查看服务器的请求时,返回的header都有Transfer-Encoding: chunked,在做实际应用时,好像也
没有多大关系。
试试用socket连接http服务器,看看数据是如何传输的。
Socket s = new Socket("172.16.1.123", 80);
InputStream ins = s.getInputStream();
OutputStream os = s.getOutputStream();
os.write("GET /a.jsp HTTP/1.1\r\n".getBytes());
os.write("Host:172.16.1.123\r\n".getBytes());
//必须加host,否则服务器会返回bad request,无论是tomcat还是resin,还是nginx或者apache httpd
os.write("\r\n\r\n".getBytes());//这个也必不可少,http协议规定的
os.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(ins));
String line = null;
line = br.readLine();
while(line != null){
System.out.println(line);
line = br.readLine();
}
ins.close();
用tomcat做服务器,建立一个a.jsp文件
<% out.print("helloworld!");
out.flush();
out.print("123");
out.flush();
%>
输出结果是:
引用
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=8A7461DDA53B4C4DD0E89D73219CB5F8; Path=/
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 10 Nov 2010 07:10:05 GMT
b
helloworld!
3
123
0
其中Transfer-Encoding:chunked表示内容长度在后面介绍,b这个16进制数字就表示长度为11,然后是内容
(helloworld!),然后以\r\n结束,如果有下一段,则一个16进制数字表示长度,直到最后一段没有了,才以0
结束。
不过不用担心,在浏览器里会自动解释分析,不会让你看到b,3,0,就算在firebug里也显示的是helloworld!
123。
如果自己解析,就需要注意了。
分享到:
相关推荐
Transfer-Encoding:chunked Location:http://localhost:5000/api/companies/61156544-d8bd-4787-a79a-a484dd9a382c 在浏览器中输入http://localhost:5000/api/companies/61156544-d8bd-4787-a79a-a484dd9a382c ...
Spring MVC + MessagePack 示例 跑步 $ mvn spring-boot:run $ curl -v "localhost:8080/calc?... Transfer-Encoding: chunked < Date: Fri, 16 Jan 2015 15:00:26 GMT < leftd right , answer
无服务器测试示例 该存储库说明了一些测试使用构建的应用程序的策略。 我已经在“媒介:上发表了有关此的文章 设置 安装Node 8.10(AWS Lambda支持的最新运行时)...Transfer-Encoding: chunked access-control-allow
进行Chunked编码传输的HTTP Response会在消息头部设置: Transfer-Encoding: chunked 表示Content Body将用Chunked编码传输内容。 Chunked编码使用若干个Chunk串连而成,由一个标明长度为0的chunk标示结束。每个...
通过本文给大家介绍php用curl读取http chunked数据的方法,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起学习吧
Django EventStream EventStream为您的Django应用程序提供API终结点,...Transfer-Encoding: chunked Connection: Transfer-Encoding Content-Type: text/event-stream event: message data: {"foo": "bar"} event:
如何建造 首先,需要构建和 。 之后,只需运行 mvn clean install ...Transfer-Encoding: chunked Date: Fri, 19 Sep 2014 15:37:06 GMT { "id" : 2, "time_started" : "2014-09-19T15:36:54.478
#Echo服务器 一个简单的测试服务器,以回显所需的状态代码,主体或其他参数 用法 要启动服务器,只需运行node server.js ,然后开始向服务器发出请求。... Transfer-Encoding: chunked 示例:消息 $ curl -v http://12
Transfer-Encoding: chunked google了许久,发现是CDN的抓取好像只支持http 1.0 而nginx的 gzip_http_version选项默认值为1.1 在nginx的配置文件中增加或修改gzip_http_version参数,为: 代码如下: gzip_...
//网页 Transfer-Encoding: chunked,普通采集程序返回412错误 //采用 Chrome WebBrowser模式返回Html //需nuget 下载CefSharp.WinForms包
XHR 使用其公共方法从ReadableStream读取数据作为ArrayBuffer s,并使用Transfer-Encoding: chunked将它们发送到网络,而无需等待整个响应主体准备就绪。 当ReadableStream关闭时,终止请求正文。 var reques
HTTP chunk数据包 服务器端发送的数据格式有俩类,我称之为按长度返回、按块返回这俩类。一类是在返回头中有Content-Length: 258,258标识该正文内容长度;还有一类是返回Transfer-Encoding: chunked。
一、前言 ... 这里我主要学习过的案例自己敲了一遍,加深理解。在coding的过程中,我第一次把jq获取后的对象直接用forEach遍历,直接报错,是因为jq没有对应的这个方法,只有js数组可以调用。 二、知识点 ...
HTTP请求走私检测工具HTTP请求走私是一种高度严重的漏洞,该技术是攻击者通过模糊的HTTP请求走私以绕过安全控制并获得未经授权的访问权以执行恶意活动,该漏洞是在2005年由发现的,并于2019年8月重新发现。...
Stocazzo即服务 Node REST服务,用于将Stocazzo作为应用程序的资产提供。 API端点 / 将返回“ stocazzo”。...Transfer-Encoding: chunked cache-control: no-cache content-encoding: gzip conten
java 使用socked接收chunck分块数据 , 部分做修改, 原来参考地址:http://blog.csdn.net/lhj_5460/article/details/48156461
Chunked transfer encoding for HTTP/1.1 from Dug Song. DNS DDoS fix; bug report from Jon Oberheide. Various small improvements. libevent-1.2a.tar.gz- Release 2006-12-02 Made ...
3.6.1块传输编码(Chunked Transfer Coding) 3.7 媒体类型(Media Type) 3.7.1规范化和文本缺省 (Canonicalization and Text Defaults) 3.7.2多部分类型(Multipart type) 3.8 产品标记 (product Tokens) 3.9...
3.6.1块传输编码(Chunked Transfer Coding) 25 3.7 媒体类型(Media Type) 27 3.7.1规范化和文本缺省 27 3.7.2多部分类型(Multipart type) 28 3.8 产品标记 (product Tokens) 29 3.9 质量值(Quality Values...