跳转到主要内容
获取令牌时遇到问题吗
联系支持

浏览器 HTTP 标头

在解决 CAPTCHA 并向目标网站发送请求时,服务器可能会考虑 HTTP 标头、Cookie 以及浏览器会话的其他参数。如果这些数据缺失或彼此不一致,服务器可能会拒绝请求、重定向用户,或要求再次验证。

在同一会话中,建议保持以下参数一致:

  • User-Agent;
  • Client Hints;
  • Cookie;
  • 浏览器语言;
  • 代理(如使用);
  • 请求参数。
重要

请使用 CapMonster Cloud 当前支持的 User-Agent:

GET https://capmonster.cloud/api/useragent/actual

在打开页面、创建任务以及使用 CAPTCHA 解决结果时,都应传递该值。

更多相关内容,请访问我们的博客

标头的用途

标头用途
User-Agent浏览器和操作系统信息
Accept可接受的响应格式
Accept-Language首选语言
Accept-Encoding支持的压缩方式
Referer发起跳转的页面 URL
OriginPOST 和 CORS 请求中使用的请求来源
Cookie当前会话的 Cookie
Sec-CH-UA浏览器品牌和版本
Sec-CH-UA-Mobile移动端或桌面端模式
Sec-CH-UA-Platform浏览器平台
Sec-Fetch-Site请求来源与目标资源之间的关系
Sec-Fetch-Mode请求模式
Sec-Fetch-Dest请求资源的类型

应传递哪些标头

不存在通用的标头集合,具体取决于网站和请求类型。

通常会使用:

  • User-Agent;
  • Accept;
  • Accept-Language;
  • Client Hints;
  • 与请求对应的 Sec-Fetch-*

仅当 CookieRefererOrigin 出现在原始浏览器请求中,或当前会话确实需要时,才应传递这些标头。

不要手动设置:

  • Host;
  • Content-Length;
  • Transfer-Encoding;
  • Content-Encoding

这些值通常由 HTTP 客户端自动生成。

会话一致性

在同一会话中,如无必要,请不要更改:

  • User-Agent;
  • Sec-CH-UA;
  • Sec-CH-UA-Mobile;
  • Sec-CH-UA-Platform;
  • 语言;
  • 代理。

User-Agent 和 Client Hints 应描述同一个浏览器。

错误示例:

User-Agent: Chrome/150
Sec-CH-UA: "Google Chrome";v="140"

正确示例:

User-Agent: Chrome/150
Sec-CH-UA: "Chromium";v="150", "Google Chrome";v="150", "Not:A-Brand";v="99"

Cookie 也必须来自发送请求时使用的同一会话。

处理重定向

发生重定向时,请保持以下主要会话参数不变:

  • User-Agent;
  • Client Hints;
  • Cookie;
  • 语言;
  • 代理。

与上下文相关的标头可能会变化:

  • Referer 应对应上一页面;
  • Sec-Fetch-Site 取决于当前域名;
  • 收到 Set-Cookie 后应更新 Cookie;
  • 新 URL 的 Host 应由 HTTP 客户端生成。

不要手动向其他域名发送 Cookie 或授权标头。

获取标头

通过开发者工具

  1. 在浏览器中打开页面。
  2. F12 并切换到 Network 选项卡。
  3. 执行所需操作或重新加载页面。
  4. 选择对应的请求。
  5. Headers 选项卡中,从 Request Headers 部分复制相关值。

也可以使用 Copy as cURLCopy as fetch 命令复制请求。

发布示例前,请删除真实 Cookie、授权令牌以及其他敏感数据。

从浏览器会话中获取

使用浏览器自动化时,应从当前会话中获取标头和 Cookie。不要混用不同浏览器上下文中的数据。

可使用以下方式:

  • Playwright — 请求事件、request.headers() 方法或 HAR 录制。
  • Puppeteer — 网络请求处理器或 Chrome DevTools Protocol。
  • Selenium — Chrome DevTools Protocol 或其他网络工具。
  • ZennoPoster — 当前浏览器会话中的网络请求。
  • HAR 文件 — 请求数据,包括标头、Cookie 和请求正文。
  • 代理分析工具 — 查看 HTTP(S) 流量和实际发送的标头。
  • cURL — 重现并检查通过 DevTools 中 Copy as cURL 复制的请求。

建议使用活动浏览器会话中的标头,而不是手动构造。

浏览器指纹

网站不仅可能检查 HTTP 请求头,还可能考虑浏览器环境参数,例如屏幕分辨率、时区、Canvas、WebGL 以及其他特征。

您可以使用专业的在线诊断服务检查浏览器传输的数据。

标头集合示例

对于 HTML 页面请求,可以使用以下基础集合:

User-Agent: userAgentPlaceholder
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Sec-CH-UA: "Chromium";v="150", "Google Chrome";v="150", "Not:A-Brand";v="99"
Sec-CH-UA-Mobile: ?0
Sec-CH-UA-Platform: "Windows"

JSON 格式:

{
"headers": {
"User-Agent": "userAgentPlaceholder",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.9",
"Accept-Encoding": "gzip, deflate, br",
"Upgrade-Insecure-Requests": "1",
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "none",
"Sec-Fetch-User": "?1",
"Sec-CH-UA": "\"Chromium\";v=\"150\", \"Google Chrome\";v=\"150\", \"Not:A-Brand\";v=\"99\"",
"Sec-CH-UA-Mobile": "?0",
"Sec-CH-UA-Platform": "\"Windows\""
}
}
Sec-Fetch-*

Sec-Fetch-* 请求头的值取决于请求上下文。本示例中的值适用于直接打开页面;如果通过其他网站的链接跳转到该页面,这些值可能会有所不同。

解决 CAPTCHA 时的使用方式

在与目标网站交互的所有阶段,都应保持浏览器会话参数一致:

  1. 打开包含 CAPTCHA 的页面。
  2. 获取当前会话的 Cookie、标头和参数。
  3. 确定 CAPTCHA 参数,包括 websiteURLwebsiteKey 以及其他必填值。
  4. 在 CapMonster Cloud 中创建任务
  5. 获取解决结果
  6. 在同一会话中,将解决结果(例如令牌或 Cookie)发送到验证页面或目标网站 API。

将解决结果发送到 HTML 页面

请使用:

  • 相同的 User-Agent;
  • 匹配的 Client Hints;
  • 当前会话的 Cookie;
  • 相同的浏览器语言;
  • 相同的代理(如之前使用);
  • 原始请求中存在的 RefererOrigin

通过 API 发送解决结果

请使用原始 API 请求中的标头。

如果原始请求中没有 Sec-Fetch-UserUpgrade-Insecure-Requests 等浏览器导航标头,请不要额外添加。

请求顺序

GET /page

├─ Cookie 和 HTTP 标头
├─ CAPTCHA 参数


CapMonster Cloud

├─ 解决结果


POST /verify

├─ 当前会话的 Cookie
├─ 相同的 User-Agent
├─ 匹配的 Client Hints
├─ 当前的 Referer 和 Origin


目标网站响应
信息

通过 CAPTCHA 和其他安全验证时使用标头的示例:

常见错误

错误检查内容
仅传递了 User-Agent添加原始请求中的相关标头
使用了不同会话的数据从同一浏览器上下文中获取标头和 Cookie
User-AgentSec-CH-UA 不匹配统一浏览器版本和平台
发送了过期 Cookie重新获取 Cookie 或处理 Set-Cookie
API 请求中使用了 HTML 导航标头使用同类型请求中的标头
手动设置了 HostContent-Length删除这些标头,让 HTTP 客户端自动生成

如果请求失败,请将其与浏览器 Network 选项卡中的请求进行比较。检查 URL、方法、正文、Cookie、标头、代理以及重定向后的最终 URL。