解析URL
我们输入的域名是方便我们记忆的如www.baidu.com/s?wd=百度 其中包含协议https 网络地址baidu.com 资源地址/s 携带参数?wd=百度,需要转换为计算器能识别的ip地址
DNS 查询
查找是否有缓存,查找顺序 游览器缓存->操作系统缓存->路由器缓存->ISP DNS缓存->根服务器缓存 如果有缓存的话就查看是协商缓存还是强缓存,缓存可用直接读取缓存,加载页面. 如果没缓存的话,就回在根服务器获取到ip地址 通过ip地址向服务器发送get请求
TCP连接
传统的http请求(1.0/1.1/2.0) 建立tcp连接 其中包括3次握手,4次挥手 3次握手 游览器:发送syn包(SEQ=x) 进入SYN_SEND状态 服务器:发送ack确认(ACk=x+1) SYN包(SEQ=y) 进入SYN_RECV状态 游览器:发送ack包(SEQ=y+1) 进入Established状态
4次挥手 和3次握手差不多,只是存在数据传输还未完成的情况 客户端和服务端会多一次确认数据传输完成的对话.
发送http请求
客户端发送http请求,请求页面资源,服务端收到请求后返回资源html,css,js,图片等资源
渲染页面
解析html文件 得到dom树 解析css文件 得到css树 合并dom树和css树 得到渲染树 计算节点信息(重绘,回流) 将像素发给GPU GPU合并渲染层 得到页面]