php下HTTP Response中的Chunked編碼實作方法
進行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-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
footer = *entity-header
複製程式碼
程式碼如下: length := 0
length := 0
length := 0
length := 0
length := 0
length := 0
while (chunk-size > 0) {
read chunk-data and CRLF
append chunk-data to entity-body
append chunk-data to entity-body
〭 🎜> read chunk-size and CRLF
}
read entity-header
while (entity-header not empty) { while (entity-header not empty) { }
Content-Length := length
Remove "chunked" from Transfer-Encoding
最後提供一段解碼的版本:最後提供一段解碼程式碼🎜> >複製程式碼
程式碼如下:
$chunk_size = (integer)hexdec(fgets( $socket_fd, 4096 ) ) 0) {
$bodyContent .= fread( $socket_fd, $chunk_size );
fread( $socket_fd, 2 ); // skip
fread( $socket_fd, 2 ); // skip
(fgets( $socket_fd, 4096 ) );
}
以上就介紹了 php下HTTP Response中的Chunked編碼實作方法,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

使用Java的File.length()函數取得檔案的大小檔案大小是在處理檔案作業時很常見的一個需求,Java提供了一個很方便的方法來取得檔案的大小,即使用File類別的length()方法。本文將介紹如何使用此方法來取得檔案的大小,並給出對應的程式碼範例。首先,我們需要建立一個File物件來表示我們想要取得大小的檔案。以下是建立File物件的方法:Filef

【SpringBoot】透過Feign呼叫傳遞Header中參數如何透過Feign傳遞Header參數問題描述我們在SpringCloud中使用Feign請求另一個服務的Api介面時,有將Header中參數傳遞下去的需求,如果不做特殊處理,就會將Header中的參數遺失。解決方案方案一:透過@RequestHeader(name="headerName")來傳遞例如:Feign定義如下@FeignClient(name="service-name")pub

linux的header是指在文件或資料流中的開頭部分,用於包含關於內容的元數據,透過正確地編寫和使用Header文件,開發者能夠更好地利用系統資源,提高程式碼的可讀性和可維護性。

PHP是一種功能強大的程式語言,可以用來創建動態網站和Web應用程式。其中一個最強大的功能之一是PHP的header()方法。在本文中,我們將探討如何使用PHP的header()方法來調整網頁。

php header實作跳轉的方法:1、使用「Header("Location:$url");」語法實作跳轉;2、使用if判斷式實作跳轉,其跳轉語句如「if($_COOKIE[" u_type"]){ header('location:register.php'); } else{ setcookie('u_type','1','86400*360');」。

區別:1、head標籤用於定義文檔頭部,它是所有頭部元素的容器,而header標籤用於定義文檔的頁眉(介紹資訊);2、瀏覽器都支援head標籤,而舊版本瀏覽器皆不支援header標籤,需要IE9+以上瀏覽器才能支援header標籤。

PHP檔案下載函數大全:readfile、header、Content-Disposition等函數的檔案下載實例分析檔案下載是Web應用程式中必不可少的功能之一,而PHP作為一種廣泛使用的Web開發語言,提供了多種實作文件下載的函數和方法。本文將介紹PHP常用的檔案下載函數,包括readfile、header、Content-Dispo

Nginx可以根據請求頭中自訂的識別碼將請求分發到不同的伺服器。具體來說,可以使用map指令將請求頭中的自訂標識映射為不同的後端伺服器位址,然後使用proxy_pass指令將請求轉發到對應的後端伺服器。以下是一個範例設定檔:http{map$http_my_header$backend{defaultbackend1.example.com;value1backend2.example.com;value2backend3.example.com;}upstreambackend1{serv
