我知道我可以通过sleep()
在输出中引入 a 来在 PHP 中生成分块响应。
但是是否也可以在 PHP 中生成Trailer HTTP 部分?如果没有,在 Apache 2.2 中是否有可能?
我需要它用于测试目的。
我知道我可以通过sleep()
在输出中引入 a 来在 PHP 中生成分块响应。
但是是否也可以在 PHP 中生成Trailer HTTP 部分?如果没有,在 Apache 2.2 中是否有可能?
我需要它用于测试目的。
如果发送了标头但未指定标头,PHP 将默认发送分块响应Content-Length
。如果您熟悉 HTTP 规范,这是唯一合乎逻辑的事情,因为另一端的客户端需要知道您发送的 HTTP 消息何时结束,以便它可以停止读取。
如果要手动执行此操作,则需要...
flush()
因此,您可能会执行以下操作。这个想法是您需要手动发送自己的标头并手动分块您自己的消息。但是,如果您根本不发送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();