首頁 後端開發 php教程 php下HTTP Response中的Chunked編碼實作方法

php下HTTP Response中的Chunked編碼實作方法

Jul 29, 2016 am 08:39 AM
header size

進行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教程有興趣的朋友有所幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

使用java的File.length()函數取得檔案的大小 使用java的File.length()函數取得檔案的大小 Jul 24, 2023 am 08:36 AM

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

SpringBoot怎麼透過Feign呼叫傳遞Header中參數 SpringBoot怎麼透過Feign呼叫傳遞Header中參數 May 16, 2023 pm 08:38 PM

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

linux的header是什麼意思 linux的header是什麼意思 Jul 18, 2023 pm 03:34 PM

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

如何使用PHP header()方法調整網頁 如何使用PHP header()方法調整網頁 Mar 28, 2023 pm 01:54 PM

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

php header頭怎麼實現跳轉 php header頭怎麼實現跳轉 Dec 02, 2022 am 09:14 AM

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

html5標籤head和header有什麼差別 html5標籤head和header有什麼差別 Jan 17, 2022 am 11:10 AM

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

PHP檔案下載函數大全:readfile、header、Content-Disposition等函數的檔案下載實例分析 PHP檔案下載函數大全:readfile、header、Content-Disposition等函數的檔案下載實例分析 Nov 18, 2023 pm 03:26 PM

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

Nginx如何透過header中的標誌進行分發 Nginx如何透過header中的標誌進行分發 May 11, 2023 pm 04:01 PM

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

See all articles