自学内容网 自学内容网

HTTP请求和响应中,Headers(头信息)

在HTTP请求和响应中,Headers(头信息)用于传递客户端和服务器之间的附加信息。它们帮助描述数据的格式、权限、缓存策略等。以下是一些常见的HTTP Headers:

1. 常见请求头 (Request Headers)

  • Authorization: 包含认证信息,用于身份验证(例如:Authorization: Bearer <token>)。
  • Accept: 指定客户端希望接收的数据类型(例如:Accept: application/json)。
  • Accept-Language: 指定客户端期望的语言(例如:Accept-Language: en-US)。
  • Accept-Encoding: 指定客户端支持的内容编码类型(例如:Accept-Encoding: gzip, deflate)。
  • User-Agent: 标识客户端应用程序、操作系统、设备等信息。
  • Content-Type: 指定请求正文的MIME类型(例如:Content-Type: application/json)。
  • Cookie: 向服务器发送存储在客户端的Cookie。
  • Referer: 指定从哪个页面跳转到当前请求的页面(可能用于追踪来源)。
  • Origin: 指定请求的来源,用于跨域请求(CORS)验证。

2. 常见响应头 (Response Headers)

  • Content-Type: 指定响应正文的MIME类型(例如:Content-Type: text/html; charset=UTF-8)。
  • Content-Length: 指定响应正文的字节长度。
  • Set-Cookie: 服务器向客户端设置Cookie信息(例如:Set-Cookie: sessionId=abc123; HttpOnly)。
  • Location: 用于重定向请求,指定新的URL(例如:Location: https://example.com/newpage)。
  • Cache-Control: 指定缓存策略(例如:Cache-Control: no-cache, no-store, must-revalidate)。
  • Expires: 指定响应内容的过期时间,用于缓存控制。
  • Last-Modified: 指定资源的最后修改时间,用于缓存。
  • ETag: 为资源提供唯一标识符,帮助实现缓存和条件请求。
  • Server: 表示服务器软件的信息(例如:Server: Apache/2.4.1)。

3. 常用通用头(请求/响应通用)

  • Date: 指示消息生成的日期和时间。
  • Connection: 控制连接的行为(例如:Connection: keep-alive)。
  • Transfer-Encoding: 用于指定数据的传输编码(例如:Transfer-Encoding: chunked)。
  • Upgrade: 用于将当前HTTP连接升级为另一个协议(例如:Upgrade: websocket)。
  • Via: 指示请求通过的中间代理服务器信息。

4. 安全相关头 (Security Headers)

  • Strict-Transport-Security (HSTS): 强制客户端与服务器通过HTTPS通信(例如:Strict-Transport-Security: max-age=31536000; includeSubDomains)。
  • Content-Security-Policy (CSP): 限制网页可以加载的资源类型和来源,增强安全性(例如:Content-Security-Policy: default-src 'self')。
  • X-Content-Type-Options: 防止浏览器对MIME类型进行嗅探,确保安全(例如:X-Content-Type-Options: nosniff)。
  • X-Frame-Options: 防止网页被嵌入到iframe中,避免点击劫持(例如:X-Frame-Options: DENY)。
  • X-XSS-Protection: 启用浏览器的XSS防护(例如:X-XSS-Protection: 1; mode=block)。

5. CORS (跨域资源共享) 相关头

  • Access-Control-Allow-Origin: 指定允许访问资源的域(例如:Access-Control-Allow-Origin: *)。
  • Access-Control-Allow-Methods: 指定允许的HTTP方法(例如:Access-Control-Allow-Methods: GET, POST)。
  • Access-Control-Allow-Headers: 指定允许的请求头(例如:Access-Control-Allow-Headers: Content-Type, Authorization)。
  • Access-Control-Allow-Credentials: 是否允许发送身份验证凭据(例如:Access-Control-Allow-Credentials: true)。

这些头信息在客户端和服务器之间传递不同的信息和控制选项,帮助实现更高效、安全的数据交换。


原文地址:https://blog.csdn.net/weixin_40566713/article/details/143501135

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!