当前位置: 首页 > 后端技术 > PHP

一个页面请求过程

时间:2023-03-30 06:02:56 PHP

很久以前想写一篇关于页面请求全过程的文章。当然,这样的文章在网上遍地都是。而且我写的也不比别人好,何必写那个。人是健忘的动物,写下来主要是作为备忘,同时锻炼自己的表达能力。毕竟,只有能够把一个问题解释清楚,才能表明我们真的理解它。首先在浏览器中输入网址(www.melody.com/index.php)找到域名对应的IP地址(DNS解析)DNS解析过程:浏览器缓存——浏览器会缓存DNS记录一段时间时间,我的电脑GoogleChrome浏览器的默认设置是1分钟。hosts文件——不同系统放置的目录不同,Mac在/etc/hosts。路由器缓存-好吧,这没什么好说的。ISP解析服务器——其实这是DNS记录的缓存。递归查询——这个过程可以google详细。这个查询是由ISP的解析服务器发起的,所以ISP找到这个查询后,会将记录缓存起来,发送给浏览器。注意:这样就完成了DNS查找的过程,假设查询到的IP地址是115.26.23.117。值得注意的是,在(4)中,一般默认为运营商解析服务器。比如笔者使用的是联通的宽带,默认是联通的解析服务器。linux/mac可以通过cat/etc/resolv.conf查看。浏览器向115.26.23.117的80端口发起连接,TCP连接的建立需要三次握手(SYN->SYN+ACK->ACK)。浏览器向Web服务器发送HTTP请求。详细的消息分析可以参考《HTTP权威指南》,这里就不赘述了。服务端收到请求  如图1所示,其实是Nginx收到了请求。服务器的“处理”请求如图1所示,请求由Nginx转发给AppServer进行处理。请求处理程序是一个可以读取请求并生成HTML作为响应的程序(如Python、PHP、Ruby)。服务器返回HTML响应 APP服务器生成HTML响应并通过Nginx返回给浏览器。浏览器开始显示HTML。当浏览器没有完全接受整个HTML文档时,它开始显示页面。 浏览器会根据响应头中的信息来决定如何解释响应。浏览器获取HTML中嵌入的对象(css、js、img等) 如:总结:  1。加深记忆  2。参考:http://www.cnblogs.com/wenanr...