互联网协议 第2.2章 一次网络请求-过程 互联网协议 第2.2章 一次网络请求-过程

3小时前

一次完整的 HTTP 请求过程中,会涉及到多个步骤,从用户发起请求到接收响应,通常包括以下过程:

一、DNS 解析

当用户在浏览器中输入一个 URL 或点击一个链接时,首先需要将域名解析为 IP 地址。

浏览器会先查询本地缓存,如果没有找到,就会向 DNS 服务器发起查询请求,获取目标服务器的 IP 地址。

二、建立 TCP 连接

通过 DNS 解析到的 IP 地址,浏览器开始与目标服务器建立 TCP 连接。

这个过程涉及 TCP 三次握手,以确保客户端和服务器之间的连接已经准备好进行数据传输。

三、发送 HTTP 请求

一旦 TCP 连接建立,浏览器会构建一个 HTTP 请求报文,包含请求方法(如 GET、POST)、请求 URL、HTTP 版本、请求头部信息(如 User-Agent、Cookie 等)以及请求体(通常用于 POST 请求)。

浏览器将这个请求通过 TCP 连接发送到目标服务器。

四、服务器处理请求

服务器接收到 HTTP 请求后,首先解析请求报文,查看请求的资源和请求方法。

服务器根据请求的 URL 和请求方法,调用相应的程序或服务来处理请求。这可能涉及查询数据库、调用后台服务、读取文件等操作。

五、生成 HTTP 响应

服务器处理完成后,生成一个 HTTP 响应报文,包含响应状态码(如 200 OK、404 Not Found)、响应头部信息(如 Content-Type、Content-Length)、以及响应体(通常是请求的网页、数据等)。

服务器将这个响应报文通过 TCP 连接返回给客户端。

六、浏览器接收响应

浏览器接收到服务器的响应后,首先解析响应状态码,以确定请求是否成功。

然后浏览器会根据响应头部的信息来处理响应体,例如解码压缩内容、处理 cookies 等。

七、渲染页面

如果响应体是 HTML 页面,浏览器会解析 HTML 内容,并发起额外的 HTTP 请求来获取页面中的资源(如图片、CSS 文件、JavaScript 文件等)。

这些资源获取到后,浏览器会按照 HTML 文档的结构进行页面渲染,生成最终的用户界面。

八、关闭连接

在 HTTP/1.0 中,通常在请求完成后立即关闭 TCP 连接。

在 HTTP/1.1 中,引入了 持久连接(Keep-Alive)机制,允许同一连接复用多个请求,以减少开销。

九、后续操作

用户可能会在页面上进行进一步操作,如点击按钮、填写表单等,这些操作会触发新的 HTTP 请求,重复以上过程。

十、总结

在一次 HTTP 请求过程中,从域名解析、建立连接、发送请求、服务器处理、接收响应到最终渲染页面,每一步都在后台进行一系列复杂的操作,确保最终用户能够看到并交互所请求的内容。

阅读 6

互联网协议文章
带到手机上看