我意识到,当客户端在浏览器中输入地址时,浏览器会将HTTP请求按钮发送到Web服务器。 Web服务器接收HTTP请求,读取它并最终找到所请求的文件。
当所请求文件的后缀为.php
时,Web服务器会在RAM上打开它,然后将其引用到PHP解释器。 PHP解释器逐行读取该文件,并且<?php ?>
块之外的那些行将被解释器(?)
的输出忽略,而PHP块中的那些是逐行解释。如果我就在这里,那么我引用一些例子继续辩论。
我们假设index.php
有以下代码:
Example Html Code
<php
echo 'this is a test.';
// another php codes
?>
PHP解释器不编译第一行,因为它不在PHP块中,但是,因为有一个Html标记,所以PHP解释器自动考虑自适应标头并将第一行放在输出中,但是,因为它不是文件解释未完成,因此标题和输出尚未发送到Web服务器。这样对吗?
然后,下一行由解释器编译
下一行位于PHP块中,因此它由解释器编译,并将应该为echo
的文本放在前一个输出的连续符中。因此,其他代码的解释类似,当index.php
文件完全编译时,解释器将标头和输出发送到Web服务器。
它们也通过Web服务器以Web响应的形式发送到Web浏览器。
这个结论对于浏览器,Web服务器和PHP解释器之间的循环是否正确?
浏览器和Web服务器之间形成了多少请求和响应?
Web服务器和PHP解释器之间形成了多少请求和响应?
Web服务器或PHP解释器是否在RAM上打开文件?
当解释程序考虑标题时,它是立即发送到Web服务器还是完成后发送的页面的完整解释?
当PHP解释器遇到第一个Html标记或某些命令(例如echo
等)时,它是立即发送输出还是在页面被解释后直接与标题一起发送所有输出完全?