分块传输编码

✍ dations ◷ 2025-11-13 07:07:22 #分块传输编码

分块传输编码(Chunked transfer encoding)是超文本传输协议(HTTP)中的一种数据传输机制,允许HTTP由网页服务器发送给客户端应用( 通常是网页浏览器)的数据可以分成多个部分。分块传输编码只在HTTP协议1.1版本(HTTP/1.1)中提供。

通常,HTTP应答消息中发送的数据是整个发送的,Content-Length消息头字段表示数据的长度。数据的长度很重要,因为客户端需要知道哪里是应答消息的结束,以及后续应答消息的开始。然而,使用分块传输编码,数据分解成一系列数据块,并以一个或多个块发送,这样服务器可以发送数据而不需要预先知道发送内容的总大小。通常数据块的大小是一致的,但也不总是这种情况。

HTTP 1.1引入分块传输编码提供了以下几点好处:

如果一个HTTP消息(包括客户端发送的请求消息或服务器返回的应答消息)的Transfer-Encoding消息头的值为chunked,那么,消息体由数量未定的块组成,并以最后一个大小为0的块为结束。

每一个非空的块都以该块包含数据的字节数(字节数以十六进制表示)开始,跟随一个CRLF (回车及换行),然后是数据本身,最后块CRLF结束。在一些实现中,块大小和CRLF之间填充有白空格(0x20)。

最后一块是单行,由块大小(0),一些可选的填充白空格,以及CRLF。最后一块不再包含任何数据,但是可以发送可选的尾部,包括消息头字段。

消息最后以CRLF结尾。

25This is the data in the first chunk1Cand this is the second one3con8sequence0

编码数据的解释

前两个块的数据中包含有显式的rn字符。

"This is the data in the first chunkrn"      (37 字符 => 十六进制: 0x25)"and this is the second onern"               (28 字符 => 十六进制: 0x1C)"con"                                          (3  字符 => 十六进制: 0x03)"sequence"                                     (8  字符 => 十六进制: 0x08)

编码的数据需要以0长度的块( "0rnrn".)结束。

相关

  • 伊斯兰教与儿童伊斯兰教与儿童涉及的议题包括儿童在伊斯兰教里的权益、儿童对父母负有的义务、父母对亲生及领养子女的权利等。在穆斯林国家,儿童占总人口的45%,因此对儿童的照顾及教育在伊
  • 中国人民解放军特种部队中国人民解放军特种部队指分别隶属于中国人民解放军陆军、海军、空军及火箭军的各特种作战单位,专门从事在局部战争中以高科技条件下实现快速反应作战、突击行动、反恐和情报
  • 平贺让平贺让(日语:平賀譲/ひらが ゆずる  ?,1878年3月8日-1943年2月17日)是日本帝国海军军人、军舰设计师、华族。海军技术中将从三位男爵、东京帝大总长、工学博士。东京府(现在的东
  • 美国政府问责署 美国众议院议长:南希·裴洛西(民主党) 多数党领袖(英语:Party leaders of the United States House of Representatives):斯坦利·霍耶(民主党) 少数党领袖(英语:Party leaders of the
  • 柳川雅树柳川雅树(1987年5月1日-),日本职业足球员,前日本20岁以下足球代表队成员。2006年,柳川雅树在神户胜利船开始足球生涯。2010年转会至甲府风林,2011年转会至草津温泉,2012年转会至栃木
  • 玛丽亚·梅塞德斯 (波旁-两西西里)玛利亚·玛塞迪斯·克里丝蒂娜·珍娜·伊莎贝尔·路易莎·维多利亚(西班牙语:María de las Mercedes Cristina Genara Isabel Luisa Carolina Victoria y Todos los Santos,19
  • 黄英贤黄英贤 (英语:Penny Wong,1968年11月5日-) 是澳大利亚政治家,澳大利亚工党党员,华裔澳大利亚人,法律学研究生学历。现任澳大利亚联邦参议院议员、澳大利亚参议院工党领袖兼反对党
  • PyGTKPyGTK是一套用Python封装的,用于GTK+的GUI库。PyGTK是在LGPL授权下的自由软件。它的作者是著名的GNOME开发者James Henstridge。今天PyGTK核心研发团队有6人,与及其他不同开发
  • 汲斌昌汲斌昌(1963年11月-),男,汉族,山东昌邑人,中华人民共和国政治人物。毕业于四川大学国民经济计划及管理学系国民经济管理学专业,在职研究生学历,工商管理硕士。1985年10月加入中国共产党。1986年7月大学毕业后,到山东省经济体制改革办公室工作,后任山东省人民政府国有资产监督管理委员会副主任。2013年3月,出任山东省鲁信投资控股集团有限公司董事长、党委书记。2018年7月,任山东省人民政府经济和信息化委员会主任。2018年10月,由于组织改革,他改任山东省人民政府工业和信息化厅厅长。2020年5月
  • 格利泽876b格利泽876b是一颗位于宝瓶座、距离地球约15光年的系外行星,其母星为红矮星格利泽876,轨道周期为60.940地球日。科学家于1998年6月发现该行星,它是首颗被发现环绕红矮星运行的系外行星。格利泽876b位于格利泽876行星系的最外层。格利泽876b是由两只团队分别发现的,其中一支由杰佛瑞·马西所领导(其观测数据来自凯克天文台和利克天文台),另外一支由泽维尔·佛希所领导(观测点为日内瓦天文台)。和大部分已知系外行星一样,科学家是通过探测由行星引起的恒星视向速度的变化来确定该行星的存在——也即通过探测格