Nagłówki HTTP

Nagłówki HTTP to wiersze techniczne żądania, w których program podaje stronie język, typ przeglądarki, cookie i inne dane.

Zaktualizowano · Redakcja Prokso

Razem z adresem strony przeglądarka wysyła kilkanaście nagłówków: User-Agent, Accept-Language z językiem, Referer ze stroną, z której przyszedłeś, Cookie z plikami cookie.

Strony sprawdzają, czy nagłówki są spójne ze sobą i z adresem. Jeśli IP jest z Polski, a język przeglądarki inny i strefa czasowa z innego kontynentu, strona widzi sprzeczność.

Zwykły proxy nie zmienia nagłówków – wysyła je Twój program. Ale niektóre proxy dodają własne, na przykład Via lub X-Forwarded-For, i tym się zdradzają. Więcej o tym w artykule proxy przezroczyste.

Przez tunel do stron z HTTPS nagłówki idą zaszyfrowane i proxy ich nie widzi.

Jak zobaczyć nagłówki, które wysyła Twój program

W przeglądarce otwórz DevTools, kartę Network, kliknij żądanie i spójrz na sekcję Request Headers. W konsoli uruchom curl z flagą -v: linie zaczynające się od > to to, co curl wysłał, a linie z < to to, co wróciło.

Biblioteki mają własne wartości domyślne. Python requests wysyła User-Agent: python-requests/2.x, curl wysyła curl/8.x lub podobnie, zależnie od wersji. Takie wartości od razu mówią stronie, że żądanie jest automatyczne, a strona może je ograniczać surowiej.

Które nagłówki pochodzą od Ciebie, a które od proxy

NagłówekKto go ustawiaCzego dowiaduje się strona
User-Agent, Accept-LanguageTwój programprzeglądarka i język
CookieTwój programTwoja sesja na stronie
Proxy-AuthorizationTwój program, dla proxynic: proxy zwykle zatrzymuje go u siebie
Via, X-Forwarded-Forniektóre proxyże działa proxy, czasem Twój IP

Nagłówek Proxy-Authorization przenosi login i hasło planu do proxy. W przypadku stron na HTTPS idzie on tylko w żądaniu CONNECT do proxy, więc strona go nie otrzymuje. Które nagłówki proxy docierają do strony, pokaże sprawdzarka proxy, a o IP w nagłówkach opowiada artykuł X-Forwarded-For.

Spójność między nagłówkami

Przeglądarki oparte na Chromium wysyłają razem z User-Agent nagłówki Sec-CH-UA z nazwą i wersją przeglądarki. Jeśli podają różne wersje, żądanie wygląda na sprzeczne. W HTTP/2 nazwy nagłówków są zawsze przesyłane małymi literami, więc nie dziw się, gdy w logach widzisz user-agent zamiast User-Agent. Accept-Language powinien pasować do języka, który spodziewasz się zobaczyć: na jego podstawie serwer często wybiera, którą wersję strony zwrócić.

Pytania i odpowiedzi (FAQ)

Czy proxy zmienia nagłówki?

Nie, nagłówki wysyła Twój program. Proxy zmienia tylko adres, który widzi strona.

Jakie nagłówki są ważne dla parsera?

User-Agent aktualnej przeglądarki, Accept-Language pod kraj proxy oraz Accept. Domyślne nagłówki bibliotek od razu zdradzają automatyczne żądanie.

Rezydencjalne $1.59, mobilne $2.50, serwerowe $0.65 za 1 GB

Rejestracja w minutę, dostęp od razu po płatności.

Utwórz konto