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 协议》,转载必须注明作者和本文链接
日拱一卒,功不唐捐
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!