静态网页请求流程
静态网页的请求流程相对直接,涉及从客户端(通常是浏览器)向服务器发送请求,并接收返回的静态资源以显示网页内容。以下是这一过程的基本步骤:
用户发起请求:当用户在浏览器地址栏输入一个 URL 或者点击链接时,浏览器开始准备发起一个 HTTP(S)请求。这个请求的目标是获取指定的静态网页文件(例如 HTML 文件)。
DNS 解析:如果目标网站的 IP 地址没有被缓存,浏览器首先需要通过 DNS 查询将域名转换为对应的 IP 地址。这是找到托管所需网页的服务器的第一步。
建立 TCP 连接:一旦获取了服务器的 IP 地址,浏览器会与该服务器建立一个 TCP 连接。如果是 HTTPS 请求,则在此基础上还需进行 SSL/TLS 握手以确保通信安全。
发送 HTTP 请求:TCP 连接建立后,浏览器会发送一个 HTTP GET 请求到服务器,请求特定的资源(如 index.html)。这个请求包含了请求行(方法、路径、协议版本)、请求头部(包含各种信息如浏览器类型、支持的内容类型等),有时还会有请求体(对于 POST 请求)。
服务器处理请求并响应:服务器接收到请求后,根据请求的路径查找对应的文件。因为这是一个静态网页请求,服务器不需要执行任何后台逻辑来生成页面;它只需要读取存储在文件系统中的相应文件。
发送 HTTP 响应:服务器将找到的静态文件封装进 HTTP 响应中发送回给浏览器。这个响应包括状态行(状态码、状态消息)、响应头部(关于内容类型、长度等的信息)以及响应主体(实际的文件内容)。
浏览器渲染页面:浏览器接收到完整的响应后开始解析 HTML 文档。它会根据需要下载额外的资源(如 CSS 样式表、JavaScript 脚本和图片等),这些资源可能位于同一个或不同的服务器上。浏览器按照 HTML 文档结构、应用 CSS 样式,并执行 JavaScript 代码来构建最终呈现给用户的网页界面。
关闭连接:一旦所有必要的资源都被加载并且页面被成功渲染,TCP 连接可能会被关闭,除非使用了持久连接(Keep-Alive)技术,允许在同一连接上进行多个请求/响应循环以提高效率。
以上就是静态网页从请求发出到页面展示的整体流程。这个过程强调了浏览器如何通过网络与服务器交互,以获得所需的资源并将它们组合成可视化的网页。