从输入URL到出现页面
一、解析URL
· 浏览器解析输入的URL,检查协议、域名、端口和路径。
· 若是非完整URL(如输入baidu.com),浏览器会尝试补全(自动添加https://)。
二、检查缓存
· 浏览器检查HSTS列表,若域名在列表中,自动将HTTP请求升级成HTTPS。
· 查看本地缓存是否有该资源的缓存副本,若有效则直接使用。
三、DNS解析
· 每个网址都有对应的ip地址,ip地址有数字组成,不便于记忆,将url地址解析为ip地址的过程就是DNS解析。
· DNS就是一个记录着url与其对应的ip地址的数据库。
· 将域名转换为ip地址:
1.浏览器缓存–>系统缓存(hosts文件)–>路由器缓存–>ISP的DNS服务器。
2.若未命中缓存,DNS服务器通过递归查询(如根域名服务器–>顶级域名服务器–>权威域名服务器)。
四、建立TCP连接
· 通过三次握手建立连接
· 如果是HTTPS,还需进行TLS握手:
1.协商加密套件;
2.服务器发送证书(由CA机构签发,验证身份);
3.生成会话秘钥(Session Key),后续通信加密。
五、发送HTTP请求
· 浏览器发送HTTP请求:
· 请求行(<请求方式><请求URL><HTTP版本>)
· 请求头(如User-Agent、Accept、Cookie)
· 请求体(如POST方法的表单数据)
· 如果是HTTPS,数据会被TLS加密。
六、服务器处理请求
· 服务器接收请求
· 生成响应
七、接受响应并解析
· 浏览器接收响应:
· 状态码(2xx成功、3xx重定向、4xx客户端错误、5xx服务端错误)
· 响应头(Content-Type、Cache-Control、Set-Cookie等)
· 响应体(HTML、CSS、JS等)
· 解析HTML
八、加载子资源
· 解析过程发现图片、CSS、JS等资源时,重新触发HTTP请求(可能复用TCP连接)
· 现代浏览器会通过预加载扫描器提前下载资源
九、渲染页面
· 布局,绘制,合成
十、连接关闭
· 通过TCP的四次挥手关闭连接








