熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

HTTP協議的chunked編碼

2013-11-13 10:28:39  來源: .NET編程 

  一般情況HTTP的Header包含ContentLength域來指明報文體的長度

  image

  有時候服務生成HTTP回應是無法確定消息大小的比如大文件的下載或者後台需要復雜的邏輯才能全部處理頁面的請求這時用需要實時生成消息長度服務器一般使用chunked編碼

  在進行Chunked編碼傳輸時在回復消息的Headers有transfercoding域值為chunked表示將用chunked編碼傳輸內容使用chunked編碼的Headers如下(可以利用FireFox的FireBug插件或HttpWatch查看Headers信息HttpWatch還可以查看chunked的個數)

  image

  chunked采用以下方式編碼

  ChunkedBody=*chunk

  CRLF

  footer

  CRLF

  chunk=chunksize[chunkext]CRLF

  chunkdataCRLF

  hexnozero=<HEXexcluding>

  chunksize=hexnozero*HEX

  chunkext=*(;chunkextname[=chunkextvalue])

  chunkextname=token

  chunkextval=tokenquotedstring

  chunkdata=chunksize(OCTET)

  footer=*entityheader

  編碼使用若干個Chunk組成由一個標明長度為的chunk結束每個Chunk有兩部分組成第一部分是該Chunk的長度和長度單位(一般不寫)第二部分就是指定長度的內容每個部分用CRLF隔開在最後一個長度為的Chunk中的內容是稱為footer的內容是一些沒有寫的頭部內容


From:http://tw.wingwit.com/Article/program/net/201311/13771.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.