HTTP 协议中常见的请求头主要有:
- User-Agent:表示客户端的信息,告诉服务器客户端的设备类型、操作系统、浏览器等信息。
- Accept:表示客户端能够接受的内容类型,告诉服务器客户端可以处理的内容类型。
- Accept-Language:表示客户端可以接受的语言,告诉服务器客户端的语言环境。
- Accept-Encoding:表示客户端可以支持的编码格式,告诉服务器客户端可以处理的编码格式。
- Cookie:发送存储的 Cookie,用于客户端和服务器进行会话状态管理。
- Authorization:表示身份认证信息,用于在请求中提供身份认证凭证。
- Content-Type:表示请求体的 MIME 类型,告诉服务器实际发送的内容类型。
- Content-Length:表示请求体的大小,告诉服务器请求体的长度。
- Cache-Control:控制请求的缓存,可以指定请求是否从缓存中返回。
- X-Requested-With:表示请求类型,用于跨域 AJAX 请求。
这些请求头的主要作用是:
- 告知服务器客户端自身的信息(User-Agent、Accept、Accept-Language、Accept-Encoding)
- 发送身份验证和会话信息(Authorization、Cookie)
- 描述实际发送的请求内容(Content-Type、Content-Length)
- 支持缓存机制(Cache-Control)
- 标识 AJAX 请求(X-Requested-With)
举例:
GET / HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Cookie: username=John
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/x-www-form-urlencoded
Content-Length: 20
Cache-Control: no-cache
X-Requested-With: XMLHttpRequest
理解 HTTP 请求头及其语法和作用,可以让我们在开发过程中合理设置请求头,实现会话状态管理、缓存控制、 AJAX 请求等机制。