一、键入网址到网页显示
▪ 应用层:
输入URL,解析URL(协议名称、服务器域名、目录名);
生成HTTP请求信息 (GET、POST报文);
DNS查询域名对应的IP地址(如果本地有DNS缓存或者hosts文件直接返回)
▪ 传输层:发送TCP连接请求,三次握手;发起HTTP请求
▪ ⽹络层:生成IP头部
▪ 数据链路层:加上MAC头部
▪ 网卡(检查、数字信息转换为电信号)
▪ 交换机
▪ 路由器
▪ 到达服务端(解析MAC、IP、TCP、HTTP)
▪ 服务器返回响应,⽣成HTTP响应,加TCP、IP、MAC、经过⽹卡、交换机、路由器到达客户端
▪ 四次挥⼿;浏览器解析HTML、浏览器显示渲染页面、执行js脚本,相应ajax请求
其中域名解析、DNS查询都可以展开来讲
二、浏览器输⼊URL到⻚⾯打开的过程如何加速
▪ 使用http3.0协议(多路复用、tcp连接换成udp连接减少三次握⼿时间、0-RTT建连,向前纠错机制减少重传)
▪ 数据压缩,减少传输时间和次数
▪ CDN服务器,地域分布式缓存静态资源
▪ 页面先呈现静态资源及框架,动态资源延迟加载,从使用者角度加速
▪ 每次打开做好缓存,例如DNS缓存、静态资源缓存