ホームページ バックエンド開発 PHPチュートリアル PHPにおけるHTTPレスポンスにおけるChunkedエンコーディングの実装方法

PHPにおけるHTTPレスポンスにおけるChunkedエンコーディングの実装方法

Jul 29, 2016 am 08:39 AM
header size

チャンク エンコーディング送信の HTTP 応答は、メッセージ ヘッダーに設定されます。
Transfer-Encoding: chunked
コンテンツ本文がチャンク エンコーディングを使用してコンテンツを送信することを示します。
チャンクエンコーディングは、いくつかのチャンクを連結することによって形成され、長さ 0 を示すチャンクで終わります。各チャンクは、ヘッダーとテキストの 2 つの部分に分かれています。ヘッダーの内容は、テキストの次の段落の合計文字数 (16 進数) と数量単位 (通常は記述されません) を指定します。指定された長さの 2 つの部分をキャリッジ リターンとライン フィード (CRLF) で区切ります。長さ 0 の最後のチャンクのコンテンツはフッターと呼ばれ、追加のヘッダー情報です (通常は直接無視できます)。具体的なチャンクのエンコード形式は次のとおりです:

コードをコピーします コードは次のとおりです:


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 = トークン
chunk-ext-val = トークン | 引用符で囲まれた文字列
chunk-data = chunk-size(OCTET)
footer = *entity- header


RFC document の Chunked デコードプロセスは次のとおりです:

コードをコピー コードは次のとおりです:


length := 0
chunk-size、chunk-ext (存在する場合) を読み取り、 CRLF
while (chunk-size > 0) {
chunk-data と CRLF を読み取る
entity-body にチャンクデータを追加
length := length + chunk-size
chunk-size と CRLF を読み取る
}
entity-body を読み取るheader
while (entity-header not empty) {
既存のヘッダフィールドにentity-headerを追加
entity-headerを読み取る
}
Content-Length := length
Transfer-Encodingから「chunked」を削除


最後にPHPを提供しますチャンク化されたデコード コードのバージョン:

コードをコピー コードは次のとおりです:


$chunk_size = (integer)hexdec(fgets( $socket_fd, 4096 ) ) ); && $chunk_size > 0) {
$bodyContent .= fread( $socket_fd, $chunk_size ); // rn をスキップ
$chunk_size = (integer)hexdec(fgets( $socket_fd, 4096) ));
上記は、PHP での HTTP Response での Chunked エンコーディングの実装方法を、関連する内容も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaのFile.length()関数を使用してファイルのサイズを取得します。 JavaのFile.length()関数を使用してファイルのサイズを取得します。 Jul 24, 2023 am 08:36 AM

ファイルのサイズを取得するには、Java の File.length() 関数を使用します。ファイル操作を扱うとき、ファイル サイズは非常に一般的な要件です。Java では、ファイルのサイズを取得するための非常に便利な方法、つまり length( ) File クラスのメソッド。この記事では、このメソッドを使用してファイルのサイズを取得する方法と、対応するコード例を紹介します。まず、サイズを取得したいファイルを表す File オブジェクトを作成する必要があります。 File オブジェクトを作成する方法は次のとおりです: Filef

SpringBoot はどのように Feign 呼び出しを通じてヘッダー内のパラメーターを渡しますか? SpringBoot はどのように Feign 呼び出しを通じてヘッダー内のパラメーターを渡しますか? May 16, 2023 pm 08:38 PM

[SpringBoot] Feign 呼び出しを介してヘッダーのパラメーターを渡す Feign を介してヘッダー パラメーターを渡す方法 問題の説明 Feign を使用して Spring Cloud の別のサービスの API インターフェイスをリクエストする場合、ヘッダーでパラメーターを渡す必要があります。特別な処理が行われると、ヘッダー内のパラメータが失われます。解決策 1: @RequestHeader(name="headerName") を介して渡します。例: Feign は次のように定義されます @FeignClient(name="service-name")pub

Linuxヘッダーとはどういう意味ですか? Linuxヘッダーとはどういう意味ですか? Jul 18, 2023 pm 03:34 PM

Linux ヘッダーは、コンテンツに関するメタデータを含めるために使用されるファイルまたはデータ ストリームの先頭を指します。ヘッダー ファイルを正しく記述して使用することで、開発者はシステム リソースをより有効に活用し、コードの可読性と保守性を向上させることができます。

PHP header() メソッドを使用して Web ページを調整する方法 PHP header() メソッドを使用して Web ページを調整する方法 Mar 28, 2023 pm 01:54 PM

PHP は、動的な Web サイトや Web アプリケーションの作成に使用できる強力なプログラミング言語です。最も強力な機能の 1 つは、PHP の header() メソッドです。この記事では、PHP の header() メソッドを使用して Web ページを調整する方法を説明します。

PHPヘッダーにジャンプする方法 PHPヘッダーにジャンプする方法 Dec 02, 2022 am 09:14 AM

PHP ヘッダーでジャンプを実装する方法: 1. "Header("Location:$url");" 構文を使用してジャンプを実装します。 2. "if($_COOKIE[" u_type のようなジャンプ ステートメントを使用して、if 判定を使用してジャンプを実装します) "]){ header('location:register.php'); } else{ setcookie('u_type','1','86400*360');"。

html5タグのヘッドとヘッダーの違いは何ですか? html5タグのヘッドとヘッダーの違いは何ですか? Jan 17, 2022 am 11:10 AM

相違点: 1. head タグは、すべての head 要素のコンテナであるドキュメントの先頭を定義するために使用され、header タグはドキュメントのヘッダー (紹介情報) を定義するために使用されます; 2. すべてのブラウザは、 head タグと古いバージョンのブラウザ どのブラウザも header タグをサポートしていません。header タグをサポートするには、IE9 以降などのブラウザが必要です。

PHP ファイル ダウンロード関数の完全なリスト: readfile、ヘッダー、Content-Disposition およびその他の関数のファイル ダウンロード例の分析 PHP ファイル ダウンロード関数の完全なリスト: readfile、ヘッダー、Content-Disposition およびその他の関数のファイル ダウンロード例の分析 Nov 18, 2023 pm 03:26 PM

PHP ファイル ダウンロード関数の完全なリスト: readfile、ヘッダー、Content-Disposition およびその他の関数のファイル ダウンロードの例分析 ファイルのダウンロードは Web アプリケーションの重要な機能の 1 つであり、広く使用されている Web 開発言語としての PHP は、多くの Aファイルのダウンロードを実装する関数とメソッド。この記事では、readfile、header、Content-Dispo など、PHP で一般的に使用されるファイル ダウンロード関数を紹介します。

Nginx がヘッダー内の ID を介して配布する方法 Nginx がヘッダー内の ID を介して配布する方法 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