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łówek | Kto go ustawia | Czego dowiaduje się strona |
|---|---|---|
User-Agent, Accept-Language | Twój program | przeglądarka i język |
Cookie | Twój program | Twoja sesja na stronie |
Proxy-Authorization | Twój program, dla proxy | nic: proxy zwykle zatrzymuje go u siebie |
Via, X-Forwarded-For | niektó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.