请求标头与响应标头
请求标头(Request Headers)与响应标头(Response Headers)
1. 请求标头(Request Headers)
请求标头是客户端(如浏览器)在向服务器发送HTTP请求时附加的一组键值对。这些标头提供了关于请求的额外信息,帮助服务器更好地处理请求。常见的请求标头包括:
-
Host:指定被请求资源的Internet主机和端口号。Host: www.example.com -
User-Agent:包含有关请求发起者的软件信息。User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 -
Accept:告知服务器客户端可以处理的内容类型。Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 -
Accept-Language:告知服务器客户端偏好的语言。Accept-Language: en-US,en;q=0.9 -
Accept-Encoding:告知服务器客户端可以接受的编码方式。Accept-Encoding: gzip, deflate, br -
Authorization:用于向服务器提供认证信息。Authorization: Basic QWxhZGprakdFRF93ZWJhcHBzX2Rldi4xLjA6cGFzc3dvcmQ= -
Content-Type:告知服务器请求体的媒体类型。Content-Type: application/json -
Content-Length:请求体的长度。Content-Length: 123 -
Referer:告知服务器请求的来源页面。Referer: https://www.example.com/page -
Cookie:发送存储在客户端的Cookie信息。Cookie: sessionid=123456789; username=johndoe
2. 响应标头(Response Headers)
响应标头是服务器在向客户端发送HTTP响应时附加的一组键值对。这些标头提供了关于响应的额外信息,帮助客户端更好地处理响应。常见的响应标头包括:
-
Content-Type:告知客户端响应体的媒体类型。Content-Type: text/html; charset=UTF-8 -
Content-Length:响应体的长度。Content-Length: 1234 -
Content-Encoding:告知客户端响应体的编码方式。Content-Encoding: gzip -
Content-Language:告知客户端响应的语言。Content-Language: en-US -
Content-Disposition:告知客户端如何处理响应体,常用于文件下载。Content-Disposition: attachment; filename="example.txt" -
Set-Cookie:用于设置客户端的Cookie。Set-Cookie: sessionid=123456789; Path=/; HttpOnly -
Location:用于重定向客户端到另一个URL。Location: https://www.example.com/newpage -
Cache-Control:控制缓存行为。Cache-Control: no-cache, no-store, must-revalidate -
Expires:指定响应的过期时间。Expires: 0 -
Last-Modified:告知客户端资源的最后修改时间。Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT -
ETag:用于资源的版本控制。ETag: "123456789" -
Access-Control-Allow-Origin:用于跨域资源共享(CORS)。Access-Control-Allow-Origin: * -
X-Frame-Options:用于防止点击劫持。X-Frame-Options: SAMEORIGIN -
Content-Security-Policy:用于增强内容安全。Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';
3. 示例
以下是一个完整的HTTP请求和响应示例:
请求
GET /path HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br
Cookie: sessionid=123456789; username=johndoe
响应
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 1234
Content-Encoding: gzip
Content-Language: en-US
Set-Cookie: sessionid=987654321; Path=/; HttpOnly
Cache-Control: no-cache, no-store, must-revalidate
Expires: 0
Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT
ETag: "123456789"
Access-Control-Allow-Origin: *
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';
4. 注意事项
-
安全性:确保设置适当的标头以增强安全性,如
X-Frame-Options、Content-Security-Policy等。 -
性能:合理设置缓存标头(如
Cache-Control、Expires)以提高性能。 -
兼容性:确保标头的设置不会影响客户端的兼容性。
浙公网安备 33010602011771号