1

PHP で gzip 圧縮された Content-Encoding を使用したチャンク Transfer-Encoding の手動実装を試みて失敗しましたが、Apache で mod_deflate を使用することに戻りました。

唯一の問題は、返信と一緒に送信したいフッターがいくつかあることです (Last-Modified または ETag など、同じコンテンツに対して 304 リクエストを送信できます)。HTTP 1.1 仕様では、チャンクされた応答でフッター (ヘッダーと同様、最後に来るだけ) が提供されますが、PHP はその機能を提供していないようです。

可能?

(手動の実装は素晴らしかったです - 私は gzip マスターではなく、PHP が提供するさまざまな zlib func には、有効な gzip されたチャンクを作成するものは含まれていません。時間の約 50% で動作させることができましたが、残りの 50% は壊れるだろう.ドー!)

4

1 に答える 1

0

私の知る限り、投稿の後、チャンクエンコーディングの前にphpが起動されます。私がそれを行う方法を知っている唯一の方法は、チャンクの上にある出力ハンドラーをインストールすることです。このようなことは、C モジュールまたは mod_perl を介してのみ行うことができました。これは、リクエストの任意の時点でハンドラーをインストールできるためです。投稿が完了するまでphpが起動しないため、大規模なアップロードを許可しようとすると同様の問題が発生しました。そのため、「ログインしているユーザーかどうか」や「このスクリプトだけが大量の投稿データを取得できるようにするかどうか」を確認する方法はありません。

于 2011-06-24T05:40:58.913 に答える