gpt4 book ai didi

php - PHP 中的 “Transfer-Encoding: chunked” header 。 "padding"有什么用?

转载 作者:行者123 更新时间:2023-12-04 05:22:25 28 4
gpt4 key购买 nike

正如在对上一个问题 ( PHP External Oauth : how to displaying a waiting message while waiting for callback (not using AJAX) ) 的回复中所建议的那样,我正在使用传输编码:分块以在执行某些任务时显示等待消息。我的第一次尝试失败了,我在这个问题中找到了解决方案 “Transfer-Encoding: chunked” header in PHP .有 1024 个空格的“填充”。没有这个填充它不起作用。我已经用谷歌搜索过,但我找不到这个填充的用途。这是示例代码(来自相关问题)。

<?php
header('Content-Encoding', 'chunked');
header('Transfer-Encoding', 'chunked');
header('Content-Type', 'text/html');
header('Connection', 'keep-alive');

ob_flush();
flush();

$p = ""; //padding
for ($i=0; $i < 1024; $i++) {
$p .= " ";
};
echo $p;

ob_flush();
flush();

for ($i = 0; $i < 10000; $i++) {
echo "string";
ob_flush();
flush();
sleep(2);
}

?>

有没有人解释为什么它可以在没有“填充”的情况下工作和不工作?

最佳答案

据我了解,填充用于填充服务器缓冲区。

没有它,服务器将等到 PHP 填充它,然后刷新它 - 即使在 PHP 代码中你这样做 flush() .

相关:

  • PHP Output buffer flush issue on Apache/Linux (May 2010; on Server Fault)
  • 关于php - PHP 中的 “Transfer-Encoding: chunked” header 。 "padding"有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13565952/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com