当前位置:首页 > 行业动态 > 正文

http请求消息头及应用案例

HTTP请求头含Host、User-Agent等字段,用于标识客户端与资源,应用如User-Agent判断设备类型,Content-Type定义数据格式,Cookie传递会话信息,实现个性化

HTTP请求消息头及应用案例

HTTP请求头

HTTP请求头(Request Headers)是客户端向服务器发送请求时附带的一组键值对,用于传递客户端环境、请求参数、资源标识等信息,服务器通过解析请求头,可以获取客户端信息、控制请求行为或返回特定资源。

http请求消息头及应用案例  第1张


常见HTTP请求头字段

请求头字段 作用 示例
Host 指定目标服务器的域名(必填) Host: example.com
User-Agent 标识客户端类型(浏览器、操作系统、版本等) User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept 告知服务器可处理的响应内容类型 Accept: text/html,application/json;q=0.9
Content-Type 描述请求体的数据格式(如POST提交数据) Content-Type: application/json
Authorization 携带认证凭证(如Bearer Token) Authorization: Bearer <token>
Cookie 发送服务器存储的Cookie信息 Cookie: sessionId=abc123; userId=789
Referer 表示请求来源的URL(隐私敏感) Referer: https://example.com/page
Origin 发起请求的源站点(用于跨域请求) Origin: https://example.com
Cache-Control 控制缓存行为(如禁用缓存) Cache-Control: no-cache
Range 指定请求资源的某个范围(用于断点续传) Range: bytes=1000-2000
Accept-Language 优先语言列表 Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
If-Modified-Since 仅请求更新后的资源 If-Modified-Since: Wed, 21 Oct 2023 07:28:00 GMT

典型应用案例

跨域请求(CORS)

  • 场景:前端向不同域名的API发起请求。
  • 涉及请求头
    • Origin:声明请求来源。
    • Access-Control-Allow-Origin(响应头):服务器允许的来源。
  • 示例
    GET /api/data HTTP/1.1
    Host: api.example.com
    Origin: https://mysite.com
  • 说明:服务器通过Access-Control-Allow-Origin决定是否允许跨域。

文件上传(Multipart Form-Data)

  • 场景:通过POST提交表单上传文件。
  • 涉及请求头
    • Content-Type: multipart/form-data
    • Boundary(分隔符,自动生成)。
  • 示例
    POST /upload HTTP/1.1
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
  • 说明multipart/form-data支持二进制数据传输,常用于文件上传。

缓存控制(Cache-Control)

  • 场景:强制浏览器不缓存资源(如动态数据)。
  • 涉及请求头
    • Cache-Control: no-cache
    • Pragma: no-cache(兼容旧版浏览器)。
  • 示例
    GET /data HTTP/1.1
    Cache-Control: no-cache
  • 说明:服务器返回200但附加Must-Revalidate,确保每次请求都重新验证。

API鉴权(Bearer Token)

  • 场景:调用需要身份验证的API接口。
  • 涉及请求头
    • Authorization: Bearer <token>
  • 示例
    GET /user/profile HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR...
  • 说明:服务器验证Token有效性后返回用户数据。

断点续传(Range)

  • 场景:下载大文件时从中断位置继续。
  • 涉及请求头

    `Range: bytes=

0