返回

理解 HTTP 协议(二):缓存与常见方法

前端

欢迎回到我的博客系列,今天我们将继续探讨 HTTP 协议。在上一篇博文中,我们讨论了 TCP 三次握手、HTTP 请求头和响应头、Content-Type 字段以及如何使用 Node.js 控制该字段。今天,我们将从 HTTP 状态码入手,探讨一些常用的 HTTP 方法和控制缓存。

常见的 HTTP 状态码

HTTP 状态码是一个由三位数字组成的代码,用于指示服务器对 HTTP 请求的响应状态。最常见的 HTTP 状态码有:

  • 200 OK:请求已成功处理,服务器已成功返回所请求的数据。
  • 400 Bad Request:请求中有语法错误或无法理解。
  • 401 Unauthorized:请求未附带适当的授权信息。
  • 403 Forbidden:服务器拒绝该请求,因为该请求所针对的资源是禁止访问的。
  • 404 Not Found:请求的资源不存在。
  • 500 Internal Server Error:服务器在处理请求时发生了意外错误。

HTTP 请求方法

HTTP 请求方法用于指定客户端请求服务器执行的具体操作。最常用的 HTTP 请求方法有:

  • GET:从服务器获取资源。
  • POST:向服务器发送数据。
  • PUT:更新服务器上的资源。
  • DELETE:从服务器上删除资源。

缓存控制

缓存控制是指服务器告诉客户端是否可以缓存响应以及如何缓存响应。这可以通过在 HTTP 响应头中设置 Cache-Control 字段来实现。

最常用的 Cache-Control 字段值有:

  • public:允许任何缓存(公共缓存和私有缓存)缓存该资源。
  • private:只允许私有缓存缓存该资源。
  • no-cache:不允许缓存该资源。
  • max-age=seconds:指定该资源在缓存中可以存储的最长时间,单位是秒。

举个例子

让我们举个例子来说明这些概念。假设我们有一个 API,该 API 可以获取所有用户的列表。当客户端向该 API 发送 GET 请求时,服务器可以返回以下 HTTP 响应:

HTTP/1.1 200 OK
Cache-Control: public, max-age=3600
Content-Type: application/json

[
  {
    "id": 1,
    "name": "John Doe"
  },
  {
    "id": 2,
    "name": "Jane Smith"
  }
]

这个响应表示服务器已成功处理了请求(HTTP 状态码为 200)并返回了所有用户的列表。Cache-Control 字段设置为 public 和 max-age=3600,这意味着该资源可以被任何缓存(公共缓存和私有缓存)缓存,并且在缓存中最多可以存储 3600 秒(1 小时)。Content-Type 字段设置为 application/json,表示响应的内容是 JSON 格式的。

希望本系列文章能够帮助您更好地理解 HTTP 协议。在下一篇文章中,我们将探讨 HTTP 安全性。