1. DNS 域名解析
首先,浏览器需要知道 URL 中的域名(如 www.baidu.com
)对应的服务器 IP 地址。为此,浏览器通过 DNS(域名系统)查询该域名。浏览器先检查缓存(本地缓存或操作系统的缓存),如果没有找到,则通过 DNS 服务器查询,最终获取域名对应的 IP 地址。
过程如下
2. 建立 TCP 连接
通过 DNS 获取到服务器的 IP 地址后,浏览器与服务器通过三次握手建立可靠的 TCP 连接,确保双方都准备好传输数据。
三次握手详细流程请看:网络原理1-传输层
3. 发送 HTTP/HTTPS 请求
一旦建立了 TCP 连接,浏览器会根据HTTP 或 HTTPS发送请求。
如果是 HTTPS,浏览器会首先进行加密操作。然后,浏览器发送 HTTP 请求(如 GET 请求)到服务器,包含请求头信息,比如浏览器类型、用户身份信息、支持的文件格式等。
HTTP、HTTPS详细内容请看:网络原理3-应用层(HTTP/HTTPS)
4. 服务器处理请求
服务器接收到浏览器的 HTTP 请求后,根据请求的内容,处理后端逻辑、访问数据库、读取文件等操作,然后将所需的 HTML 页面、CSS、JavaScript 代码、图片或其他资源打包成 HTTP 响应发回给浏览器。
5. 浏览器接收响应并解析
浏览器接收到服务器的响应数据后,进行HTML解析、css解析、javascript执行、图像等资源加载,将页面展示到浏览器中