Guides

Static vs. Rotating Proxies: Session Design & Cost Lab

By Reviewed by James JohnsonPublished Updated 12 min read
Static vs. Rotating Proxies: Session Design & Cost Lab

TL;DR

Choose a static, sticky, or rotating proxy from the state your authorized workflow must preserve. Model request continuity, retry boundaries, traffic cost, and failover before selecting a plan.

On this page

The Short Answer: Persist Only What the Job Requires#

Use a static proxy when a system you control needs a known source IP for an allowlist, audit trail, or long-lived connection. Use a sticky session when several permitted requests must keep one exit for a short workflow. Use rotation when requests are independent and the source permits distributed regional sampling.

The choice is not a contest between "stable" and "anonymous." It is a state-design decision. Rotation does not create permission, increase a quota, erase cookies, or guarantee a unique exit. Static does not automatically mean dedicated, trusted, fast, or permanently available.

Fast session-mode decision
User requirementStart withState that must persistReject the design when
Approved endpoint allowlists one sourceStatic addressSource IP and audit identityFailover can silently replace the IP or allocation is unclear
Short public flow needs temporary continuitySticky sessionClient cookies plus one exit mappingThe flow exceeds the supported window or crosses a restricted boundary
Each permitted observation stands aloneRotating poolOnly the source-wide budget and task recordThe plan depends on rotating around a block, challenge, or quota
Official API, feed, export, or preview existsOfficial method firstDocumented API credentials and quotasA proxy would duplicate a supported, safer access path

Separate Persistence, Allocation, Network Origin, and Protocol#

Several proxy properties are often compressed into one marketing label. Treat them as separate axes:

  • Static versus rotating describes whether the exit address is expected to remain stable or can be reassigned.
  • Sticky describes a time- or session-bound mapping inside a rotating pool.
  • Dedicated versus shared describes allocation: one customer or multiple customers can use the resource.
  • Residential, mobile, ISP, and datacenter describe the network source and operational model, not session duration.
  • HTTP and SOCKS5 describe the client-to-proxy protocol, not whether the exit rotates.

A static address can be shared. A dedicated address can be replaced after failure. A sticky residential exit remains part of a rotating pool even while the mapping holds. An HTTP or SOCKS5 gateway can expose either a static address or pool logic behind the same endpoint.

Properties to record separately in a production design
PropertyExample valuesWhy it changes the design
Exit persistencePer request, per connection, 15-minute sticky, static until replacementDetermines whether consecutive requests should observe one source
AllocationShared, dedicated, exclusive port, unspecifiedAffects contention, reputation variance, and ownership assumptions
Network originDatacenter, ISP, residential, mobileAffects supply, route, latency, pricing, and consent questions
Client protocolHTTP forward, HTTP CONNECT, SOCKS5Affects client support, DNS choice, authentication, and transport capability
Billing unitGB, IP-month, port, request, committed tierDetermines the correct cost formula

For the protocol decision itself, use the HTTP-versus-SOCKS5 wire-level guide. Session mode and proxy protocol are adjacent choices, not substitutes.

A Proxy Session Does Not Own Your Application State#

A sticky proxy session usually maps a provider-specific session identifier to an exit address. It does not store a browser's cookies, an API token, a shopping cart, a database transaction, or the destination's account state.

The current HTTP cookie standard, RFC 10025, published in July 2026, describes an origin sending Set-Cookie and a user agent returning matching cookies later. That state belongs to the user agent and origin interaction. Changing the exit does not clear it; keeping the exit does not preserve it if the client discards the cookie jar.

State ownership in a proxy-assisted request
StateTypical ownerWhat a proxy-mode change does
Cookies and browser storageBrowser or HTTP clientNormally nothing; the client still sends state according to its rules
Authorization tokenClient and destinationDoes not revoke, refresh, or authorize the token
Sticky session identifierClient configuration and proxy gatewaySelects a mapping according to provider policy
Source-IP allowlistDestination ownerA changed exit can break access even when client credentials remain valid
Quota or rate counterDestination or intermediaryMay use account, cookie, IP, resource, or several signals; rotation does not reset permission
Design rule: carry application state explicitly in the approved client, and treat the exit address as one network input. Never rely on IP rotation to impersonate separate users or evade a destination control.

How Rotation Actually Appears in a Request Sequence#

A rotating gateway chooses an exit according to its pool, targeting, health, allocation, connection, and session rules. "Per-request rotation" is therefore an instruction or service behavior, not proof that every response came from a unique address. This one-address-many-exits packaging is what providers sell as backconnect; the backconnect gateway guide demonstrates per-request rotation and credential-pinned sticky sessions on a loopback pool you can run yourself.

Persistent HTTP connections can carry more than one request. RFC 9112 defines HTTP/1.1 connection persistence, while HTTP/2 and HTTP/3 can multiplex requests. A provider might bind selection to a connection, a gateway request, a session credential, or another implementation boundary. If uniqueness or continuity matters, verify the observed exit and timestamps; do not infer them from the product name.

What to log for each controlled test request
FieldPurposePrivacy boundary
Logical task IDGroups requests that are allowed to share stateUse a random internal ID, not a customer name or credential
Proxy session ID hashConfirms which configuration requested continuityNever log the raw username, password, or complete proxy URL
Observed exit IP and ASNTests persistence and network classificationRestrict retention and access; an IP can be personal data in some contexts
Connection-reuse flagSeparates gateway selection from a reused transportRecord a boolean or connection ID, not packet contents
Status and failure phaseDistinguishes proxy auth, connect, TLS, destination, and timeout failuresDo not capture response bodies containing private data

Use the proxy checker for a point-in-time liveness and exit observation, then reproduce the result in the exact client that will run the workload.

Three Safe Production Patterns#

Pattern 1: independent regional observations. Give each permitted public observation its own task ID. Enforce one request budget across the entire pool, preserve the destination's published rate limits, and store the observed region and exit with the result. Rotation is useful for sampling; it is not a reason to increase volume.

Pattern 2: short stateful quality-assurance flow. Keep one client cookie jar and one sticky session identifier for the approved steps. Set the proxy window slightly longer than the measured p95 flow time, but shorter than the provider maximum and operational need. Databay supports sticky residential sessions for up to 120 minutes. If the flow can exceed the window, split it only at a valid application boundary or choose an approved static source.

Pattern 3: allowlisted service you control. Use a static address, verify whether it is dedicated, and document replacement and failover. Test the primary and any preapproved secondary address before deployment. Monitor the public exit separately from the gateway hostname so a replacement cannot silently break the allowlist.

State and stop conditions by pattern
PatternKeep stableMeasureStop condition
Independent samplingSource-wide budget and test definitionCoverage, success rate, exit distribution, duplicate results403, 429 without an approved wait, challenge, or unclear source permission
Short stateful QAClient state, session token, region, approved account contextFlow duration, session expiry, exit changes, step failuresAuthentication boundary, challenge, account restriction, or session expiry mid-step
Allowlisted serviceSource address, destination policy, client identityExit drift, connect/TLS latency, replacement eventsUnapproved failover address or unexplained route change

Retry the Failure You Understand, Not the Identity#

A retry policy belongs to the logical task, not to each exit. Otherwise a rotating pool can multiply a small retry count into an uncontrolled request burst.

RFC 9110 defines safe methods and warns that a proxy must not automatically retry non-idempotent requests. RFC 6585 defines 429 Too Many Requests and allows a Retry-After field; the 429 error guide covers how to read and honor it. The source can count by resource, server, credentials, cookie, or other criteria, so a new exit is not evidence that the limit no longer applies.

Bounded retry policy
SignalActionExit behavior
Proxy 407Stop and fix proxy credentials or account policyDo not rotate; another exit cannot repair gateway authentication
Connect failure before any destination responseFor a replay-safe task, retry at most the documented limit with backoff and jitterUse the configured session policy; record whether the exit changed
502, 503, or 504Classify the failing hop, honor Retry-After when supplied, then use a small capped retry budgetDo not assume rotation is the remedy
429Honor Retry-After and the source-wide quota; stop if no approved retry window existsNever rotate to bypass the limit
401, 403, challenge, or account restrictionStop and review authorization, official access paths, and destination support guidanceNever change exits to continue
Unsafe or non-idempotent request with an ambiguous outcomeDo not automatically replay; reconcile application state firstKeep the incident auditable
// Policy outline for understood, replay-safe work only
const delayMs = Math.min(capMs, baseMs * 2 ** attempt) + randomJitterMs;

if (response.status === 429 && response.headers.has("retry-after")) {
  waitUntilApproved(response.headers.get("retry-after"));
} else if ([502, 503, 504].includes(response.status) && attempt < maxAttempts) {
  await sleep(delayMs);
} else {
  stopAndClassify(response.status);
}

If the intermediary emits Proxy-Status, RFC 9209 defines structured error details such as DNS, connection, and timeout failures. Treat that field as diagnostic evidence, not as a guarantee that every intermediary reports it.

Compare Cost With the Same Monthly Workload#

Static and rotating services often use different billing units. Comparing a per-IP sticker price with a per-GB price without estimating workload produces a meaningless winner.

The calculator above uses decimal gigabytes: traffic GB = monthly requests × average round-trip KB ÷ 1,000,000. The rotating estimate is traffic GB × quoted $/GB. The static address estimate is IP count × quoted $/IP/month. When both rates are present, the simple break-even volume is static address cost ÷ rotating $/GB.

That is only a normalization step. Add uploads, headers, failed responses, bounded retries, plan minimums, targeting fees, traffic included with static addresses, overage, concurrency limits, commitment term, taxes, replacement policy, and support. A cheaper line item can be the wrong design if it cannot preserve the required state or introduces unaudited failover.

Cost worksheet beyond the calculator
InputHow to obtain itCommon omission
Monthly request countProduction forecast plus a separately bounded retry allowanceMultiplying retries independently for every exit
Round-trip bytesMeasure request headers/body and response headers/body on representative trafficCounting only downloaded payload
Required address countAllowlist and approved redundancy designAdding addresses to evade source controls
Usable success rateControlled pilot using the real client and destination you own or may testComparing latency only among successes
Operational costMonitoring, replacement, support, incident handlingTreating pool management as free

Verify current product terms on the residential pricing page; the calculator intentionally does not embed a competitor price or pretend that one billing model covers every plan.

Validate the Session Design Before Production#

Run the smallest controlled test that can falsify the design. Use a destination you own or have explicit permission to test, and keep credentials outside source code and logs.

  1. Pin the client and proxy configuration. Record library, browser, or cURL version; proxy protocol; gateway; targeting; session mode; timeout; and connection-reuse policy.
  2. Measure the direct baseline. For an authorized destination, record DNS, connect, TLS, first-byte, total time, status, and response identity without the proxy.
  3. Run six requests in the intended pattern. Log a redacted task ID, timestamps, observed exit, country estimate, ASN, status, and failure phase.
  4. Test the boundary deliberately. For sticky mode, wait past the configured window using a non-sensitive endpoint. For static mode, use the provider's documented replacement test or support process; do not force an outage.
  5. Test one safe transient retry. Use a controlled synthetic 503 or connection failure. Confirm the total task retry budget, delay, and exit behavior.
  6. Test every stop condition. A synthetic 403, 429, or challenge must halt the workflow rather than trigger rotation.
  7. Reconcile cost from measured bytes. Replace estimates in the lab with the pilot's complete round-trip volume and quoted plan terms.
Evidence boundary: a six-request lab can verify one client, configuration, time window, and endpoint. It cannot prove future pool availability, destination acceptance, legal compliance, operator logging, or a universal performance advantage.

Questions to Ask Before Buying or Deploying#

Request written answers when session continuity is operationally important:

  • Does rotation occur per request, per new connection, on time expiry, on failure, or through a session token?
  • Is the exit shared or dedicated, and is the gateway itself static even when exits rotate?
  • What is the minimum, default, and maximum sticky duration? Does activity extend it?
  • What happens when an exit disappears during a sticky session?
  • Can static failover change the address? How is replacement announced and audited?
  • Are bandwidth, uploads, failed responses, and retries billed?
  • Which locations and network classifications are actually available for this plan?
  • What logs are retained, for how long, and who can access them?
  • Which uses are prohibited by the provider and the destination?
  • Which error fields or support traces distinguish gateway, DNS, connect, TLS, and upstream failures?

Avoid vendors that promise "undetectable" traffic, guaranteed access, unlimited rotation around controls, or certainty about how a destination will classify an address. Those claims collapse network routing, reputation, client behavior, account state, and destination policy into something a proxy cannot guarantee.

Continue From the Question You Actually Have#

Use the next resource that matches the unresolved part of the design:

Deliberate next steps
If you still need to know...Next resourceWhy
Which connections a proxy changesTrace a proxy request pathSeparates client, proxy, DNS, destination, and reverse-proxy roles
How to configure the real clientChoose a tested integration guideClient behavior determines credentials, DNS, pooling, and errors
Whether one endpoint is alive and what exit it presentsRun the proxy checkerProduces a point-in-time liveness, latency, protocol, and exit observation
Which managed network fits the approved workloadCompare proxy network typesReviews residential, mobile, datacenter, and flexible options after the state requirement is known

After deployment, verify the application path independently with What Is My IP and client logs. A product setting is an intention; the observed route is the evidence.

Frequently Asked Questions

What is the main difference between static and rotating proxies?
A static proxy is expected to keep one exit address until replacement, while a rotating service can select exits from a pool per request, connection, time window, or session rule. The exact boundary is provider-specific, so verify the observed exit in your real client.
Is a sticky proxy the same as a static proxy?
No. A sticky session temporarily maps a session identifier to an exit in a rotating pool. A static service is intended to keep an address for a longer allocation period. Neither term proves that the address is dedicated.
Does changing a proxy IP clear cookies or login state?
No. Cookies and authorization state normally remain in the browser or HTTP client and at the destination. Changing the network exit does not clear them, and keeping one exit does not preserve them if the client discards its state.
Should a rotating proxy retry after a 403 or 429?
Do not rotate around either response. A 403, challenge, or account restriction is a stop condition. For 429, honor Retry-After and the source-wide quota; the destination may count by credentials, cookies, resource, IP, or several signals.
Are static proxies always dedicated or faster?
No. Static describes persistence, not allocation or performance. A static address can be shared, and speed depends on the network, route, proxy implementation, destination, client, connection reuse, and workload.
How do I compare per-GB and per-IP pricing?
Estimate complete monthly traffic from request count and round-trip bytes, multiply it by the quoted per-GB rate, and compare it with the required address count times the per-IP monthly rate. Then add minimums, included bandwidth, overage, targeting, commitments, failures, and operational cost.

Related reading

Ready to scale your data collection?

Join 8,000+ customers on Databay: 34M+ residential IPs across 200+ countries, pay as you go.

Pricing, order minimums, and traffic validity vary by product.