hello world 是如何输出到浏览器的
buffer 的概念
buffer 是一个内存地址空间,linux系统默认的大小一般为4096B(4kb),即一个内存页。buffer 主要解决不同设备之间存储速度件间的差异,减少进程间的相互等待。php.ini 中的设置 为output_buffering = 4096
当我们执行echo 的时候,并没有立即通过tcp将内容输出到浏览器,而是会先将内容写入到 php buffer。php buffer 的空间写满了之后,会通过操作系统将buffer中的数据交给tcp发送给浏览器,所以数据的写入依次是:
echo > php buffer > tcp buffer > browser
header( 'X-Accel-Buffering: no' ); //控制浏览器的buffer行为。
for ($i = 0; $i < 10000; $i++) {
echo $i;
ob_flush();
flush();
sleep(1);
}
参考:
rexmolo.github.io/2018/07/06/php-i...
本作品采用《CC 协议》,转载必须注明作者和本文链接