1、URl加载过程
2、详解
-
DNS解析
将域名解析成IP地址,首先,会在 本地域名 服务器中查询IP地址,如果没有找到会向 根域名 服务器发送一个请求,如果根域名服务器也没有找到,会向 顶级域名服务器com
发送一个请求,依次类推下去,直到最后本地域名服务器得到IP地址并把它缓存到本地
解析过程: . -> .com -> google.com. -> www.google.com.- DNS缓存——为了减少请求次数
DNS 具体的查找过程包括:浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存 - DNS负载均衡——DNS服务器会返回一个跟用户最接近的点的IP地址给用户
举例:如果西安有服务器,北京也有,你处在西安,就会从西安的服务器上获取
- DNS缓存——为了减少请求次数
TCP连接
第一次:建立连接时,客户端向服务器发送
syn=i
,并进入SYN_SENT
状态,等待服务器确认第二次:服务器收到
syn
,确认SYN(ack=i+1)
,同时也发送一个syn=j
包,并进入SYN_RECV
状态-
第三次:客户端收到服务器的
syn=j,ack=i+1
后,继续向服务器发送确认包ack=j+1
,,客户端和服务器进入ESTABLISHEC
状态,三次握手完成,TCP连接建立成功
发送HTTP请求
主要发生在客户端,HTTP请求报文是由三部分组成: 请求行, 请求报头和请求正文。
常见的请求报头有:
Accept, Accept-Charset, Accept-Encoding, Accept-Language, Content-Type, Authorization, Cookie, User-Agent
服务器处理请求并返回HTTP报文
HTTP响应报文也是由三部分组成:状态码, 响应报头和响应报文
-
浏览器解析渲染页面
- 浏览器是一个边解析边渲染的过程,首先浏览器解析HTML文件构建DOM树,然后解析CSS文件构建渲染树,页面在首次加载时必然会经历reflow(回流)和repain(重绘)
连接结束