1.游览器输入网址后发生什么

143 阅读1分钟

解析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合并渲染层 得到页面]

本次是第一次写文章,如果不小心被各位看到,还请大佬们不吝指正,感谢