DNS解析过程
- 从用户输入URL后,一直到用户能看到界面,期间经历了什么
- DNS解析(优先走缓存)
- 找浏览器DNS缓存解析域名
- 找本机DNS缓存
- 查看本机的DNS缓存命令: ipconfig/displaydns > c:/dns.txt
- 找路由器DNS缓存
- 找运营商DNS缓存
- 递归查询
- 最不愿意看到的事,查询的是全球13台DNS跟服务器中的一个
TCP的三次握手四次挥手
- 进行TCP (协议) 连接,三次握手 (根据上一步请求回来的 ip 地址,去联系服务器)
- 第一次握手
- 有浏览器发给服务器 — 我想和你说话,你能听见吗
- 第二次握手哦
- 有服务器发给浏览器 — 你说吧
- 第三次握手
- 有浏览器发给服务器 — 好, 那我开始说话
- 发送请求(请求报文)
- 得到响应(响应报文)
- 浏览器开始解析HTML
- 预解析: 将所有外部的资源,发送请求出去
- 解析HTML, 生成DOM树
- 解析CSS,生成css树
- 合并成一个render树
- js 是否操作了DOM或样式
- 有: 进行重回重排(1. 尽量避免,2.最小化重绘重排)
- 没有: null
- 最终展示界面
- 断开TCP连接,四次挥手(确保数据的完完整性)
- 第一次挥手
- 有浏览器发给服务器 — 我的东西接收完了,你关闭了
- 第二次挥手
- 有服务器发给浏览器 — 我还有一些东西没有接收完,等一会,接收完了告诉你/ 如果接收完了,需要验证完整性
- 第三次挥手
- 有服务器发给浏览器 — 我接收完了,你断开吧
- 第四次挥手
- 有浏览器发给服务器 — 好的,那我断开了
备注 - 为什么握手要三次,挥手要四次
- 答: 挥手之前,还没有进行数据传输,确保握手就可以了; 挥手之前,正在进行进行数据的传输,为了确保数据的完整性,必须多经历一次验证