進行chunked編碼傳輸的http response會在訊息頭部設定:
transfer-encoding: chunked
表示content body將用chunked編碼傳輸內容。
chunked編碼使用若干個chunk串連而成,由乙個標明長度為0的chunk標示結束。每個chunk分為頭部和正文兩部分,頭部內容指定下一段正文的字元總數(十六進製制的數字)和數量單位(一般不寫),正文部分就是指定長度的實際內容,兩部分之間用回車換行(crlf)隔開。在最後乙個長度為0的chunk中的內容是稱為footer的內容,是一些附加的header資訊(通常可以直接忽略)。具體的chunk編碼格式如下:
chunked-body = *chunk
"0" crlf
footer
crlf
chunk = chunk-size [ chunk-ext ] crlf
chunk-data crlf
hex-no-zero =
chunk-size = hex-no-zero *hex
chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-value ] )
chunk-ext-name = token
chunk-ext-val = token | quoted-string
chunk-data = chunk-size(octet)
footer = *entity-header
最後提供一段php版本的chunked解碼**:
$chunk_size
=(integer)hexdec(fgets( $socket_fd,
4096
) );
while(
!feof($socket_fd)
&&$chunk_size
>0)
HttpResponse的使用方法
httprequest類是乙個封閉http提交資訊的型別,而封閉http輸出資訊的型別就是httpresponse類,使用httpresponse類可以實現三種型別的輸出,即文字,url,二進位製流.實現這三類的屬性和方法分別介紹如下 1.文字的輸出,在日常開發中,後台中的文字可能需要輸出到瀏覽器中...
C 中的long與C 中的long
微軟很厲害,c 是非常優秀的計算機語言,c 比c 還厲害,c c 本身不就包含四個 號嗎?而微軟發明了c c 中的long比c 中的long要long兩倍!不信你看 我正在使用.net寫乙個預約排隊的程式,因為一前通過vc編寫了乙個用於顯示登記資訊的控制項,現在使用c 重新預約程式,則必然要呼叫vc...
c中的const與c 中的const
c中的const是乙個偽唯讀識別符號。include include int main 此時輸出a的值為20,被指標間接的改變了。c 中,const進行了增強,不在是乙個偽識別符號了。const int a 10 int p int a p 20 cout a p endl cout a endl ...