常见HTTP请求头及其作用

2025/3/10
本文详细介绍了如Host、User - Agent等多种常见HTTP请求头的作用、示例及说明,阐述了它们在客户端与服务器交互中的重要性。
各种HTTP请求头名称及对应的作用、示例的可视化图表,如用表格形式展示不同请求头及其相关信息的图片

HTTP 请求头(Request Headers)是客户端(如浏览器)向服务器发送请求时附带的信息,用于传递请求的元数据、客户端信息、内容类型等。以下是一些常见的 HTTP 请求头及其作用:

1. Host

  • 作用: 指定请求的目标服务器的主机名和端口号。
  • 示例: Host: www.example.com:8080
  • 说明: 在 HTTP/1.1 中,Host 是必需的,因为一个服务器可能托管多个域名。

2. 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
  • 说明: 服务器可以根据 User-Agent 返回不同的内容(如移动端和桌面端的页面)。

3. Accept

  • 作用: 指定客户端能够处理的 MIME 类型(如 text/html, application/json 等)。
  • 示例: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
  • 说明: 服务器可以根据 Accept 返回最适合客户端的内容类型。

4. Accept-Language

  • 作用: 指定客户端偏好的语言。
  • 示例: Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7
  • 说明: 服务器可以根据 Accept-Language 返回不同语言的资源。

5. Accept-Encoding

  • 作用: 指定客户端支持的压缩算法(如 gzip, deflate 等)。
  • 示例: Accept-Encoding: gzip, deflate, br
  • 说明: 服务器可以根据 Accept-Encoding 对响应内容进行压缩,以减少传输数据量。

6. Content-Type

  • 作用: 指定请求体的 MIME 类型(如 application/json, application/x-www-form-urlencoded 等)。
  • 示例: Content-Type: application/json
  • 说明: 服务器根据 Content-Type 解析请求体的数据格式。

7. Content-Length

  • 作用: 指定请求体的字节长度。
  • 示例: Content-Length: 348
  • 说明: 用于告知服务器请求体的大小,通常在 POST 或 PUT 请求中使用。

8. Authorization

  • 作用: 包含用于身份验证的凭证(如 Bearer Token、Basic Auth 等)。
  • 示例: Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
  • 说明: 用于访问需要身份验证的资源。

9. Cookie

  • 作用: 包含客户端存储的 Cookie 信息。
  • 示例: Cookie: sessionId=abc123; userId=456
  • 说明: 服务器可以通过 Cookie 识别客户端的状态(如登录状态)。

10. Referer

  • 作用: 指示当前请求是从哪个 URL 发起的。
  • 示例: Referer: https://www.example.com/page1
  • 说明: 常用于统计来源流量或防止 CSRF 攻击。

11. Cache-Control

  • 作用: 控制缓存行为(如 no-cache, max-age 等)。
  • 示例: Cache-Control: no-cache
  • 说明: 客户端或代理服务器可以根据 Cache-Control 决定是否缓存响应。

12. If-Modified-Since

  • 作用: 指定资源的最后修改时间,用于条件请求。
  • 示例: If-Modified-Since: Wed, 21 Oct 2023 07:28:00 GMT
  • 说明: 如果资源未修改,服务器可以返回 304 Not Modified,减少数据传输。

13. If-None-Match

  • 作用: 指定资源的 ETag,用于条件请求。
  • 示例: If-None-Match: "abc123"
  • 说明: 如果资源的 ETag 匹配,服务器可以返回 304 Not Modified

14. Origin

  • 作用: 指示请求的来源(协议 + 域名 + 端口),用于 CORS 请求。
  • 示例: Origin: https://www.example.com
  • 说明: 服务器根据 Origin 决定是否允许跨域请求。

15. Connection

  • 作用: 控制连接行为(如 keep-alive, close 等)。
  • 示例: Connection: keep-alive
  • 说明: 用于优化 HTTP 连接的复用。

16. Upgrade-Insecure-Requests

  • 作用: 指示客户端希望将 HTTP 请求升级为 HTTPS。
  • 示例: Upgrade-Insecure-Requests: 1
  • 说明: 常用于提高安全性。

17. X-Requested-With

  • 作用: 标识请求是通过 AJAX 发起的。
  • 示例: X-Requested-With: XMLHttpRequest
  • 说明: 服务器可以根据此头判断请求是否为异步请求。

18. DNT (Do Not Track)

  • 作用: 指示客户端是否希望禁用跟踪。
  • 示例: DNT: 1
  • 说明: 服务器可以根据此头决定是否收集用户数据。

19. Sec-Fetch- 系列头*

  • 作用: 提供关于请求的上下文信息(如 Sec-Fetch-Mode, Sec-Fetch-Site 等)。
  • 示例: Sec-Fetch-Mode: cors
  • 说明: 用于增强浏览器的安全策略。

20. Range

  • 作用: 指定请求资源的范围(用于断点续传或分块下载)。
  • 示例: Range: bytes=0-499
  • 说明: 服务器可以返回部分内容(206 Partial Content)。

总结

HTTP 请求头在客户端与服务器的交互中扮演着重要角色,它们不仅传递了请求的元数据,还支持缓存、身份验证、内容协商等功能。合理使用请求头可以优化性能、增强安全性,并改善用户体验。

标签:HTTP
上次更新:

相关文章

Node-Cache 完全指南 | Node.js 内存缓存模块使用教程

本文详细介绍了 Node-Cache 模块,这是一个简单高效的 Node.js 内存缓存解决方案,包括安装方法、基本使用、主要功能、高级特性、配置选项以及实际应用场景。

·前端开发

npx完全指南:前端开发必备工具详解 | 20年架构师深度解析

本文由20年前端架构师深入解析npx工具,涵盖其核心功能、优势、高级用法、最佳实践及与npm/yarn的区别比较,帮助开发者掌握这一现代前端开发利器。

·前端开发

<处理关联数据的最佳实践:Article 与 Tags 的关系 | 开发指南>

<本文详细介绍了在开发中处理关联数据(如 Article 和 Tags 的多对多关系)的最佳实践,包括拆分业务逻辑、使用事务保证数据一致性、合理设计关联表结构、批量操作、幂等性和乐观锁等关键要点,并提供了基于 mysql2 和 Sequelize 的代码示例。>

·后端开发

Astro 静态站点生成器:构建高性能网站的最佳选择

Astro 是一个专注于构建快速、轻量级网站的静态站点生成器,支持多种前端框架,采用岛屿架构减少 JavaScript 加载,提升性能。

·前端开发

MySQL外键约束详解:维护数据一致性与完整性

本文详细介绍了MySQL中的外键约束(Foreign Key Constraint),包括其基本概念、创建方法、作用、级联操作、限制、修改与删除方法、查看方式以及最佳实践。通过合理使用外键约束,可以有效管理数据库中的数据关系,确保数据的准确性和可靠性。

·后端开发

MySQL JSON数据类型支持与使用指南 | 详细解析与示例

本文详细解析了MySQL从5.7版本开始支持的JSON数据类型,包括版本支持、创建JSON字段、插入与查询JSON数据、修改JSON数据、生成JSON、索引优化、性能与应用场景、注意事项及示例全流程。

·后端开发

SQL JOIN、LEFT JOIN 和 RIGHT JOIN 的区别与应用场景详解

本文详细介绍了 SQL 中 JOIN、LEFT JOIN 和 RIGHT JOIN 的区别,包括它们的作用、语法、示例以及实际应用场景,帮助读者更好地理解和使用这些连接方式。

·后端开发

Weex 跨平台移动开发框架:核心特性与使用指南

Weex 是由阿里巴巴开源的跨平台移动开发框架,支持使用 Vue.js 或 Rax 构建高性能的 iOS、Android 和 Web 应用。本文详细解析了 Weex 的核心特性、架构、工作流程、组件和模块、开发工具、优缺点、应用场景及未来发展。

·前端开发

ECharts 与 DataV 数据可视化工具对比分析 | 选择指南

本文详细对比了 ECharts 和 DataV 两个常用的数据可视化工具,包括它们的设计目标、优缺点、使用场景和技术栈,帮助读者根据具体需求选择合适的工具。

·前端开发

前端部署后通知用户刷新页面的常见方案 | 单页应用更新提示

本文介绍了在前端部署后通知用户刷新页面的几种常见方案,包括WebSocket实时通知、轮询检查版本、Service Worker版本控制、版本号对比、自动刷新、使用框架内置功能以及第三方库。每种方案的优缺点和示例代码均有详细说明。

·前端开发