Браузерные 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 | Поддерживаемые способы сжатия |
Referer | URL страницы, с которой выполнен переход |
Origin | Источник запроса, используемый в POST- и CORS-запросах |
Cookie | Cookies текущей сессии |
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 и заголовки авторизации на другой домен вручную.
Получение заголовков
Через Инструменты разработчика
- Откройте страницу в браузере.
- Нажмите F12 и перейдите на вкладку Network.
- Выполните нужное действие или перезагрузите страницу.
- Выберите соответствующий запрос.
- На вкладке 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.
Рекомендуется использовать заголовки из активной браузерной сессии, а не формировать их вручную.
Сайт может учитывать не только 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-* зависят от контекста запроса. В примере они указаны для прямого открытия страницы; при переходе по ссылке с другого сайта значения могут отличаться.
Использование при решении CAPTCHA
Сохраняйте параметры браузерной сессии на всех этапах взаимодействия с целевым сайтом:
- Откройте страницу с CAPTCHA.
- Получите cookies, заголовки и параметры текущей сессии.
- Определите параметры CAPTCHA, включая
websiteURL,websiteKeyи другие обязательные значения. - Создайте задачу в CapMonster Cloud.
- Получите результат решения.
- Передайте результат решения (например, токен или 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 после редиректов.
