Sticky a rotacyjne proxy: sterowanie sesją wyjaśnione

9 min

Sticky a rotacyjne proxy: jak działa rotacja na żądanie i na timerze, kiedy sesja sticky bije nowy IP, jak ciasteczka reagują na zmianę adresu i jak samodzielnie przetestować identyfikator sesji.

Rotujące adresy IP rozkładają żądania po puli. Sesje sticky próbują utrzymać jeden adres przez okno. Ten przewodnik jest dla osób, które kupują dostęp do proxy do scrapingu, pracy na kontach albo QA i muszą wybrać tryb sesji. Top Proxy to katalog porównawczy: nie sprzedajemy adresów IP i nie rozdajemy darmowych kluczy. Wyjaśniamy mechanikę i wskazujemy dostawców, których możecie sprawdzić sami.

Sterowanie sesją jest niezależne od tego, skąd pochodzi adres IP. Pula rezydencka może rotować albo trzymać. Pula mobilna potrafi to samo. Plan datacenter często sprzedaje się jako statyczny adres na okres najmu, choć dokładne warunki zależą od produktu. Kupujący mieszają te słowa, a potem dziwią się, czemu przepływ kasy pada w połowie.

01Rotacyjne, sticky i statyczne: trzy różne zachowania

Tych określeń używa się tak, jakby były synonimami. Opisują różne rzeczy.

TrybCo robi bramaKto steruje zmianąTypowe zastosowanie
Rotacja przy każdym żądaniuWybiera wyjście z puli dla każdego połączenia albo żądania; może oddać ten sam adres ponownieBramaNiezależne pobrania stron, szerokie listy URL
Rotacja na timerzeWybiera nowe wyjście z puli, gdy kończy się interwał; wybór może się powtórzyćUstawienie dostawcy albo wasz parametrKrótkie przepływy, które zniosą zmianę w trakcie
Sesja stickyPróbuje trzymać to samo wyjście, dopóki wysyłacie ten sam identyfikator sesjiWy, przez identyfikator sesjiLogowania, koszyki, formularze wieloetapowe, stronicowane wyniki związane ciasteczkiem
StatyczneMa trzymać ten sam adres między sesjami przez okres najmuWarunki produktuDługowieczne konta, listy dozwolonych IP
DedykowaneRezerwuje adres (statyczny albo nie) wyłącznie dla wasWarunki produktuSytuacje, w których problemem jest współdzielenie IP

Najważniejsza jest trzecia kolumna. Przy rotacji na żądanie nic nie robicie, a brama wybiera ponownie, co zwykle, ale nie zawsze, oznacza inny IP. Przy sesji sticky na każdym żądaniu wysyłacie sygnał, a dostawca próbuje go honorować. Statyczne opisuje ciągłość adresu; dedykowane opisuje wyłączność. Żadne z nich nie jest obietnicą wobec awarii albo przeniesienia, które nadal zależą od produktu i umowy.

Schemat trzech wzorców sesji proxy: rotacja bez identyfikatora sesji, sticky z jednym identyfikatorem oraz mieszany crawl, który rotuje na listingach i trzyma sticky przy logowaniu i stronach szczegółów

Schematyczny przykład tego, jak brama traktuje żądania z identyfikatorem sesji i bez niego. To diagram redakcyjny, nie zmierzone dane sieciowe; rzeczywiste czasy życia i przełączenie przy awarii zależą od dostawcy.

02Jak działa rotacja: przy żądaniu i na timerze

Rotacyjna brama to jedna nazwa hosta i port przed dużą pulą. Za każdym razem, gdy zaczyna się nowa sesja, brama wybiera wyjście z tej puli. Bez klucza sesji wiele bram rezydenckich traktuje każde połączenie jako nowe, więc kolejne żądania mogą wychodzić z różnych adresów, choć pula może też oddać ten, którego właśnie użyliście. Dokładny domyślny tryb różni się u dostawców, więc czytajcie stronę produktu, zamiast zakładać.

Rotacja przy każdym żądaniu pasuje do zadań, w których każde pobranie stoi samo: strony produktów, publiczna dokumentacja, wyniki wyszukiwania, migawki cen. Witryna nie powinna wymagać, żeby następne żądanie szło z tego samego gospodarstwa. To właśnie większość ludzi ma na myśli, mówiąc o rotacji proxy do web scrapingu.

Rotacja na timerze siedzi pośrodku. Wyjście ma trzymać przez ustaloną liczbę minut, potem brama wybiera ponownie. Część dostawców wystawia to jako zakres portów, inni jako parametr nazwy użytkownika. Zmniejsza to, jak często cel widzi nowy adres, ale moment przełączenia nie należy do was, więc przepływ, który przecina granicę, nadal może się złamać.

Rotacja nie ukrywa hałaśliwego klienta. Jeśli crawler strzela serią żądań, cel i tak widzi serię, tylko rozłożoną na więcej adresów. Limity tempa, rozsądna współbieżność i grzeczna logika ponowień nadal należą do waszego kodu.

03Sesje sticky a statyczny IP

Sesja sticky przypina was do jednego wyjścia na okno albo do zmiany identyfikatora sesji. Dostawcy zwykle kodują to w nazwie użytkownika proxy. Dwa udokumentowane przykłady pokazują, jak bardzo szczegóły się różnią:

  • Rezydenckie proxy Oxylabs biorą wartość sessid w nazwie użytkownika, z opcjonalnym sesstime w minutach. Ich dokumentacja sterowania sesją mówi, że domyślna sesja trwa 10 minut albo kończy się po 60 sekundach bez żądań, a sesstime może ją wydłużyć do 1440 minut. Jeśli IP schodzi z sieci, zwykła sesja przechodzi na inny IP i jedzie dalej; osobny tryb sessid_oneip nie rotuje i zamiast tego zwraca HTTP 502.
  • Bright Data dodaje -session-<id> do nazwy użytkownika. Ich opcje konfiguracji proxy mówią, że każdy unikalny identyfikator sesji dostaje unikalny IP, a flaga -const trzyma tego samego peera i zwraca 502 z „no peer available”, jeśli ten peer spada. Strona nie podaje czasu życia sesji.

Sesja sticky jest bez gwarancji. Peer może zejść z sieci, operator mobilny może przepisać adres, a dostawca decyduje, czy zamienić wyjście, czy paść głośno. Traktujcie każdy czas trzymania jako cel, nie jako dzierżawę, i nie czytajcie go jako obietnicy, że logowanie albo konto zostaje bezpieczne.

Sticky to też nie to samo co statyczne albo dedykowane. Inni klienci mogą dzielić ten sam zakres, a adres może wrócić do puli po waszej sesji. Jeśli potrzebujecie ciągłości adresu, patrzcie na produkty statyczne albo ISP; jeśli potrzebujecie wyłączności, szukajcie opcji dedykowanej. Warunki sprawdzajcie i tak, bo awarie i przeniesienia są obsługiwane per produkt. Ten kompromis opisuje przewodnik ISP a rezydenckie.

04Ciasteczka, logowania i co się dzieje, gdy IP się zmienia

Większość witryn śledzi odwiedzającego ciasteczkami, nie tylko adresem IP. Dlatego zmiana IP w środku przepływu jest ryzykowna: ciasteczko mówi „ten sam użytkownik”, sieć mówi „inna lokalizacja”. Część witryn to akceptuje. Inne traktują to jako skradzioną sesję, wymuszają nowe logowanie albo zerują koszyk.

Połówką ciasteczek steruje wasz klient HTTP. W Pythonie obiekt requests.Session utrzymuje ciasteczka między żądaniami i ponownie używa połączeń, według dokumentacji zaawansowanego użycia Requests. Identyfikator sesji proxy steruje połówką IP. Są niezależne. Możecie trzymać ciasteczka, gdy IP rotuje, albo trzymać IP, zaczynając od pustego magazynu ciasteczek. Wybierzcie kombinację celowo:

  • Nowy magazyn ciasteczek + rotacyjny IP: usuwa powiązania ciasteczka i IP między żądaniami. Dobre do bezstanowego crawla. To konfiguracja, nie niewidzialność: odciski przeglądarki albo klienta, nagłówki i identyfikatory konta nadal potrafią skorelować żądania.
  • Jeden magazyn ciasteczek + sticky IP: wygląda jak jeden gość, który zostaje na miejscu. Dobre do logowań, koszyków i formularzy wielostronicowych.
  • Jeden magazyn ciasteczek + rotacyjny IP: ryzykowna mieszanka. Witryna, która wiąże ciasteczka z IP, może rzucić wyzwanie albo was wylogować.
  • Nowy magazyn ciasteczek + sticky IP: w porządku do testu, jak witryna traktuje adres, zanim się zalogujecie.

Rotacja ma też koszt poza ciasteczkami: tracicie reputację, którą adres zbudował u witryny, co na części celów oznacza nowe wyzwanie na każdej stronie.

Praca na kontach zwykle chce sticky albo statycznego, i często pochodzenia rezydenckiego albo mobilnego. Rotacyjny IP datacenter to kombinacja, której wiele ścian logowania już oczekuje od automatyzacji.

05Rotacja proxy do web scrapingu: tryb na zadanie

Większość prawdziwych crawlerów używa obu trybów. Rotujcie po stronach listingów, które nie potrzebują stanu. Przełączcie na sesję sticky przy stronach szczegółów, logowaniach albo czymkolwiek za ciasteczkiem. Ten podział to ustawienie crawlera, nie cecha sprzedawcy; dostawca musi tylko wystawić oba. Resztę decyzji zakupowej pokrywa przewodnik o proxy do web scrapingu.

ZadanieSugerowany trybDlaczego
Publiczne strony produktów albo wyszukiwaniaRotacja przy każdym żądaniuNie ma stanu do trzymania, obciążenie rozkłada się po wyjściach
Monitoring cen według regionuRotacja z filtrem krajuLokalizacja ma znaczenie, ciągłość nie
Logowanie, potem kilka stronSticky, trzymajcie trochę dłużej niż przepływCiasteczka i IP zostają spójne
Kasa albo formularz wieloetapowySticky, nowy identyfikator sesji na przebiegZmiana w środku może zresetować formularz
Długo działający profil przeglądarkiStatyczne albo długie stickyPotrzebne są godziny ciągłości
Lista dozwolonych IP na API partneraStatyczne (dedykowane, gdy liczy się wyłączność)Lista potrzebuje stabilnego adresu

Praktyczna reguła: zmierzcie, ile trwa przepływ, ustawcie okno sticky trochę dłuższe i wygenerujcie nowy identyfikator sesji, gdy przepływ się kończy. Trzymanie sesji dłużej, niż trzeba, zostawia was na adresie, który może już być oflagowany.

Przykład obliczeniowy (hipotetyczne liczby). Powiedzmy, że logowanie plus sześć stron szczegółów trwa w logach około 4 minut, a jeden krok czeka około 90 sekund na zbudowanie raportu. Wobec udokumentowanego domyślnego Oxylabs (10 minut albo 60 sekund bez żądań) suma się mieści, ale 90-sekundowa luka przekroczyłaby limit bezczynności, więc sesja mogłaby paść w środku przepływu. Naprawa to dłuższy sesstime i sprawdzenie, jak ten dostawca traktuje luki bezczynności, albo utrzymywanie żądań w czasie oczekiwania. Inni dostawcy mają inne limity, więc tę arytmetykę róbcie na ich udokumentowanych wartościach.

Jeśli nie jesteście pewni, puśćcie kontrolę: ten sam zestaw URL, to samo pochodzenie IP, dwa tryby sesji. Zanim zaczniecie, zdecydujcie, co logować na każdy przebieg:

Logujcie to → Dlaczego ma znaczenie

  1. 01Identyfikator sesji i znacznik czasu na żądaniePozwala powiązać zmiany IP z lukami bezczynności albo wygaśnięciem
  2. 02IP wyjścia i krajPokazuje rotację, sticky i dryf puli
  3. 03Protokół (HTTP albo SOCKS5)Trzyma protokół osobno od pochodzenia IP
  4. 04Status HTTP i strony wyzwańOddziela błędy proxy od obrony witryny
  5. 05Stan ciasteczka albo logowania po każdym krokuPokazuje, czy przepływ przeżył zmianę IP

Zostawcie tryb, który kończy zadanie.

Filtry kraju nadal działają przy rotacji. Amerykańska pula rotacyjna powinna zostawać w Stanach Zjednoczonych, ale mieszane pule potrafią dryfować, więc sprawdzajcie kraj na kilku żądaniach.

06Jak przetestować sesję sticky serią żądań

Nie ufajcie samej stronie produktu. Wyślijcie ten sam identyfikator sesji kilka razy, potem żądania bez niego, i logujcie IP wyjścia za każdym razem. Szkic poniżej używa Python Requests. Host proxy, format nazwy użytkownika i URL echo IP to placeholdery; zastąpcie je wartościami z dokumentacji dostawcy, bo składnia sesji różni się między sprzedawcami.

import time
from urllib.parse import quote
import requests

PROXY_HOST = "gw.example-provider.com:7777"   # placeholder
USER = "USERNAME"                              # placeholder
PASSWORD = "PASSWORD"                          # placeholder, load from your secret store
IP_ECHO_URL = "https://ip-echo.example/plain"  # placeholder endpoint that returns your IP

def proxies_for(session_id=None):
    # Session syntax is provider-specific; this mirrors a "-session-<id>" style username.
    user = f"{USER}-session-{session_id}" if session_id else USER
    # Percent-encode credentials so characters like @ or : do not break the URL.
    url = f"http://{quote(user, safe='')}:{quote(PASSWORD, safe='')}@{PROXY_HOST}"
    return {"http": url, "https": url}

def exit_ip(session_id=None):
    # Pass proxies per request: session-level proxies can be overridden by env proxy variables.
    r = requests.get(IP_ECHO_URL, proxies=proxies_for(session_id), timeout=(5, 20))
    r.raise_for_status()
    return r.text.strip()

for i in range(5):                 # bounded series, no retry loop
    print("sticky", i, exit_ip("test001"))
    time.sleep(10)

for i in range(5):
    print("no session", i, exit_ip())

Weryfikacja TLS zostaje włączona, co jest domyślnym zachowaniem Requests. Argument proxies na żądanie ma znaczenie: dokumentacja Requests ostrzega, że wartości ustawione na session.proxies mogą zostać nadpisane przez zmienne środowiska proxy.

Wyniki czytajcie ostrożnie:

  • Ten sam IP w serii sticky i różne IP bez identyfikatora sesji to to, do czego dąży większość bram rezydenckich.
  • Zmiana w serii sticky przed reklamowanym oknem to sygnał wart zgłoszenia u dostawcy, ale jeden przebieg nie jest dowodem. Peery spadają, a część dostawców zamienia wyjścia po cichu z założenia.
  • Nowy identyfikator sesji nie gwarantuje innego adresu. Pule potrafią oddać IP, które już widzieliście.
  • Jedna pauza bezczynności, która kończy sesję, nie mówi wam dokładnego limitu czasu. Powtórzcie z różnymi pauzami, zanim wyciągniecie wniosek.
  • Niezmieniony IP wyjścia w serii bez sesji sam w sobie nie dowodzi, że routing zawiódł. Część bram trzyma wyjście na połączenie.

Testujcie tym samym protokołem, którego użyjecie na produkcji, bo punkty końcowe HTTP i SOCKS5 potrafią zachowywać się inaczej. Różnicę wyjaśnia przewodnik SOCKS5 a HTTP. Do szybkiego ręcznego sprawdzenia otwórzcie Wasze IP przez proxy; pokazuje adres tego jednego żądania, więc odświeżcie, żeby porównać. Sprawdzanie proxy testuje punkt końcowy z naszej strony, co jest przydatne do potwierdzenia, że proxy odpowiada, ale wynik odzwierciedla, skąd łączy się sprawdzanie, i nie izoluje problemów w waszej przeglądarce albo kliencie.

07Kandydaci katalogu do sprawdzenia sterowania sesją

Usługi poniżej to dostawcy rezydencyjni albo mieszanych pul z naszego katalogu. Sterowanie sesją jest udokumentowane u części z nich, a szczegóły się różnią. Na każdej karcie sprawdźcie aktualną dokumentację dostawcy pod kątem oferowanych trybów sesji, składni sesji, maksymalnego czasu trzymania i tego, co dzieje się przy awarii. Listing tutaj nie znaczy, że testowaliśmy waszą konfigurację.

SOAX — proxy rezydenckie i mobilne
SOAX — proxy rezydenckie i mobilne3.8218

SOAX sprzedaje rotacyjne proxy rezydenckie i mobilne na wspólnej puli kredytów, z datacenter i ISP w tych samych planach. Builder od $200/mies. + VAT (200 kredytów); ruch Tier 1 to $3/GB na Builderze.

85 krajów
3,00 USD
za 1 GB
Decodo (Smartproxy) — proxy rezydenckie i datacenter
Decodo (Smartproxy) — proxy rezydenckie i datacenter4.22118

Decodo (dawniej Smartproxy) sprzedaje proxy rezydenckie i datacenter. Rezydenckie: $4/GB bez planu miesięcznego albo pakiety miesięczne od $3.75/GB za 3 GB. Płatności: karty, PayPal, Alipay, Google/Apple Pay, krypto (z ograniczeniami).

83 kraje
0,38 USD
za 1 GB
Froxy — rezydenckie, mobilne i datacenter
Froxy — rezydenckie, mobilne i datacenter4.3119

Froxy oferuje proxy rezydenckie, mobilne, szybkie rezydenckie i datacenter rozliczane za ruch, z pakietami miesięcznymi i płatnym okresem próbnym $1.99 / 3 dni / 100 MB.

236 krajów
0,96 USD
za 1 GB
Otwórzcie stronę
Oxylabs — proxy rezydenckie i datacenter
Oxylabs — proxy rezydenckie i datacenter4.0771

Oxylabs sprzedaje proxy rezydenckie, mobilne, ISP i datacenter w jednej subskrypcji miesięcznej od $30. Płatności: karty, przelew, AliPay, PayPal.

10 krajów
0,45 USD
za 1 GB
Bright Data — proxy rezydenckie i datacenter
Bright Data — proxy rezydenckie i datacenter4.41442

Bright Data to duża sieć proxy do zbierania danych: IP rezydenckie, mobilne, ISP i datacenter w około 195 krajach. Ruch rezydencki można płacić na bieżąco bez subskrypcji, a adresy datacenter i ISP przychodzą w pakietach od 10 IP. Dostęp rezydencki i mobilny wymaga weryfikacji tożsamości.

10 krajów
5,00 USD
za 1 GB

Wybierajcie rotację, gdy każde żądanie może stać samo. Wybierajcie sticky, gdy następne żądanie musi wyglądać jak ten sam gość. Wybierajcie statyczne albo dedykowane, gdy wynajmujecie ciągłość albo wyłączność adresu. Najpierw pochodzenie, potem tryb sesji, sprzedawca na końcu.

Jaka jest różnica między sticky a rotacyjnymi proxy?

Rotacyjne proxy wybiera IP wyjścia z puli na połączenie, żądanie albo okno czasu, więc adres zwykle się zmienia, ale może się powtórzyć. Proxy sticky próbuje trzymać ten sam IP wyjścia, dopóki wysyłacie ten sam identyfikator sesji, aż sesja wygaśnie albo peer zejdzie z sieci.

Jak długo trwa sesja sticky?

Zależy od dostawcy. Oxylabs dokumentuje 10-minutowy domyślny czas, który można wydłużyć do 1440 minut, a inni dostawcy mają inne limity. Traktujcie każdy czas trzymania jako próbę bez gwarancji i sprawdzajcie dokumentację dostawcy.

Czy nowy identyfikator sesji zawsze daje nowy IP?

Nie. Nowy identyfikator sesji prosi bramę o rozpoczęcie nowej sesji, ale pula nadal może oddać adres, którego już używaliście.

Czy do web scrapingu używać rotacyjnych proxy?

Przy niezależnych stronach, takich jak listingi albo wyniki wyszukiwania, rotacja rozkłada obciążenie na wiele wyjść. Przy czymkolwiek za logowaniem albo ciasteczkiem przełączcie na sesję sticky na tę część crawla.

Czy sesja sticky to to samo co statyczny IP?

Nie. Sesja sticky pożycza IP ze współdzielonej puli na chwilę. Statyczny IP ma zostawać ten sam między sesjami przez okres najmu, a dedykowany IP jest zarezerwowany wyłącznie dla was. Awarie i przeniesienia nadal zależą od warunków produktu.

Dlaczego sesja sticky zmieniła IP za wcześnie?

Peer rezydencki albo mobilny mógł zejść z sieci, a część dostawców automatycznie przenosi sesję na inny IP. Powtórzcie test, zanim uznacie, że dostawca nie honoruje reklamowanego okna.
  • Czym są proxy rezydenckie i jak działają

    Proxy rezydenckie wychodzą przez adresy konsumenckich ISP. Tu jest, jak działają pule, sesje sticky, co widzą witryny i o co pytać dostawcę przed zakupem.

    4 min
  • SOCKS5 a HTTP: protokoły, DNS i zgodność

    SOCKS5 a proxy HTTP: czym różnią się tunele HTTP CONNECT i SOCKS5, gdzie rozwiązywany jest DNS, które klienty obsługują które uwierzytelnianie i jak przetestować protokół, który kupiliście.

    10 min