说一说http常见的请求头有哪些?都有什么作用?

2024-07-25 08:37:33 128
HTTP 请求头(Request Headers)是客户端发送给服务器的额外信息,用于描述请求的资源或客户端本身。常见的 HTTP 请求头有很多,每一个都有其特定的功能。以下是一些常见的 HTTP 请求头及其作用:

1. General Headers(通用请求头)

  • Host

    • 作用:指定要访问的主机及端口号,用于定位请求的服务器。
    • 示例: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,*/*;q=0.8
  • Accept-Encoding

    • 作用:告知服务器客户端支持的内容编码(如压缩方式)。
    • 示例:Accept-Encoding: gzip, deflate, br
  • Accept-Language

    • 作用:告知服务器客户端支持的语言。
    • 示例:Accept-Language: en-US,en;q=0.5
  • Cache-Control

    • 作用:指定请求和响应遵循的缓存机制。
    • 示例:Cache-Control: no-cache
  • Connection

    • 作用:控制当前连接的使用情况,如是否保持连接。
    • 示例:Connection: keep-alive

2. Request Headers(请求头)

  • Authorization

    • 作用:包含客户端提供的认证信息,用于验证用户身份。
    • 示例:Authorization: Basic dXNlcjpwYXNzd29yZA==
  • Content-Type

    • 作用:说明请求体的内容类型,如表单数据、JSON 等。
    • 示例:Content-Type: application/json
  • Content-Length

    • 作用:表示请求体的字节长度。
    • 示例:Content-Length: 348
  • Cookie

    • 作用:向服务器发送存储在客户端的 Cookie 信息。
    • 示例:Cookie: sessionId=abc123; theme=light
  • Referer

    • 作用:告知服务器客户端从哪个 URL 来的,用于防止 CSRF 攻击或记录流量来源。
    • 示例:Referer: https://www.google.com/
  • Origin

    • 作用:指出请求来源的域名、协议和端口,用于 CORS(跨域资源共享)。
    • 示例:Origin: https://www.example.com
  • Range

    • 作用:请求资源的某个范围的字节,常用于断点续传。
    • 示例:Range: bytes=500-999
  • If-Modified-Since

    • 作用:请求服务器仅在资源自指定日期后有更改时才返回资源,用于缓存验证。
    • 示例:If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT
  • If-None-Match

    • 作用:同 If-Modified-Since 类似,用于判断资源是否被修改,基于 ETag 值。
    • 示例:If-None-Match: "5d8c72a5f7e68e3ed89c71b3"

3. Security Headers(安全请求头)

  • Strict-Transport-Security

    • 作用:强制客户端(如浏览器)使用 HTTPS 访问服务器,防止降级攻击。
    • 示例:Strict-Transport-Security: max-age=31536000; includeSubDomains
  • X-Requested-With

    • 作用:主要用于识别 AJAX 请求,防止 CSRF 攻击。
    • 示例:X-Requested-With: XMLHttpRequest

这些请求头帮助服务器理解客户端的能力、期望、权限等,并确保客户端和服务器之间的通信安全、有效。不同的请求头在不同的场景下有不同的使用方式,了解它们有助于开发更加安全和高效的应用程序。