当用户在浏览器地址栏输入一个 URL 并回车后,整个过程会经历DNS 域名解析、TCP 连接建立、HTTP/HTTPS 请求与响应、页面渲染等核心阶段,具体步骤如下:
浏览器解析 URL
浏览器首先会对输入的 URL 进行解析,拆解出 ** 协议(HTTP/HTTPS)、域名(如 www.baidu.com)、端口(默认 HTTP 80、HTTPS 443)、路径(如 /index.html)** 等信息。
同时会检查本地缓存(浏览器缓存、系统缓存),看是否有该域名对应的 IP 地址,若有则直接跳过 DNS 解析。
DNS 域名解析(获取服务器 IP)
若本地缓存无对应 IP,则发起 DNS 解析请求,流程为:
向本地 DNS 服务器发起请求;
本地 DNS 若没有记录,会逐级向根 DNS 服务器、顶级域 DNS 服务器(如 .com 服务器)、权威 DNS 服务器查询;
最终获取目标域名对应的服务器 IP 地址,并将结果缓存到本地。
建立 TCP 连接(三次握手)
浏览器通过获取到的 IP 地址,与目标服务器发起 TCP 连接,通过三次握手建立可靠连接:
客户端发送 SYN 报文,请求建立连接;
服务器返回 SYN+ACK 报文,确认客户端请求;
客户端发送 ACK 报文,连接正式建立。
注:如果是 HTTPS 协议,此时还会额外进行 TLS/SSL 握手,完成身份验证和数据加密密钥协商。
发送 HTTP/HTTPS 请求
连接建立后,浏览器会按照 HTTP 协议规范,向服务器发送请求报文,包含请求方法(GET/POST 等)、请求头(Cookie、User-Agent 等)、请求体(POST 请求时携带参数)等内容。
服务器处理请求并返回响应
服务器接收请求报文后,解析其中的信息,根据路径和参数处理业务逻辑(如查询数据库、读取静态文件);
处理完成后,服务器向浏览器返回响应报文,包含状态码(200 成功、404 资源不存在等)、响应头(Content-Type、Cache-Control 等)、响应体(HTML/CSS/JS 等页面资源)。
关闭 TCP 连接(四次挥手)
当数据传输完成后,客户端和服务器会通过四次挥手关闭 TCP 连接(若请求头包含 Connection: keep-alive,则连接会被复用,不立即关闭)。
浏览器解析并渲染页面
浏览器接收到响应体中的 HTML 后,开始解析和渲染:
解析 HTML:构建 DOM 树(文档对象模型);
解析 CSS:构建 CSSOM 树(CSS 对象模型);
合成渲染树:将 DOM 树和 CSSOM 树结合,生成渲染树;
布局(回流):计算渲染树中节点的位置和大小;
绘制(重绘):将布局后的节点绘制到浏览器窗口;
若页面中有 JS 文件,会阻塞渲染(可通过 defer/async 属性优化),同时还会请求图片、视频等静态资源,重复上述部分流程。
页面加载完成
当所有资源加载完毕,浏览器触发 load 事件,页面完全呈现给用户。
阳泉市网站建设_网站建设公司_腾讯云_seo优化