我的测试学习站TEST LEARNING HUB
开始学习
首页/精华文章/9. 接口测试中的请求头和响应头怎么看

9. 接口测试中的请求头和响应头怎么看

请求头和响应头是接口测试中非常重要但经常被忽略的部分。很多同学做接口测试只看 URL、参数和响应体,却忽略 Header。结果遇到登录失败、Token 没带、Content-Type 错误、Cookie 不生效、跨域失败、文件上传失败、缓存异常时,不知道从哪里查。实际上,很多接口问题并不在 Body,而在 Header。

面试中问“请求头和响应头怎么看”,面试官想知道你是否能通过 Header 分析鉴权、请求格式、会话、缓存、跨域、安全和链路追踪问题。测试岗位不需要背所有 Header,但常见 Header 必须知道,并且要能结合项目场景解释。

一、Header 在 HTTP 中的作用

HTTP 请求和响应都可以带 Header。

请求头用于告诉服务端:客户端是谁、请求格式是什么、是否有登录凭证、希望接收什么格式、来源是什么。

响应头用于告诉客户端:返回内容是什么格式、是否设置 Cookie、是否允许跨域、是否缓存、是否重定向、链路 ID 是什么。

接口测试时,Header 常常决定请求能不能被服务端正确识别。

二、常见请求头

1. Content-Type

表示请求体格式。常见值:

application/json
application/x-www-form-urlencoded
multipart/form-data

如果接口要求 JSON,但请求头写成 form,后端可能解析失败,返回 400 或业务错误。

文件上传通常使用 multipart/form-data。

2. Authorization

常用于 Token 鉴权。

Authorization: Bearer xxxxxx

如果缺失、格式错误或 Token 过期,接口可能返回 401。

浏览器会自动携带 Cookie,用于传统 Web 登录态、Session、用户偏好等。

Cookie: JSESSIONID=xxx

4. User-Agent

表示客户端类型,例如浏览器、App、脚本。

有些系统会根据 User-Agent 做兼容或风控。

5. Referer

表示请求来源页面。有些系统会用 Referer 做简单防盗链或安全校验。

6. Accept

表示客户端期望接收的响应格式。

Accept: application/json

7. TraceId / RequestId

有些系统会在请求头或响应头中放链路追踪 ID,用于日志排查。

三、常见响应头

1. Content-Type

表示响应体格式。如果接口返回 JSON,通常是:

Content-Type: application/json

如果返回文件,可能是 application/octet-stream 或其他类型。

服务端通过响应头设置 Cookie。

Set-Cookie: JSESSIONID=abc; HttpOnly; Secure

登录接口常需要关注它。

3. Location

重定向地址。302 响应中常见。

如果接口返回 302,要看 Location 指向哪里。

4. Cache-Control

控制缓存策略。

如果页面数据不刷新,可能和缓存头有关。

5. Access-Control-Allow-Origin

跨域相关响应头。前后端分离项目中常见。

如果浏览器跨域失败,接口可能实际有响应,但浏览器拦截了。

6. Content-Disposition

文件下载时常见,用来指定文件名。

Content-Disposition: attachment; filename="report.xlsx"

四、请求头在鉴权中的作用

登录态问题经常和 Header 有关。

Token 模式下,后续接口必须带:

Authorization: Bearer token

Session 模式下,后续请求通常带:

Cookie: JSESSIONID=xxx

如果接口返回 401,第一步就要看请求头中是否带了登录凭证。

如果返回 403,则说明可能已认证但无权限,还要结合角色和资源权限排查。

五、Content-Type 常见问题

1. JSON 接口请求头错误

接口要求 JSON:

Content-Type: application/json

但实际传了 form,后端可能收不到参数。

2. 文件上传请求头错误

文件上传一般是:

multipart/form-data

如果写成 JSON,后端无法解析文件。

3. 字符编码问题

中文乱码可能和编码、Content-Type、服务端解析有关。

六、响应头在测试中的作用

登录成功后,如果响应体成功但没有 Set-Cookie,后续页面可能仍未登录。

2. 302 跳转看 Location

未登录访问页面可能返回 302 到登录页。接口自动化如果没处理 302,可能误判。

3. 文件下载看 Content-Disposition

测试下载功能时,要验证文件名、文件类型和内容是否正确。

4. 缓存问题看 Cache-Control

列表数据不刷新时,可以查看是否被缓存。

5. 跨域问题看 CORS Header

前端跨域报错时,要看响应头是否允许当前 Origin、方法和 Header。

七、项目场景:接口返回 401

排查 Header:

  1. 是否带 Authorization;
  2. Token 是否有 Bearer 前缀;
  3. Token 是否过期;
  4. Cookie 是否丢失;
  5. 请求域名是否导致 Cookie 不携带;
  6. 跨域请求是否允许携带凭证。

不要只说“登录失效”,要用 Header 证明。

八、项目场景:POST 参数后端收不到

排查:

  1. 查看 Content-Type;
  2. 查看 Request Payload;
  3. 确认接口文档要求 JSON 还是 form;
  4. 确认字段名和类型;
  5. 查看后端日志。

很多“参数没传”其实是 Content-Type 错。

九、项目场景:跨域失败

浏览器控制台提示 CORS 错误时,接口可能在 Network 中看到请求,但浏览器拦截响应。

要看响应头:

  • Access-Control-Allow-Origin;
  • Access-Control-Allow-Methods;
  • Access-Control-Allow-Headers;
  • Access-Control-Allow-Credentials。

如果前端需要带 Cookie,还要允许 credentials,并且 Origin 不能随便是 *。

十、面试回答模板

如果面试官问“接口测试中请求头和响应头怎么看”,可以这样回答:

接口测试中 Header 很重要。请求头我重点看 Content-Type、Authorization、Cookie、User-Agent、Referer、Accept、TraceId 等。Content-Type 决定后端怎么解析请求体,Authorization 和 Cookie 关系到登录鉴权,TraceId 可以帮助查日志。响应头我会看 Content-Type、Set-Cookie、Location、Cache-Control、Access-Control-Allow-Origin、Content-Disposition 等。比如接口 401 时,我会先看请求头是否带 Token 或 Cookie;POST 参数解析失败时看 Content-Type;302 时看 Location;跨域失败时看 CORS 响应头;文件下载时看 Content-Disposition。

十一、常见追问

追问:Content-Type 有什么用?

告诉服务端请求体格式,比如 JSON、form、multipart。写错会导致参数解析失败。

可以。Token 常放 Authorization,传统 Session 常通过 Cookie 带 Session ID。

追问:302 看哪个响应头?

看 Location,表示重定向目标地址。

追问:跨域看哪些 Header?

看 Access-Control-Allow-Origin、Allow-Methods、Allow-Headers、Allow-Credentials。

十二、练习清单

  1. 抓包查看请求头;
  2. 抓包查看响应头;
  3. 修改 Content-Type 观察接口变化;
  4. 去掉 Authorization 观察 401;
  5. 查看登录接口 Set-Cookie;
  6. 查看 302 的 Location;
  7. 分析一次跨域问题;
  8. 分析一次文件下载响应头;
  9. 用 TraceId 查日志;
  10. 准备 Header 面试回答。

Header 是接口测试的关键证据。不要只看参数和响应体,很多鉴权、格式、缓存、跨域和文件问题都藏在请求头和响应头里。

配套刷题: