web-dev-qa-db-ja.com

転送エンコード:チャンク

私はTransfer-Encoding:chunkedhttp://zoompf.com/blog/2012/05/too-chunky および PHPの「Transfer-Encoding:chunked」ヘッダー

私はまだ非常に明確な画像を取得できませんでした。このエンコードを設定すると、サーバーがコンテンツをブラウザーにまとめて設定し、一度にコンテンツを部分的にレンダリングしてWebサイトの応答性を高めることができることを理解しています。

IBM WASでホストされる動的コンテンツ(例:JSFベースのWebアプリ)を提供するWebアプリケーションを持っている場合、ほとんどのWebページは、多くのCSSおよびJSファイル+動的コンテンツを含むリッチな静的コンテンツを提供するように設計されています。ページの転送エンコードを「チャンク」に設定するにはどうすればよいですか?または言い換えれば:

  • どのページをどのように決定するか'Transfer-Encoding: chunked'そして、そのページにどのように設定しますか?

あなたの個人的な経験は確かに私の理解にとって貴重です。

45
Vicky

Transfer-Encoding: chunkedは、プログレッシブレンダリングには必要ありません。ただし、最初のバイトが送信される前にコンテンツの長さの合計が不明な場合はisが必要です。

37
Julian Reschke

サーバーが大量のデータを送信する必要がある場合、データの大きさ(長さ)が正確にわからなかったため、サーバーはチャンクエンコーディングを使用します。 HTTPの用語では、サーバーが応答を送信するとき、Content-Lengthヘッダーはサーバーによって省略されます。代わりに、サーバーは現在のチャンクの長さを16進形式で書き込み、その後に\ r\n、次にチャンク、その後に\ r\nを書き込みます(コンテンツは16進数のチャンクサイズで始まり、その後にチャンクが続きます)

この機能はプログレッシブレンダリングに使用できます。ただし、クライアントがコンテンツを段階的にレンダリングできるように、サーバーは可能な限りデータをフラッシュする必要があります(html、cssなどの場合)

この機能は、サーバーがクライアントに大量のデータをプッシュするときによく使用されます-通常は大きなサイズ(メガ/ギガ)

Mozillaドキュメント

6
webjockey