第一步:通过访问的域名找出其IP地址.(即域名解析)
DNS查找过程如下:
- 浏览器缓存 – 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)。
- 操作系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便可获得系统缓存中的记录。
- 本地hosts文件 – 接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存。
- ISP DNS 缓存(本地域名服务器) – 接下来要check的就是ISP缓存DNS的服务器。在这一般都能找到相应的缓存记录。
- 若缓存没有,则递归搜索(根域名服务器) – 你的ISP的DNS服务器从跟域名服务器开始进行递归搜索,从.com顶级域名服务器到Facebook的域名服务器。一般DNS服务器的缓存中会有.com域名服务器中的域名,所以到顶级服务器的匹配过程不是那么必要了。
二、建立TCP连接(三次握手)
三、客户端发送http请求报文
(1)应用层:客户端发送HTTP请求报文 (HTTP协议)
(2)传输层:切分长数据,并确保可靠性。(tcp协议)
(3)网络层:进行路由 (ip协议、路由选择使用OSPF协议)
(4)数据链路层:传输数据(将ip地址转换为MAC地址,用ARP协议)
(5)物理层:物理传输bit
四、服务器端经过物理层→数据链路层→网络层→传输层→应用层,解析请求报文,发送HTTP响应报文。
五、关闭TCP连接
六、浏览器解析HTML、布局显然,展示给用户
还可以看:https://www.jianshu.com/p/c1dfc6caa520
https://www.zhihu.com/question/34873227