茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    HTTP協(xié)議之Chunked解析
    來源:易賢網 閱讀:10995 次 日期:2015-02-06 15:43:10
    溫馨提示:易賢網小編為您整理了“HTTP協(xié)議之Chunked解析”,方便廣大網友查閱!

    網上使用Chunked編碼的網站似乎并不是很多,除了那些使用GZip壓縮的網站,例:google.com,還有就是大部分打開GZip壓縮的PHP論壇。

    根據本人的理解,使用Chunked編碼的主要好處就在于一些程序的運算出過程中,可以動態(tài)的輸出內容。

    例如,要在后臺處理一個小時的運算,但又不希望用戶等一個小時才能看到結果。這時就可采用Chunked編碼將內容分塊輸出,用戶隨時都可以接收到最新的處理結果。

    ASP關閉了緩存的輸出模式,就是Chunked編碼的。(Response.Buffer = false)

    而每一次的Response.Write,都是一個Chunked,所以不要使用的太頻繁哦,否則Chunk數量太多,額外的數據太浪費空間了。

    若想了解Chunked的具體編碼結構,用ASP關閉緩存調試蠻方便的。:)

    我們先來看看RFC2616中對Chunked的定義:

    Chunked-Body = *chunk

    last-chunk

    trailer

    CRLF

    chunk = chunk-size [ chunk-extension ] CRLF

    chunk-data CRLF

    chunk-size = 1*HEX

    last-chunk = 1*("0") [ chunk-extension ] CRLF

    chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] )

    chunk-ext-name = token

    chunk-ext-val = token | quoted-string

    chunk-data = chunk-size(OCTET)

    trailer = *(entity-header CRLF)

    我們來模擬一下數據結構:

    [Chunk大小][回車][Chunk數據體][回車][Chunk大小][回車][Chunk數據體][回車][0][回車]

    注意chunk-size是以十六進制的ASCII碼表示的,比如86AE(實際的十六進制應該是:38366165),計算成長度應該是:34478,表示從回車之后有連續(xù)的34478字節(jié)的數據。

    跟蹤了的返回數據,發(fā)現在chunk-size中,還會多一些空格??赡苁枪潭ㄩL度為7個字節(jié),不滿7個字節(jié)的,就以空格補足,空格的ASCII碼是0x20。

    以下是解碼過程的偽代碼:

    length := 0//用來記錄解碼后的數據體長度

    read chunk-size, chunk-extension (if any) and CRLF//第一次讀取塊大小

    while (chunk-size > 0) {//一直循環(huán),直到讀取的塊大小為0

    read chunk-data and CRLF//讀取塊數據體,以回車結束

    append chunk-data to entity-body//添加塊數據體到解碼后實體數據

    length := length + chunk-size//更新解碼后的實體長度

    read chunk-size and CRLF//讀取新的塊大小

    }

    read entity-header//以下代碼讀取全部的頭標記

    while (entity-header not empty) {

    append entity-header to existing header fields

    read entity-header

    }

    Content-Length := length//頭標記中添加內容長度

    Remove "chunked" from Transfer-Encoding//頭標記中移除Transfer-Encoding

    有空再研究一下GZip+Chunked是如何編碼的,估計是每個Chunk塊進行一次GZip獨立壓縮。

    使用了Chunked,自然會在性能上稍微打點折扣,因為比正常的數據體多出了一些額外的消耗。

    但是有一些情況下,必需要使用分塊輸出,這也是不得已而為之.

    更多信息請查看IT技術專欄

    更多信息請查看數據庫
    易賢網手機網站地址:HTTP協(xié)議之Chunked解析

    2026國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網