Перейти к основному содержимому
Возникают проблемы с получением токена?
Свяжитесь с поддержкой

Браузерные HTTP-заголовки

При решении CAPTCHA и отправке запросов к целевому сайту сервер может учитывать HTTP-заголовки, cookies и другие параметры браузерной сессии. Если они отсутствуют или не согласованы между собой, сервер может отклонить запрос, перенаправить пользователя или запросить повторную проверку.

В рамках одной сессии рекомендуется сохранять:

  • User-Agent;
  • Client Hints;
  • cookies;
  • язык браузера;
  • прокси, если он используется;
  • параметры запросов.
Важно

Используйте актуальный User-Agent, поддерживаемый CapMonster Cloud:

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

Передавайте его при открытии страницы, создании задачи и использовании результата решения CAPTCHA.

Ещё больше по теме в нашем блоге

Назначение заголовков

ЗаголовокНазначение
User-AgentИнформация о браузере и операционной системе
AcceptДопустимые форматы ответа
Accept-LanguageПредпочитаемые языки
Accept-EncodingПоддерживаемые способы сжатия
RefererURL страницы, с которой выполнен переход
OriginИсточник запроса, используемый в POST- и CORS-запросах
CookieCookies текущей сессии
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-*.

Заголовки Cookie, Referer и Origin передавайте только тогда, когда они присутствуют в исходном браузерном запросе или необходимы для текущей сессии.

Не задавайте вручную:

  • 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"

Cookies также должны быть получены в той же сессии, в которой выполняется запрос.

Работа с редиректами

При редиректах сохраняйте базовые параметры сессии:

  • User-Agent;
  • Client Hints;
  • cookies;
  • язык;
  • прокси.

Контекстные заголовки могут изменяться:

  • Referer должен соответствовать предыдущей странице;
  • Sec-Fetch-Site зависит от текущего домена;
  • cookies необходимо обновлять после Set-Cookie;
  • Host должен формироваться HTTP-клиентом для нового URL.

Не передавайте cookies и заголовки авторизации на другой домен вручную.

Получение заголовков

Через Инструменты разработчика

  1. Откройте страницу в браузере.
  2. Нажмите F12 и перейдите на вкладку Network.
  3. Выполните нужное действие или перезагрузите страницу.
  4. Выберите соответствующий запрос.
  5. На вкладке Headers скопируйте значения из раздела Request Headers.

Запрос также можно скопировать с помощью команд Copy as cURL или Copy as fetch.

Перед публикацией примеров удаляйте реальные cookies, токены авторизации и другие чувствительные данные.

Из браузерной сессии

При работе с браузерной автоматизацией получайте заголовки и cookies из текущей сессии. Не объединяйте данные из разных браузерных контекстов.

Для этого можно использовать:

  • Playwright – события запросов, метод request.headers() или запись HAR.
  • Puppeteer – обработчики сетевых запросов или Chrome DevTools Protocol.
  • Selenium – Chrome DevTools Protocol или дополнительные сетевые инструменты.
  • ZennoPoster – сетевые запросы текущей браузерной сессии.
  • HAR-файл – данные о запросах, включая заголовки, cookies и тело запроса.
  • Прокси-анализатор – просмотр HTTP(S)-трафика и фактически отправленных заголовков.
  • cURL – воспроизведение и проверка запроса, скопированного из DevTools с помощью Copy as cURL.

Рекомендуется использовать заголовки из активной браузерной сессии, а не формировать их вручную.

Браузерный fingerprint

Сайт может учитывать не только 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. Получите cookies, заголовки и параметры текущей сессии.
  3. Определите параметры CAPTCHA, включая websiteURL, websiteKey и другие обязательные значения.
  4. Создайте задачу в CapMonster Cloud.
  5. Получите результат решения.
  6. Передайте результат решения (например, токен или cookies) на страницу проверки или в API целевого сайта в рамках той же сессии.

Передача результата решения на HTML-страницу

Используйте:

  • тот же User-Agent;
  • соответствующие Client Hints;
  • cookies текущей сессии;
  • тот же язык браузера;
  • тот же прокси, если он использовался;
  • Referer и Origin, если они присутствовали в исходном запросе.

Передача результата решения через API

Используйте заголовки исходного API-запроса.

Не добавляйте заголовки браузерной навигации, например Sec-Fetch-User и Upgrade-Insecure-Requests, если их не было в исходном запросе.

Последовательность запросов

GET /page

├─ cookies и HTTP-заголовки
├─ параметры CAPTCHA


CapMonster Cloud

├─ результат решения


POST /verify

├─ cookies текущей сессии
├─ тот же User-Agent
├─ соответствующие Client Hints
├─ актуальные Referer и Origin


ответ целевого сайта
к сведению

Примеры использования заголовков при прохождении CAPTCHA и других защитных проверок:

Типичные ошибки

ОшибкаЧто проверить
Передан только User-AgentДобавьте значимые заголовки из исходного запроса
Используются данные разных сессийПолучайте заголовки и cookies из одного браузерного контекста
User-Agent не совпадает с Sec-CH-UAСогласуйте версии браузера и платформу
Передаются устаревшие cookiesПолучите cookies повторно или обработайте Set-Cookie
Заголовки HTML-навигации используются для APIИспользуйте заголовки из запроса того же типа
Вручную задан Host или Content-LengthУдалите заголовок, чтобы HTTP-клиент сформировал его автоматически

Если запрос завершается ошибкой, сравните его с браузерным запросом во вкладке Network. Проверьте URL, метод, тело, cookies, заголовки, прокси и конечный URL после редиректов.