请求标头与响应标头

请求标头(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-OptionsContent-Security-Policy等。
  • 性能:合理设置缓存标头(如Cache-ControlExpires)以提高性能。
  • 兼容性:确保标头的设置不会影响客户端的兼容性。
posted @ 2025-05-27 15:56  yinghualeihenmei  阅读(284)  评论(0)    收藏  举报