# Rotating vs sticky sessions: how to choose, per request

Rotation is the default on a residential gateway; a sticky session is the exception you ask for. Choosing right per request is the difference between a smooth pipeline and one that logs itself out.


## The rule in one sentence

Rotate when each request is independent; stick when the target ties requests together (a login, a cart, a paginated search, a multi-step form) or when it watches consistency.


## Decision table

| Job | Mode | Username |
| --- | --- | --- |
| Collect product pages by URL | Rotating | USER-cc-de |
| Search, then open three result pages | Sticky, 5 min | USER-cc-de-sid-q17-ttl-5m |
| Add to cart, checkout, confirmation | Sticky, 30 min | USER-cc-us-sid-order42-ttl-30m |
| Log in and act as one user for a day | Sticky, 24 h | USER-cc-gb-sid-acct9-ttl-24h |
| Keep one address for weeks | Not a session: ISP proxy | ip:8000 from your list |
| SERP sampling from many cities | Rotating, city per request | USER-cc-us-city-chicago |


## How the gateway decides

- No `-sid-`: every new TCP connection gets a new exit.
- `-sid-X`: all connections carrying X share one exit until `-ttl-` elapses (default 10 minutes, up to 24 hours).
- Change X and you get a new exit at once; reuse X after the TTL and you get a new one too.
- If the household behind X goes offline, the session moves to another exit in the same location; retry the failed request once.


## The keep-alive trap

HTTP clients reuse connections. Without a session id you might still see the same IP for several requests because they rode the same connection; that is not stickiness, it is reuse, and it ends whenever the pool recycles the connection. If you need one exit, say so with `-sid-`; if you need a new exit per request, close the connection or use a fresh session id per request.


## Retries

On a rotating job, a retry after 403 or 429 is a new visitor: cheap and effective. On a sticky job, retrying across exits breaks the flow and looks exactly like the automation the site is watching for; retry on the same session, back off, and only start a new session if the exit itself died.


## Parallelism

Sticky sessions are independent of each other. Run a hundred with a hundred ids and you have a hundred consistent visitors; each holds its own exit for its own lifetime. Concurrency is unlimited on ProxShift, so the constraint is the pool size in your target city, not the gateway.


## Questions

**Is a sticky session more expensive?**

No. Traffic costs the same per GB whether the exit rotates or not; a session id changes routing, not price.

**Can I make a session last longer than 24 hours?**

Not on the residential pool. For addresses that must stay fixed for weeks, rent an ISP proxy: static, dedicated, unlimited traffic.

Source: https://proxshift.com/guides/rotating-vs-sticky-sessions
