HTTP 请求头和响应头的重要字段

HTTP Request Header 和 Response Header 中的常用字段说明

问题

HTTP Request Header 和 Response Header 里面分别都有哪些比较重要的字段?

解答

通用首部字段

请求报文和响应报文都会使用的首部字段:

Cache-Control:控制缓存机制,指定是否可以缓存及缓存类型

Cache-Control: no-cache
Cache-Control: max-age=3600

Connection:控制连接是否保持持久化

Connection: keep-alive
Connection: close

Transfer-Encoding:指定文件传输编码方式

Transfer-Encoding: chunked

Request Header(请求头)

Accept:客户端能够接收的内容类型,按优先级排序

Accept: text/html, application/json, */*

Range:请求实体的字节范围,用于断点续传

Range: bytes=0-1023

Authorization:Web 认证信息

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Host:请求资源所在的服务器域名

Host: www.example.com

User-Agent:客户端程序信息

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0

Response Header(响应头)

Location:重定向的目标 URI

Location: https://www.example.com/new-page

ETag:资源的唯一标识字符串,用于缓存验证

ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"

Server:服务器信息

Server: nginx/1.20.1

实体首部字段

Last-Modified:资源的最后修改时间

Last-Modified: Wed, 21 Oct 2024 07:28:00 GMT

Expires:响应过期的日期和时间

Expires: Thu, 01 Dec 2024 16:00:00 GMT

Allow:资源支持的 HTTP 方法,不允许时返回 405

Allow: GET, POST, HEAD

Content-Type:返回内容的媒体类型

Content-Type: text/html; charset=utf-8
Content-Type: application/json

关键点

  • 通用首部字段(Cache-Control、Connection)在请求和响应中都可使用
  • 请求头主要包含客户端信息(User-Agent)、接受类型(Accept)和认证信息(Authorization)
  • 响应头主要包含服务器信息(Server)、重定向(Location)和资源标识(ETag)
  • 实体首部字段描述资源本身的属性,如内容类型(Content-Type)和修改时间(Last-Modified)