スティッキーとローテーション: セッション制御の仕組み
スティッキーとローテーション: リクエストごととタイマーのローテーションの動き、スティッキーが新しいIPに勝つとき、CookieとIP変更の関係、セッションIDの自分での試験。
ローテーションするIPは、リクエストをプールへ広げます。スティッキーセッションは、一定のあいだ一つのアドレスを保とうとします。この案内は、スクレイピング、口座作業、QA向けにプロキシを買い、セッションのモードを選ぶ人向けです。Top Proxyは比較カタログです。IPは売りません。無料の鍵も渡しません。仕組みを説明し、自分で確認できる供給元を示します。
セッション制御は、IPの出自とは別です。レジデンシャルプールは回せますし、保てます。モバイルプールも同じです。データセンターのプランは、借りているあいだ固定アドレスとして売られることが多いですが、正確な条件は製品によります。買い手はこれらの語を混ぜ、決済の途中で流れが死ぬ理由を後から探します。
01ローテーション、スティッキー、固定: 三つの別の動き
これらの語は同義語のように使われます。指しているものは違います。
| モード | ゲートウェイがすること | 変更を決めるのは | 向く場面 |
|---|---|---|---|
| リクエストごとのローテーション | 接続またはリクエストごとにプールから出口を選ぶ。同じアドレスが戻ることもある | ゲートウェイ | 独立したページ取得、広いURL一覧 |
| タイマーのローテーション | 間隔が終わるとプールから新しい出口を選ぶ。同じ出口が再び選ばれることもある | 供給元の設定、または自分のパラメータ | 途中の変更に耐えられる短い流れ |
| スティッキーセッション | 同じセッションIDを送っているあいだ、同じ出口を保とうとする | 自分(セッションID経由) | ログイン、カート、複数段のフォーム、Cookieに縛られたページ送り |
| 固定 | 借りている期間、セッションをまたいで同じアドレスを保とうとする | 製品の条件 | 長く使う口座、許可リスト |
| 専用 | アドレス(固定かどうかにかかわらず)を自分だけに予約する | 製品の条件 | 共有利用そのものが問題になる場合 |
大切な列は三つ目です。リクエストごとのローテーションでは、自分は何もせず、ゲートウェイが再び選びます。たいてい別のIPになりますが、いつもではありません。スティッキーセッションでは、毎回合図を送り、供給元はそれを守ろうとします。固定はアドレスの連続を指します。専用は独占を指します。どちらも障害や再割当ての保証ではありません。それは製品と契約に残ります。

セッションIDがある場合とない場合に、ゲートウェイがリクエストをどう扱うかの模式例です。編集用の図であり、実測のネットワークデータではありません。実際の寿命とフェイルオーバーは供給元に依存します。
02ローテーションの仕組み: リクエストごとか、タイマーか
ローテーションのゲートウェイは、大きいプールの前にある一つのホスト名とポートです。新しいセッションが始まるたび、ゲートウェイはそのプールから出口を選びます。セッションキーが無いと、多くのレジデンシャルゲートウェイは接続のたびに新規と扱うので、連続するリクエストは別のアドレスから出ることがあります。ただし、いま使ったばかりのアドレスが戻ることもあります。既定は供給元ごとに違うので、推測せず製品ページを読んでください。
リクエストごとのローテーションは、取得がそれぞれ独立している仕事に向きます。商品ページ、公開文書、検索結果、価格のスナップショットです。次のリクエストが同じ家庭から来る必要はありません。スクレイピング向けのプロキシローテーションとして、多くの人が指しているのはこれです。
タイマーのローテーションはその中間です。出口は決まった分数のあいだ保たれ、そのあとゲートウェイが再び選びます。ポート範囲で出す供給元も、ユーザー名のパラメータで出す供給元もあります。相手が新しいアドレスを見る頻度は下がります。切り替わる瞬間は自分では制御できないので、境界をまたぐ流れはまだ切れます。
ローテーションは、騒がしいクライアントを隠しません。クローラがバーストを撃てば、相手はバーストを見ます。広がるのはアドレスの数だけです。レート制限、妥当な同時実行、礼儀ある再試行は、自分のコードの仕事です。
03スティッキーセッションと固定IP
スティッキーセッションは、一定の窓のあいだ、またはセッションIDを変えるまで、一つの出口に留めます。供給元はたいていプロキシのユーザー名へこれを入れます。文書化された二つの例は、細部がどれだけ違うかを示します。
- Oxylabsのレジデンシャルプロキシは、ユーザー名に
sessidを取り、任意で分単位のsesstimeを付けます。セッション制御の文書では、既定のセッションは10分、またはリクエスト無しの60秒で終わり、sesstimeは最大1440分まで延ばせるとあります。IPがオフラインになると、通常のセッションは別のIPへ移って続きます。別のsessid_oneipモードは回さず、代わりにHTTP 502を返します。 - Bright Dataはユーザー名に
-session-<id>を足します。プロキシ設定オプションでは、一意のセッションIDごとに一意のIPが付き、-constフラグは同じピアを保ち、そのピアが落ちると「no peer available」の502を返すとあります。そのページはセッションの寿命を書いていません。
スティッキーセッションは最善努力です。ピアはオフラインになり、モバイルキャリアはアドレスを再割り当てし、供給元は出口を替えるか、大きく失敗するかを決めます。保持時間は目標として扱い、リースとして読まないでください。ログインや口座が安全である約束でもありません。
スティッキーは、固定とも専用とも違います。同じレンジをほかの顧客が共有することがあり、セッションのあとアドレスはプールへ戻ることがあります。アドレスの連続が要るなら、固定またはISP製品を見てください。独占が要るなら、専用を探してください。どちらでも条件を確認してください。障害と再割当ては製品ごとに扱われます。そのトレードオフはISPとレジデンシャルにあります。
04Cookie、ログイン、IPが変わったときに起きること
多くのサイトは、IPだけでなくCookieで訪問者を追います。流れの途中でIPが変わるのが危ないのはそのためです。Cookieは「同じ利用者」と言い、網は「別の場所」と言います。それを許すサイトもあります。盗まれたセッションとして扱い、再ログインを強制し、カートを消すサイトもあります。
Cookie側を握るのはHTTPクライアントです。Pythonでは、requests.Session オブジェクトがリクエストをまたいでCookieを保ち、接続を再利用します。Requestsの高度な使い方にそうあります。プロキシのセッションIDが握るのはIP側です。両者は独立です。IPが回ってもCookieを保てます。空のCookieジャーで始めても、IPは保てます。組み合わせは意図して選んでください。
- 新しいCookieジャー + 回るIP: リクエスト間のCookieとIPの結びを外します。状態の無いクロールに向きます。設定であり、透明化ではありません。ブラウザやクライアントの指紋、ヘッダー、口座の識別子は、まだリクエストを相関できます。
- 一つのCookieジャー + スティッキーIP: じっとしている一人の訪問者に見えます。ログイン、カート、複数ページのフォームに向きます。
- 一つのCookieジャー + 回るIP: 危ない混ぜ方です。CookieをIPに縛るサイトは、チャレンジするかログアウトさせます。
- 新しいCookieジャー + スティッキーIP: ログイン前に、サイトがそのアドレスをどう扱うかを試すのに向きます。
ローテーションには、Cookie以外のコストもあります。そのアドレスがサイトに積んだ評判を失います。相手によっては、ページごとに新しいチャレンジになります。
口座作業はたいていスティッキーか固定を欲し、出自はレジデンシャルかモバイルが多いです。回るデータセンターIPは、多くのログイン壁が自動化としてすでに想定している組み合わせです。
05スクレイピング向けのプロキシローテーション: 仕事ごとにモードを選ぶ
実際のクローラの多くは、両方のモードを使います。状態の要らない一覧ページは回します。詳細ページ、ログイン、Cookieの向こうはスティッキーへ切り替えます。その分割はクローラの設定であり、供給元の機能ではありません。供給元が両方を出せば足ります。購入判断の残りはスクレイピング向けプロキシにあります。
| 仕事 | 勧めるモード | 理由 |
|---|---|---|
| 公開の商品または検索ページ | リクエストごとのローテーション | 保つ状態がなく、負荷が出口へ広がる |
| 地域ごとの価格監視 | 国フィルタ付きのローテーション | 場所は要る。連続は要らない |
| ログインのあと数ページ | スティッキー。流れより少し長く保つ | CookieとIPが揃う |
| 決済または複数段のフォーム | スティッキー。実行ごとに新しいセッションID | 途中の変更はフォームをリセットできる |
| 長く走るブラウザプロファイル | 固定、または長いスティッキー | 何時間もの連続が要る |
| 相手APIの許可リスト | 固定(独占が要るなら専用) | 許可リストは安定したアドレスを要す |
実務の規則はこうです。流れが何分かかるかを測り、スティッキーの窓を少し長くし、流れが終わったら新しいセッションIDを作る。必要以上にセッションを保つと、すでに印の付いたアドレスに留まります。
計算例(仮定の数値)。 ログインと詳細ページ6件がログで約4分、そのうち1段がレポート待ちで約90秒だとします。Oxylabsの文書の既定(10分、またはリクエスト無し60秒)に対しては、合計は収まります。ただし90秒の隙間はアイドル上限を超えるので、流れの途中でセッションが終わることがあります。直し方は、より長い sesstime を設定して、その供給元がアイドル隙間をどう扱うかを確認するか、待ちのあいだリクエストを流し続けることです。ほかの供給元は別の上限を使うので、その文書の値でこの計算をやり直してください。
迷ったら対照を走らせてください。同じURL集合、同じIP出自、二つのセッションモードです。始める前に、実行ごとに何を記録するかを決めてください。
記録するもの → なぜ要るか
- 01リクエストごとのセッションIDと時刻IP変更をアイドル隙間や期限に結びつけられる
- 02出口IPと国ローテーション、スティッキー、プールのずれが見える
- 03プロトコル(HTTPまたはSOCKS5)プロトコルをIP出自から分けておける
- 04HTTPステータスとチャレンジページプロキシの誤りとサイトの防御を分けられる
- 05各段のあとのCookieまたはログイン状態IP変更を流れが生き延びたかを示せる
仕事を完了するモードを残してください。
国フィルタは、回しているあいだも効きます。米国のローテーションプールは米国のままである必要があります。混在プールはずれることがあるので、数件で国を抜き取り確認してください。
06一連のリクエストでスティッキーセッションを試す
製品ページだけを信じないでください。同じセッションIDを何度か送り、次に無しで送り、毎回出口IPを記録します。下のスケッチはPython Requestsです。プロキシのホスト、ユーザー名の形式、IPエコーURLはプレースホルダです。セッション構文は供給元ごとに違うので、供給元の文書の値に置き換えてください。
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())
TLS検証はオンのままです。Requestsの既定です。リクエストごとの proxies 引数が大切です。Requestsの文書は、session.proxies に置いた値が環境のプロキシ設定で上書きされ得ると警告しています。
結果は慎重に読んでください。
- スティッキー系列で同じIP、セッションIDなしで別のIP、というのが多くのレジデンシャルゲートウェイの狙いです。
- 案内された窓より前にスティッキー系列が変わるのは、供給元へ上げる価値のある合図です。ただし一回の実行は証明ではありません。ピアは落ちます。黙って出口を替える供給元もあります。
- 新しいセッションIDは、別のアドレスを保証しません。プールは以前見たIPを戻せます。
- アイドルの一時停止が一回セッションを終わらせても、正確なタイムアウトは分かりません。結論の前に、別の間隔で繰り返してください。
- セッションなし系列で出口IPが変わらないことだけでは、経路失敗の証明になりません。接続ごとに出口を保つゲートウェイもあります。
本番で使うのと同じプロトコルで試してください。HTTPとSOCKS5の端点は動きが違うことがあります。差はSOCKS5とHTTPにあります。手早い確認なら、プロキシ経由で自分のIPを開いてください。その1リクエストのアドレスを示すので、更新して比べます。プロキシチェッカーはこちら側から端点を試し、プロキシが応答するかの確認に使えます。結果はチェッカーの接続元を反映し、自分のブラウザやクライアントの問題は切り分けません。
07セッション制御を確認するカタログ候補
下のサービスは、カタログのレジデンシャルまたは混在プールの供給元です。セッション制御は一部で文書化され、細部は違います。各カードについて、いま出しているセッションモード、構文、最大保持時間、フェイルオーバー時の動きを、供給元の現行文書で確認してください。ここに載っていることは、あなたの構成を試した意味ではありません。

SOAXは共有クレジットプール上のローテーションするレジデンシャルとモバイルを売り、データセンターとISPも同じプランに入ります。Builderは月$200 + VAT(200クレジット)から。Builderのティア1トラフィックは1GBあたり$3です。

Decodo(旧Smartproxy)はレジデンシャルとデータセンタープロキシを売っています。レジデンシャルは月次プランなしで1GBあたり$4、または3 GBから1GBあたり$3.75の月次パックです。支払いはカード、PayPal、Alipay、Google/Apple Pay、暗号資産(制限あり)です。

Froxyはレジデンシャル、モバイル、高速レジデンシャル、データセンターのプロキシをトラフィック課金で扱います。月次パッケージと、有料試用$1.99 / 3日 / 100 MBがあります。
各リクエストが独立できるなら、ローテーションを選んでください。次のリクエストが同じ訪問者に見える必要があるなら、スティッキーを選んでください。アドレスの連続または独占を借りているなら、固定または専用を選んでください。出自が先、セッションのモードが次、供給元が三番です。
スティッキーとローテーションのプロキシはどう違いますか?
スティッキープロキシのセッションは何分続きますか?
新しいセッションIDは、いつも新しいIPになりますか?
スクレイピングにはローテーションプロキシを使うべきですか?
スティッキーセッションは固定IPと同じですか?
スティッキーセッションのIPが早く変わったのはなぜですか?
関連記事
レジデンシャルプロキシとは何か、どう動くか
レジデンシャルプロキシは一般向けISPのアドレスから出ます。プール、スティッキーセッション、サイトから見えるもの、購入前に供給元へ聞くことを説明します。
4分2026年のスクレイピング向けプロキシ: 購入チェックリスト
2026年のスクレイピング購入は、供給元ではなく相手から始めます。出自、セッション、地理、課金、本番前の実地試験のチェックリストです。
5分SOCKS5とHTTPプロキシ: プロトコル、DNS、対応
SOCKS5とHTTPプロキシ: HTTP CONNECTとSOCKS5トンネルの違い、DNSの解決場所、クライアントごとの認証対応、買ったプロトコルの確認方法。
9分



