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)!