1.URL解析
当在浏览器中输入URL后,浏览器首先对拿到的URL进行识别,抽取出域名字段
2.DNS解析(域名解析)
DNS实际上是一个域名和IP对应的数据库。
在进行DNS解析时,会经历以下步骤:
a.查询浏览器缓存(浏览器会缓存之前拿到的DNS 2-30分钟时间),如果没有找到,
b.检查系统缓存,检查hosts文件,这个文件保存了一些以前访问过的网站的域名和IP的数据。它就像是一个本地的数据库。如果找到就可以直接获取目标主机的IP地址了。没有找到的话,需要
c.检查路由器缓存,路由器有自己的DNS缓存,可能就包括了这在查询的内容;如果没有,要
d.查询ISP DNS 缓存:ISP服务商DNS缓存(本地服务器缓存)那里可能有相关的内容,如果还不行的话,需要,
e.递归查询:从根域名服务器到顶级域名服务器再到极限域名服务器依次搜索哦对应目标域名的IP。
通过以上的查找,就可以获取到域名对应的IP了。接下来就是向该IP地址定位的HTTP服务器发起TCP连接。
3. 浏览器与网站建立TCP连接(三次握手)
第一次握手:客户端向服务器端发送请求(SYN=1) 等待服务器确认;
第二次握手:服务器收到请求并确认,回复一个指令(SYN=1,ACK=1);
第三次握手:客户端收到服务器的回复指令并返回确认(ACK=1)。
通过三次握手,建立了客户端和服务器之间的连接,现在可以请求和传输数据了。
4.请求和传输数据
通过请求,和服务器的响应。可以将服务器上的目标文件传输到浏览器的数据进行渲染。
5.浏览器渲染页面
客户端拿到服务器端传输来的文件,找到HTML和MIME文件,通过MIME文件,浏览器知道要用页面渲染引擎来处理HTML文件。
a.浏览器会解析html源码,然后创建一个 DOM树。
b.浏览器解析CSS代码,计算出最终的样式数据,形成css对象模型CSSOM。
c.利用DOM和CSSOM构建一个渲染树(rendering tree渲染树和DOM树有点像,但是是有区别的)。
d.浏览器就根据渲染树直接把页面绘制到屏幕上。
以上内容是转载内容(略有修改),主要为记录一下方便自己后期查看,更详细内容请点https://www.cnblogs.com/tisikcci/p/5866753.html