⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 126.htm

📁 vb功能实例介绍。详细、很好的实例说明。
💻 HTM
字号:
<p>HTTP协议四--关于Chunked编码 </p>
<p></p>
<p>  </p>
<p>    在有时服务器生成HTTP回应是无法确定消息大小的,这时用Content-Length就无法事先写入长度,而需要实时生成消息长度,这时服务器一般采用Chunked编码。</p>
<p>  在进行Chunked编码传输时,在回复消息的头部有transfer-coding并定为Chunked,表示将用Chunked编码传输内容。采用以下方式编码:</p>
<p>  Chunked-Body = *chunk</p>
<p>         "0" CRLF</p>
<p>         footer</p>
<p>         CRLF </p>
<p>  chunk = chunk-size [ chunk-ext ] CRLF</p>
<p>      chunk-data CRLF</p>
<p></p>
<p>  hex-no-zero = <HEX excluding "0"></p>
<p></p>
<p>  chunk-size = hex-no-zero *HEX</p>
<p>  chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-value ] )</p>
<p>  chunk-ext-name = token</p>
<p>  chunk-ext-val = token | quoted-string</p>
<p>  chunk-data = chunk-size(OCTET)</p>
<p></p>
<p>  footer = *entity-header</p>
<p>  编码使用若干个Chunk组成,由一个标明长度为0的chunk结束,每个Chunk有两部分组成,第一部分是该Chunk的长度和长度单位(一般不写),第二部分就是指定长度的内容,每个部分用CRLF隔开。在最后一个长度为0的Chunk中的内容是称为footer的内容,是一些没有写的头部内容。</p>
<p>  下面给出一个Chunked的解码过程(RFC文档中有)</p>
<p>  length := 0</p>
<p>  read chunk-size, chunk-ext (if any) and CRLF</p>
<p>  while (chunk-size > 0) {</p>
<p>  read chunk-data and CRLF</p>
<p>  append chunk-data to entity-body</p>
<p>  length := length + chunk-size</p>
<p>  read chunk-size and CRLF</p>
<p>  }</p>
<p>  read entity-header</p>
<p>  while (entity-header not empty) {</p>
<p>  append entity-header to existing header fields</p>
<p>  read entity-header</p>
<p>  }</p>
<p>  Content-Length := length</p>
<p>  Remove "chunked" from Transfer-Encoding</p>
<p>  下一次将会讨论一些小问题,如POST方法的数据传输等。</p>
<p>  最后,还有一点要说的是,好像NetAnt的一个版本不支持Chunked编码,会显示无法确定内容长度,或许是版本太低的缘故,如果你也遇到这种问题,可以改用Net Vampire或其它支持Chunked编码的下载程序试试。</p>
<p> </p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -