HTTP协议中常见的响应头有哪些?各有什么作用?

HTTP 协议中常见的响应头主要有:

  1. Content-Type:表示响应体的 MIME 类型,告诉客户端实际返回的内容类型。
  2. Content-Length:表示响应体的大小,告诉客户端响应体的长度。
  3. Content-Encoding:表示响应体的编码格式,告诉客户端对响应体进行解码的方式。
  4. Content-Language:表示响应体的语言,告诉客户端响应体的语言。
  5. Content-Disposition:表示响应体的展示方式,inline 表示直接展示,attachment 表示以附件形式下载。
  6. Cache-Control:控制缓存的行为,可以指定响应是否可以缓存及缓存时间等。
  7. Expires:指明响应过期的时间,在这个时间之前响应可以被缓存。
  8. Last-Modified:指明资源的最后修改时间,用于验证缓存是否过期。
  9. Location:重定向时指明新的 URI,用于告知客户端重新定向的位置。
  10. Set-Cookie:设置 Cookie,用于告知客户端设置新的 Cookie。

这些响应头的主要作用是:

  1. 告知客户端实际返回的内容(Content-Type、Content-Length 等)
  2. 支持缓存机制(Cache-Control、Expires、Last-Modified)
  3. 允许重定向(Location)
  4. 设置 Cookie(Set-Cookie)
  5. 支持内容的各种表现形式(Content-Disposition、Content-Encoding、Content-Language)

举例:

HTTP/1.1 200 OK  
Content-Type: text/html; charset=utf-8  
Content-Length: 1024  
Cache-Control: max-age=60  
Expires: Thu, 01 Dec 2020 16:00:00 GMT  
Last-Modified: Wed, 30 Nov 2020 16:00:00 GMT  
Location: https://example.com/  
Set-Cookie: username=John; Max-Age=60

所以,理解 HTTP 响应头及其语法和作用,可以让我们在开发过程中合理设置响应头,实现缓存、重定向、 Cookie 等机制。