Заголовки HTTP

Заголовки HTTP — службові рядки запиту, в яких програма передає сайту мову, тип браузера, cookies та інше.

Оновлено · Редакція Prokso

Разом з адресою сторінки браузер надсилає десяток заголовків: User-Agent, Accept-Language з мовою, Referer зі сторінкою, звідки ви прийшли, Cookie з cookies.

Сайти дивляться, чи заголовки узгоджені між собою й з адресою. Якщо IP з Польщі, а мова браузера інша й часовий пояс з іншого континенту, сайт бачить суперечність.

Звичайний проксі не змінює заголовки — їх надсилає ваша програма. Але деякі проксі додають свої, наприклад Via чи X-Forwarded-For, і цим видають себе. Про це — у статті прозорий проксі.

Через тунель до сайтів з HTTPS заголовки йдуть зашифрованими, і проксі їх не бачить.

Як побачити заголовки, які надсилає ваша програма

У браузері відкрийте DevTools, вкладку Network, клацніть запит і подивіться розділ Request Headers. У консолі запустіть curl із прапорцем -v: рядки з > — це те, що curl надіслав, рядки з < — те, що повернулося.

У бібліотек свої значення за замовчуванням. Python requests надсилає User-Agent: python-requests/2.x, curl — curl/8.x або схоже, залежно від версії. Такі значення одразу кажуть сайту, що запит автоматичний, і сайт може обмежувати його суворіше.

Які заголовки від вас, а які від проксі

ЗаголовокХто його ставитьЩо дізнається сайт
User-Agent, Accept-Languageваша програмабраузер і мову
Cookieваша програмавашу сесію на сайті
Proxy-Authorizationваша програма, для проксінічого: проксі зазвичай лишає його собі
Via, X-Forwarded-Forдеякі проксіщо працює проксі, іноді ваш IP

Заголовок Proxy-Authorization несе логін і пароль плану до проксі. Для сайтів на HTTPS він іде лише в запиті CONNECT до проксі, тож сайт його не отримує. Які проксі-заголовки доходять до сайту, покаже перевірка проксі, а про IP у заголовках — стаття X-Forwarded-For.

Узгодженість між заголовками

Браузери на основі Chromium разом з User-Agent надсилають заголовки Sec-CH-UA з назвою і версією браузера. Якщо вони називають різні версії, запит виглядає суперечливим. По HTTP/2 назви заголовків завжди передаються малими літерами, тож не дивуйтеся, коли в журналах бачите user-agent замість User-Agent. А Accept-Language має відповідати мові, яку ви очікуєте побачити: за ним сервер часто вибирає, яку версію сторінки повернути.

Питання й відповіді

Чи змінює проксі заголовки?

Ні, заголовки надсилає ваша програма. Проксі змінює лише адресу, яку бачить сайт.

Які заголовки важливі для парсера?

User-Agent актуального браузера, Accept-Language під країну проксі й Accept. Стандартні заголовки бібліотек одразу видають автоматичний запит.

Резидентські $1.59, мобільні $2.50, серверні $0.65 за 1 ГБ

Реєстрація за хвилину, доступи одразу після оплати.

Створити акаунт