今天有人问这个有趣的面试问题.
详细解释客户端机器从服务器请求文件(例如file.php),然后接收所需文件及其必要的JS/CSS /图像/视频文件并在客户端的浏览器屏幕上显示的过程.
以下是我所知道的以及我所说的内容:
因此发送请求,然后服务器看到正在请求file.php文件,并且因为它具有.php扩展名,它首先使用PHP引擎来解析文件中的任何PHP代码,然后一旦完成,它将生成的file.php文件(作为响应)输出回客户端机器.然后,浏览器接受该响应并解析HTML和必要的JS和CSS代码,然后将其显示给浏览器.
我的答案非常基本,并没有尽可能详细.我想到了我的回答并提出了新的问题:
字面意思是什么是"请求"?它基本上只是发送到服务器的文本头文件?
那么"回应"呢?响应本身是解析后的file.php文件,它被发送回客户机吗?
如果file.php文件包含对script.js文件和style.css文件的引用,该怎么办?在哪个阶段将这些文件送回客户端计算机?他们是作为单独的标题进来还是什么?
在我的回答中,当我说"...因为它有.php扩展名时,我不确定我是否正确,它首先使用PHP引擎来解析文件中的任何PHP代码." 这真的是服务器解析文件内部代码的原因,还是服务器默认扫描所有类型的文件以检查它们可能包含的任何PHP代码?
首先,我认为你的答案非常好.它肯定描述了你被问到的基本过程.
1)从字面上看,什么是"请求"?它基本上只是发送到服务器的文本头文件?
是的,HTTP请求是到服务器的文本消息,主要包括:请求的路径,该路径的任何参数,客户端信息(用户代理,会话,cookie等).
2)"回应"怎么样?响应本身是解析后的file.php文件,它被发送回客户机吗?
有点.HTTP响应由头文本组成,描述:响应状态(成功或错误,如未找到文件,内部服务器错误等),一些内容元数据(内容类型,编码...)和内容.
内容可以是HTML文档.它也可以是CSS或Javascript文件,PNG图像或Web服务器提供的任何其他文件.标题中的元数据以浏览器(或任何客户端)可以弄清楚如何处理它的方式描述内容.
3)如果file.php文件包含对script.js文件和style.css文件的引用,该怎么办?在哪个阶段将这些文件送回客户端计算机?他们是作为单独的标题进来还是什么?
首先,您刚才描述的过程将完成.意思是,发送了一个请求,然后返回了一个响应.假设响应是HTML文档,浏览器解析文档并查找外部内容:CSS样式表,Javascript文件,图像文件,flash嵌入等.
对于每个外部文件,浏览器使用完全相同的过程发送新请求.例如,获取CSS文件后,浏览器知道将其应用于刚解析的文档.
4)在我的回答中,当我说"...因为它有.php扩展名时,我不太确定我是否正确,它首先使用PHP引擎来解析文件中的任何PHP代码." 这真的是服务器解析文件内部代码的原因,还是服务器默认扫描所有类型的文件以检查它们可能包含的任何PHP代码?
嗯,这取决于服务器配置,但大多数时候,是的;
服务器通常配置为处理所有.php相同的文件,这意味着将它们传递给PHP解析器并等待其响应.
顺便说一句,这对于不同的服务器端软件技术而言是不同的.虽然这是PHP的工作方式,但其他技术(例如Ruby on Rails,某些.NET语言)的处理方式也不同.
很好的问题,对你表现出兴趣有好处!
有关其他信息,我建议您查看维基百科上的HTTP.
| 归档时间: |
|
| 查看次数: |
3540 次 |
| 最近记录: |