在 Web 浏览器和服务器的早期,可以创建将数据发送到浏览器的脚本,并且浏览器会在数据到达时显示它。
例如传统的 NPH 测试脚本:
#!/usr/local/bin/perl
$server_protocol = $ENV{'SERVER_PROTOCOL'};
$server_software = $ENV{'SERVER_SOFTWARE'};
$|=1;
print "$server_protocol 200 OK", "\n";
print "Server: $server_software", "\n";
print "Content-type: text/plain", "\n\n";
print "OK, Here I go. I am going to count from 1 to 5 !", "\n";
for ($loop=1; $loop <= 5; $loop++) {
print $loop, "\n";
sleep (2);
}
print "All Done!", "\n";
exit (0);
回到旧的 Netscape 时代,浏览器会在 1、2、3、4、5 到达时显示它们之间的时间为 2 秒。
在现代浏览器(例如 Chrome)中,在脚本终止并且一次性显示所有 5 行之前,您什么都看不到。
telnet
通过连接服务器并运行手动GET
命令,我可以看到脚本按预期工作;每 2 秒接收一次输出。
无论如何告诉现代浏览器(可能通过标题?)以旧方式行事并在行到达时显示?