Ps:参考文章:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/
以下是个人简化版。
1. 在浏览器中输入一个URL
1.png没什么说的。比如在浏览器输入:非死不可.com
2. 浏览器进行域名解析
2.png也就是浏览器根据域名,查找到网站的IP地址。DNS的查找过程分如下几步:
- 查找 Browser cache ,即浏览器缓存
浏览器一般会缓存 DNS 一段时间,不同浏览器情况不一样,用户也可通过浏览器设置去查看和修改这一功能。
- 查找 OS cache ,即系统缓存
系统也有自己的缓存记录,如果在浏览器缓存中没有找到,就会去系统缓存中找。如: windows 系统就是从 host 文件中去查找。
- 查找 Router cache ,即路由器缓存
同理,路由器也有自己的 DNS 缓存。上述1、2步失败,则到达这一步。
- 查找 ISP DNS cache ,即网络服务商的 DNS 缓存
上述123都找不到 IP ,则会在网络服务商的 DNS 缓存中查找。
- Recursive search ,即递归查找
以上方法都不能找到 IP , 就会从根域名服务器开始循环查找,比如 .com 域名服务器。
DNS循环查找的示意图:
3.png3. 浏览器向 web 服务器发送一个HTTP请求
4.pngGET http://facebook.com/ HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, [...]
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; [...]
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: facebook.com
Cookie: datr=1265876274-[...]; locale=en_US; lsd=WW[...]; c_user=2101[...]
不赘述。
(好吧其实是作为菜鸟我还不懂这些。留个坑以后补吧 :-( )
4. 服务器处理请求
5.png服务器收到请求后进行响应,并回传数据。
作为入门,这一块先不说太多,后续层次不断深入会慢慢了解。(ps:其实是现在我也说不出来。扑街。。。)
5. 服务器开始渲染页面
服务器按照接收到的页面代码,开始一步步渲染绘制网页。
以上,从 URL 到页面的展现,就基本完成了。
不过,这里是一个非常初级,非常简化的流程。更多其中的细节和复杂,在一步步的学习中和大家一起去探索。
_
二男
2017年3月14日 18:33:37
网友评论