5

出力にa を導入するだけで、PHP でチャンク応答を生成できることはわかってsleep()います。

しかし、PHP でTrailer HTTP セクションを生成することもできますか? そうでない場合、一般的にApache 2.2で可能ですか?

テスト目的で必要です。

4

1 に答える 1

2

ヘッダーが送信され、ヘッダーが指定されていない場合、PHPはデフォルトでチャンク応答を送信しContent-Lengthます。HTTP仕様に精通している場合は、これが唯一の論理的なことです。相手側のクライアントは、送信するHTTPメッセージがいつ終了するかを知る必要があるため、読み取りを停止できます。

これを手動で行いたい場合は、次のことを行う必要があります...

  1. 適切なヘッダーを自分で送信して、flush()
  2. チャンクされたHTTPメッセージを手動で出力する

したがって、次のようなことを行うことができます。アイデアは、手動で独自のヘッダーを送信し、手動で独自のメッセージをチャンク化する必要があるということです。ただし、単にヘッダーを送信しない場合Content-Length、PHPはデフォルトでチャンクメッセージを送信します。

header("Transfer-encoding: chunked");
header("Trailer: X-My-Trailer-Header");
flush();

echo dechex(strlen($myChunk)) . "\r\n";
echo $myChunk;
echo "\r\n";
flush();

echo "0\r\n";
flush();

echo "X-My-Trailer-Header: some-value\r\n";
flush();
于 2012-08-15T06:54:02.340 に答える