简述完整HTTP事务过程

174 阅读2分钟

简述完整HTTP事务过程

一个完整的 HTTP 事务过程包括客户端与服务器之间的请求和响应交互。以下是 HTTP 事务的详细步骤:

1. 建立 TCP 连接

  • 步骤

    1. 客户端通过 DNS 查询获取服务器的 IP 地址。

    2. 客户端与服务器建立 TCP 连接(三次握手)。

    3. 如果是 HTTPS,还会进行 TLS 握手,建立加密通道。

  • 结果

    • 客户端与服务器之间建立可靠的网络连接。

2. 发送 HTTP 请求

  • 步骤

    1. 客户端构造 HTTP 请求报文,包括请求行、请求头和请求体。

    2. 请求行包含方法(如 GETPOST)、路径(如 /index.html)和协议版本(如 HTTP/1.1)。

    3. 请求头包含客户端信息(如 User-AgentAccept)、Cookie 等。

    4. 请求体包含需要发送的数据(如表单数据、JSON)。

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html

3. 服务器处理请求

  • 步骤

    1. 服务器解析请求报文,确定请求的资源和方法。

    2. 如果是静态资源(如 HTML、CSS、JS 文件),服务器直接读取文件内容。

    3. 如果是动态资源(如 PHP、Node.js),服务器执行相关代码并生成响应内容。

  • 结果

    • 服务器生成 HTTP 响应。

4. 返回 HTTP 响应

  • 步骤

    1. 服务器构造 HTTP 响应报文,包括状态行、响应头和响应体。

    2. 状态行包含协议版本(如 HTTP/1.1)、状态码(如 200)和状态消息(如 OK)。

    3. 响应头包含服务器信息(如 Server)、内容类型(如 Content-Type)等。

    4. 响应体包含返回的数据(如 HTML 内容、JSON 数据)。

HTTP/1.1 200 OK
Server: Apache
Content-Type: text/html
Content-Length: 1234

<html>...</html>

5. 客户端接收响应

  • 步骤

    1. 客户端接收响应报文,解析状态行、响应头和响应体。

    2. 根据状态码判断请求结果(如 200 表示成功,404 表示未找到)。

    3. 根据 Content-Type 处理响应体(如渲染 HTML、解析 JSON)。

  • 结果

    • 客户端获取到服务器返回的数据。

6. 关闭 TCP 连接

  • 步骤

    1. 如果是 HTTP/1.0,默认关闭连接。

    2. 如果是 HTTP/1.1,默认保持连接(Keep-Alive),可以复用连接发送多个请求。

    3. 客户端或服务器主动关闭连接(四次挥手)。

  • 结果

    • 客户端与服务器之间的连接关闭。

总结

一个完整的 HTTP 事务过程包括以下步骤:

  1. 建立 TCP 连接(包括 TLS 握手,如果是 HTTPS)。

  2. 客户端发送 HTTP 请求。

  3. 服务器处理请求并生成响应。

  4. 服务器返回 HTTP 响应。

  5. 客户端接收并处理响应。

  6. 关闭 TCP 连接。

这一过程涉及网络通信、协议解析和数据处理,是 Web 应用的基础。

更多vue相关插件及后台管理模板可访问vue admin reference,代码详情请访问github