httpRequest默认header
时间: 2025-03-24 10:10:38 浏览: 34
### HTTP 请求默认 Header 的详细解析
HTTP 请求中的 Headers 是客户端与服务器之间通信的重要组成部分,用于传递元数据信息。虽然具体的默认 Headers 可能因浏览器或工具的不同而有所差异,但通常情况下,以下是一些常见的默认 Headers:
#### 1. **General (通用头部)**
这些 Headers 提供关于请求的基本信息。
- `Host`: 表示目标资源所在的主机和端口号。例如,在访问 `https://www.example.com` 时,默认会发送 `Host: www.example.com`[^3]。
- `Connection`: 控制网络连接的行为。常见值有 `keep-alive` 和 `close`。现代浏览器一般设置为 `keep-alive` 来保持持久连接[^2]。
- `User-Agent`: 客户端的身份标识符,描述发起请求的应用程序的信息(如浏览器版本、操作系统等)。例如:`Mozilla/5.0 (Windows NT 10.0; Win64; x64)`。
#### 2. **Cache Control (缓存控制头部)**
这些 Headers 主要涉及缓存机制。
- `Accept-Encoding`: 告知服务器客户端支持的内容编码方式,比如 gzip 或 deflate。这有助于减少传输的数据量。例如:`Accept-Encoding: gzip, deflate`。
- `If-Modified-Since / If-None-Match`: 当前页面已缓存的情况下,通过这两个字段询问服务器是否有更新内容。如果没有变化,则返回状态码 304 Not Modified 而不重新下载整个文档。
#### 3. **Security and Privacy (安全性和隐私保护相关的头部)**
- `Referer`: 记录当前请求是从哪个URL跳转过来的。这对于分析流量来源很有帮助,但也可能带来一定的隐私风险。如果启用了 `Referrer-Policy`, 则可以根据策略决定是否发送 referer 信息。例如:`Referrer Policy: no-referrer-when-downgrade` 表明当协议降级到非 HTTPS 链接时不携带 referrer 数据。
- `Sec-Fetch-*` 系列: 新一代的安全增强型 headers,包括 Sec-Fetch-Dest、Sec-Fetch-Mode、Sec-Fetch-Site 和 Sec-Fetch-User。它们提供了更细粒度的操作意图说明以及跨站点行为指示器。
#### 4. **Content Negotiation (内容协商头部)**
- `Accept`: 描述了客户端能够处理或者期望接收回来的内容类型列表及其优先顺序。例如:`text/html,application/xhtml+xml;q=0.9,*/*;q=0.8` 表达的是首选 HTML 文档,其次是 XHTML,最后才是其他任何形式的内容。
- `Accept-Language`: 显示用户的语言偏好设定,从而让服务端提供相应本地化的响应体。例如:`en-US,en;q=0.5` 意味着美国英语是最优选项,但如果不可得的话也可以接受普通的英文版本。
需要注意的是,上述提到的所有默认 Headers 并不会自动出现在每一个单独发出的 httpRequest 中;实际包含哪些取决于具体场景需求以及所使用的库或框架配置情况。另外值得注意的一点是,对于 XMLHttpRequest 对象而言,某些特定类型的 headers 如 Authorization 不会被加入到默认集合里去除非显式指定[^1]。
```javascript
// 设置自定义 header 示例
var xhr = new XMLHttpRequest();
xhr.open('GET', '/example');
xhr.setRequestHeader('Authorization', 'Bearer token-value'); // 此处需手动添加 authorization header
xhr.send();
```
阅读全文
相关推荐


















