Redirect Cookie Behavior
Understanding how cookies behave when following HTTP redirects is crucial for cookie management in web applications.
Types of Redirects
301 Permanent Redirect
- Browser may cache the redirect
- Search engines update their index
- Cookies set on redirect domain are sent with redirect request
302 Temporary Redirect
- Browser does not cache redirect
- Original URL remains indexed
- Cookies behave similarly to 301
Cookie Behavior with Redirects
Scenario 1: Cookie Set Before Redirect
Flow:
- User visits
redirect.example.com - Server sets cookie:
Set-Cookie: session=abc; Domain=redirect.example.com - Server responds with 301 redirect to
target.example.com - Browser follows redirect
- Request to
target.example.comincludes cookie from redirect domain
Important: Cookies are sent with the redirect request if:
- Domain matches
- Path matches
- SameSite policy allows
Sequence Diagram:
(redirect.example.com) participant Target as Target Domain
(target.example.com) participant Browser User->>Redirect: GET /page HTTP/1.1 Redirect->>Browser: HTTP 200 OK
Set-Cookie: session=abc
Domain=redirect.example.com
SameSite=Lax Browser->>Browser: Store cookie for redirect.example.com Note over Browser: User action triggers redirect Browser->>Redirect: GET /redirect HTTP/1.1
Cookie: session=abc Redirect->>Browser: HTTP 301 Moved Permanently
Location: https://target.example.com/page Browser->>Browser: Process redirect (top-level navigation) Browser->>Target: GET /page HTTP/1.1
Cookie: session=abc Note over Browser,Target: Cookie sent because:
SameSite=Lax allows top-level navigation Target->>Browser: HTTP 200 OK
Content: Target page
Scenario 2: Cookie Set After Redirect
Flow:
- User visits
redirect.example.com - Server responds with 301 redirect to
target.example.com - Browser follows redirect to
target.example.com - Server sets cookie:
Set-Cookie: session=xyz; Domain=target.example.com - Cookie is stored for target domain
Sequence Diagram:
(redirect.example.com) participant Target as Target Domain
(target.example.com) participant Browser User->>Redirect: GET /page HTTP/1.1 Redirect->>Browser: HTTP 301 Moved Permanently
Location: https://target.example.com/page Browser->>Browser: Follow redirect (automatic) Browser->>Target: GET /page HTTP/1.1
Cookie: (none from redirect domain) Target->>Browser: HTTP 200 OK
Set-Cookie: session=xyz
Domain=target.example.com
Path=/
SameSite=Lax Browser->>Browser: Store cookie for target.example.com Note over Browser,Target: Cookie set on target domain
Stored for future requests to target
Scenario 3: Cross-Domain Redirect
Flow:
- User visits
redirect.example.com - Server responds with 301 redirect to
target.example.com(different domain) - Browser follows redirect
Cookie Considerations:
- Cookies with
SameSite=Strictare NOT sent with cross-site redirects [^1] - Cookies with
SameSite=LaxARE sent with top-level navigation redirects (with important nuances - see below) [^1] - Cookies with
SameSite=None; Secureare sent with all redirects (requires HTTPS) [^1]
Critical Domain Attribute Requirement:
For a cookie set on redirect.example.com to be sent to target.example.com after a redirect, the cookie's Domain attribute must explicitly allow the target domain. Simply having SameSite=Lax is not sufficient:
❌ Won't work:
Set-Cookie: session=abc; Domain=redirect.example.com; SameSite=Lax- Cookie is scoped to
redirect.example.comonly - Cannot be sent to
target.example.comeven withSameSite=Lax
- Cookie is scoped to
✅ Will work:
Set-Cookie: session=abc; Domain=example.com; SameSite=Lax- Cookie is scoped to
example.comand all subdomains - Can be sent to both
redirect.example.comandtarget.example.comif they are subdomains
- Cookie is scoped to
Important: The browser checks both the Domain attribute AND the SameSite policy. Both must allow the cookie to be sent. [^2]
Sequence Diagram - SameSite=Lax:
(redirect.example.com) participant Target as Target Domain
(target.example.com) participant Browser User->>Redirect: GET /page HTTP/1.1 Redirect->>Browser: Set-Cookie: session=abc
Domain=redirect.example.com
SameSite=Lax Browser->>Browser: Store cookie Note over User: User clicks link or navigates Browser->>Redirect: GET /redirect HTTP/1.1
Cookie: session=abc Redirect->>Browser: HTTP 301 Moved Permanently
Location: https://target.example.com/page Browser->>Target: GET /page HTTP/1.1
Cookie: session=abc Note over Browser,Target: Cookie sent because:
Domain attribute allows target domain
AND SameSite=Lax allows top-level navigation redirects Target->>Browser: HTTP 200 OK
Sequence Diagram - SameSite=Strict:
(redirect.example.com) participant Target as Target Domain
(target.example.com) participant Browser User->>Redirect: GET /page HTTP/1.1 Redirect->>Browser: Set-Cookie: session=abc
Domain=redirect.example.com
SameSite=Strict Browser->>Browser: Store cookie Browser->>Redirect: GET /redirect HTTP/1.1
Cookie: session=abc Redirect->>Browser: HTTP 301 Moved Permanently
Location: https://target.example.com/page Browser->>Target: GET /page HTTP/1.1
Cookie: (session cookie NOT sent) Note over Browser,Target: Cookie NOT sent because:
SameSite=Strict blocks cross-site redirects Target->>Browser: HTTP 200 OK
SameSite=Lax Nuances with Redirects
While SameSite=Lax cookies are generally sent with top-level navigation redirects, there are important subtleties:
What Works:
- ✅ User-initiated top-level navigation (clicking a link, typing URL)
- ✅ Same-site redirects (e.g.,
example.com→www.example.com) - ✅ Cross-site redirects when initiated by user navigation
Browser Behavior Variations:
Redirect Chains: In a chain of redirects (A → B → C), browsers may treat intermediate redirects differently:
- First redirect (A → B): Cookie may be sent if it's a top-level navigation
- Subsequent redirects (B → C): Behavior varies by browser and how the redirect chain is tracked
- Some browsers treat the entire chain as a single navigation context
- Others may evaluate each redirect separately
Cross-Site → Same-Site Chains: A redirect chain that goes from cross-site to same-site may have different behavior:
- Example:
external.com→redirect.example.com→target.example.com - Browsers may apply stricter checks to prevent cross-site cookie leakage
- The cookie's domain must match throughout the chain
- Example:
POST Redirects: POST requests that result in redirects behave differently:
- POST → 302 redirect is treated as a GET request (per HTTP spec) [^3]
- Some browsers may not send
SameSite=Laxcookies on POST-initiated redirects [^4] - This is a historical quirk and varies by browser implementation
Browser-Specific Considerations:
- Chrome/Edge: Generally sends
SameSite=Laxcookies with top-level navigation redirects - Firefox: Similar behavior, but may have edge cases with redirect chains
- Safari: Can be more restrictive, especially with redirect chains
- Older browsers: May not fully implement SameSite=Lax behavior correctly
POST Redirects and Cookie Behavior
POST requests that result in redirects have special considerations:
Flow:
- User submits form via POST to
redirect.example.com - Server responds with 302 redirect to
target.example.com - Browser converts POST to GET (per HTTP spec) and follows redirect [^3]
Cookie Behavior:
- SameSite=Strict: ❌ NOT sent (cross-site redirect)
- SameSite=Lax: ⚠️ May or may not be sent depending on browser:
- Some browsers treat POST-initiated redirects differently than GET-initiated redirects
- The redirect may not be considered "top-level navigation" in the same way
- Behavior varies between browsers and browser versions
- SameSite=None; Secure: ✅ Sent (if domain allows)
Recommendation: For POST redirects, rely on SameSite=None; Secure for cross-site scenarios, or use server-side session management to transfer state.
Redirect Chains and Corner Cases
Redirect chains (multiple redirects in sequence) introduce additional complexity:
Scenario: A → B → C Redirect Chain
- User visits
site-a.com - Cookie set:
Set-Cookie: session=abc; Domain=site-a.com; SameSite=Lax site-a.comredirects tosite-b.comsite-b.comredirects tosite-c.com
Cookie Behavior:
First redirect (A → B):
- Cookie may be sent if
Domainattribute allowssite-b.com - If
Domain=site-a.com, cookie won't be sent tosite-b.com
- Cookie may be sent if
Second redirect (B → C):
- Browser behavior varies:
- Some browsers treat the chain as a single navigation context
- Others evaluate each redirect independently
- Cookie from
site-a.commay or may not be sent tosite-c.comdepending on domain matching
- Browser behavior varies:
Cross-Site → Same-Site Chains:
When a redirect chain spans from cross-site to same-site (e.g., external.com → redirect.example.com → target.example.com), browsers apply additional checks:
- Cookies from
external.comtypically won't be sent totarget.example.com(different domains) - Cookies set on
redirect.example.comwithDomain=example.commay be sent totarget.example.comif they're subdomains - Browsers may be more restrictive to prevent cross-site cookie leakage
Recommendation: Avoid relying on cookies surviving long redirect chains. Use server-side session management or URL parameters (with appropriate security measures) for state transfer.
DNS Redirection and Aliasing
DNS redirection/aliasing is fundamentally different from HTTP redirects. Instead of the server sending a redirect response, multiple domain names resolve to the same IP address or server through DNS configuration (CNAME records, A record aliases, etc.).
Key Differences from HTTP Redirects
HTTP Redirects:
- Browser sees a redirect response (301/302)
- Browser makes a new request to the target URL
- SameSite policy applies to the redirect flow
- Browser tracks redirect chains
DNS Aliasing:
- Browser sees it as a direct request to that domain
- No redirect response - DNS resolution is transparent
- Browser treats each domain as completely separate
- Each domain has its own cookie jar (unless parent domain is used)
Cookie Behavior with DNS Aliases
When multiple domains resolve to the same server via DNS:
Separate Cookie Jars: Each domain maintains its own cookie storage
alias1.example.comandalias2.example.comhave separate cookies- Cookie set on
alias1is NOT accessible fromalias2
No Cross-Domain Cookie Access: Unless parent domain is used
- Cookie with
Domain=alias1.example.comonly works onalias1 - Cookie with
Domain=alias2.example.comonly works onalias2 - Cookie with
Domain=example.comworks on both aliases
- Cookie with
SameSite Policy: Applies to actual navigation, not DNS resolution
- Navigation from
alias1toalias2is cross-site SameSite=Strictblocks cookie sendingSameSite=Laxallows top-level navigation
- Navigation from
Scenario: DNS Aliased Domains
Flow:
- DNS configured:
alias1.example.com→192.0.2.1 - DNS configured:
alias2.example.com→192.0.2.1(same server) - User visits
alias1.example.com - Server sets cookie:
Set-Cookie: session=abc; Domain=alias1.example.com - User navigates to
alias2.example.com - Cookie is NOT sent (different domain)
Sequence Diagram:
(192.0.2.1) participant Alias2 as alias2.example.com
(192.0.2.1) participant Browser User->>Browser: Navigate to alias1.example.com Browser->>DNS: DNS lookup: alias1.example.com DNS-->>Browser: A record: 192.0.2.1 Browser->>Alias1: GET / HTTP/1.1
Cookie: (none) Alias1->>Browser: HTTP 200 OK
Set-Cookie: session=abc
Domain=alias1.example.com
SameSite=Lax Browser->>Browser: Store cookie for alias1.example.com Note over Browser: User navigates to alias2 User->>Browser: Navigate to alias2.example.com Browser->>DNS: DNS lookup: alias2.example.com DNS-->>Browser: A record: 192.0.2.1 (same IP) Browser->>Browser: Check cookies for alias2.example.com Browser->>Browser: No cookies found (different domain) Browser->>Alias2: GET / HTTP/1.1
Cookie: (none) Note over Browser,Alias2: Cookie NOT sent because
alias1 and alias2 are different domains Alias2->>Browser: HTTP 200 OK
Using Parent Domain for Shared Cookies
To share cookies across DNS-aliased domains, use the parent domain:
Configuration:
alias1.example.com→192.0.2.1alias2.example.com→192.0.2.1- Set cookie with:
Domain=example.com
Sequence Diagram - Parent Domain Cookie:
(192.0.2.1) participant Alias2 as alias2.example.com
(192.0.2.1) participant Browser User->>Browser: Navigate to alias1.example.com Browser->>Alias1: GET / HTTP/1.1
Cookie: (none) Alias1->>Browser: HTTP 200 OK
Set-Cookie: session=abc
Domain=example.com
SameSite=Lax Browser->>Browser: Store cookie for example.com
(parent domain) Note over Browser: User navigates to alias2 User->>Browser: Navigate to alias2.example.com Browser->>Browser: Check cookies for alias2.example.com Browser->>Browser: Match found: session cookie
(alias2 is subdomain of example.com) Browser->>Alias2: GET / HTTP/1.1
Cookie: session=abc Note over Browser,Alias2: Cookie sent because:
alias2.example.com is subdomain
of example.com Alias2->>Browser: HTTP 200 OK
Common DNS Aliasing Scenarios
Scenario 1: Multiple Subdomains
www.example.com→192.0.2.1app.example.com→192.0.2.1- Solution: Use
Domain=example.comto share cookies
Scenario 2: International Domains
example.com→192.0.2.1example.co.uk→192.0.2.1- Challenge: Cannot share cookies (different TLD)
- Solution: Set cookies separately or use server-side session storage
Scenario 3: Branding Aliases
brand1.com→192.0.2.1brand2.com→192.0.2.1- Challenge: Cannot share cookies (completely different domains)
- Solution: Use OAuth or server-side session management
Differences from HTTP Redirects
| Aspect | HTTP Redirect | DNS Alias |
|---|---|---|
| Browser Awareness | Sees redirect response | Sees direct request |
| Cookie Sharing | Depends on SameSite policy | Requires parent domain |
| Request Count | 2 requests (original + redirect) | 1 request per domain |
| Developer Tools | Shows redirect chain | Shows direct request |
| Cross-Domain Navigation | SameSite applies to redirect | SameSite applies to navigation |
Testing DNS Aliasing
When testing DNS aliases in the playground or any environment:
Verify DNS Resolution:
dig alias1.example.com dig alias2.example.com # Both should resolve to same IPCheck Cookie Isolation:
- Set cookie on
alias1 - Navigate to
alias2 - Verify cookie is NOT accessible
- Set cookie on
Test Parent Domain Cookie:
- Set cookie with
Domain=example.com - Navigate between
alias1andalias2 - Verify cookie IS accessible on both
- Set cookie with
Inspect in DevTools:
- Network tab: Check Host header (shows actual domain)
- Application tab: Check cookies per domain
- No redirect entries (unlike HTTP redirects)
Important Notes
- DNS aliasing is transparent: Browser doesn't know domains share the same server
- SameSite applies to navigation: Navigating from one alias to another is cross-site
- Parent domain required: To share cookies, domains must be subdomains of the same parent
- No redirect chain: DNS resolution happens before HTTP request
- Server-side session: If cookies can't be shared, use server-side session storage
Testing in the Playground
Setup
Redirect Domain:
site-c.cookie-playground.pun7o.click- All requests return 301 redirect
- Redirects to:
site-a.cookie-playground.pun7o.click
Target Domain:
site-a.cookie-playground.pun7o.click- Receives redirected requests
- Has redirect test page:
/redirect-test.html
Test Procedures
Test 1: Basic Redirect Cookie Flow
- Visit
https://site-c.cookie-playground.pun7o.click - Observe 301 redirect in browser DevTools
- Check cookies on target domain
- Verify redirect preserves query parameters
Test 2: Cookie Set Before Redirect
- Set cookie on redirect domain (if possible via JavaScript before redirect)
- Follow redirect
- Check if cookie persists on target domain
Test 3: Cookie Set After Redirect
- Follow redirect to target domain
- Set cookie on target domain
- Verify cookie is stored correctly
Test 4: Programmatic Redirect Following
- Use JavaScript fetch with
redirect: 'manual' - Inspect redirect response headers
- Manually follow Location header
- Observe cookie behavior
HTTP Status Codes
301 Moved Permanently
HTTP/1.1 301 Moved Permanently
Location: https://target.example.com/path
302 Found (Temporary)
HTTP/1.1 302 Found
Location: https://target.example.com/path
Important Considerations
Browser Caching
- 301 redirects may be cached by browser
- Subsequent requests may skip redirect entirely
- Clear browser cache to retest
Cookie Domain Mismatch
Critical Understanding: A cookie set on redirect.example.com will NOT automatically be accessible on target.example.com after a redirect, even if SameSite=Lax allows the redirect. The Domain attribute must explicitly allow the target domain.
Examples:
❌ Won't work:
Set-Cookie: session=abc; Domain=redirect.example.com; SameSite=Lax- Cookie scoped to
redirect.example.comonly - Cannot be sent to
target.example.comregardless of SameSite policy
- Cookie scoped to
✅ Will work (if both are subdomains):
Set-Cookie: session=abc; Domain=example.com; SameSite=Lax- Cookie scoped to
example.comand all subdomains - Can be sent to both
redirect.example.comandtarget.example.com
- Cookie scoped to
Important: Many browsers treat initial navigations with certain flags differently. The Domain attribute is checked before the SameSite policy. Both must allow the cookie to be sent. [^2]
SameSite Policy Impact
SameSite=Strict: Not sent with cross-site redirects [^1]SameSite=Lax: Sent with top-level navigation redirects (with browser-specific nuances - see "SameSite=Lax Nuances" section above) [^1]SameSite=None: Sent with all redirects (requiresSecureflag and HTTPS) [^1]
Important: The SameSite policy is evaluated after the Domain attribute check. If the domain doesn't match, the cookie won't be sent regardless of SameSite policy. [^2]
Path Matching
- Cookie path must match or be parent of redirect path [^2]
/path works for all paths/apipath only works for/api/*
Browser Exceptions and Historical Quirks
Browser Version Differences
Older Browser Versions:
- Browsers released before 2019 may not fully support SameSite cookie attributes
- Default behavior was often
SameSite=None(sent with all requests) SameSite=Laxmay not be respected in older browsers- Testing in multiple browser versions is recommended
Modern Browser Defaults:
- Chrome 80+ (2020): Defaults to
SameSite=Laxif not specified [^5] - Firefox 69+ (2019): Supports SameSite but defaults vary [^6]
- Safari 13+ (2019): Supports SameSite with stricter default behavior [^7]
- Edge 80+ (2020): Follows Chromium behavior [^5]
SameSite=None; Secure Requirement
For cross-site cookies to work with redirects, they must include both:
SameSite=None(allows cross-site sending)Secureflag (required when SameSite=None, must be HTTPS)
Example:
Set-Cookie: session=abc; Domain=example.com; SameSite=None; Secure
Why: This requirement prevents insecure cross-site cookie transmission and protects against man-in-the-middle attacks. [^1]
HTTP Working Group Issue #889
The HTTP working group has documented divergences in how browsers treat SameSite=Strict and SameSite=Lax cookies after cross-site redirects. [^4] Key points:
- Specification Ambiguity: The cookie specification doesn't fully define behavior for all redirect scenarios
- Browser Divergences: Different browsers may handle redirect chains differently
- POST Redirects: Particularly problematic - browsers vary in how they treat POST-initiated redirects with SameSite cookies
Recommendation: Don't rely on cookies surviving cross-site redirect chains. Use explicit domain matching and consider server-side session management for critical state.
Browser-Specific Behaviors
Chrome/Edge (Chromium):
- Generally permissive with
SameSite=Laxon top-level navigation redirects - May cache redirects more aggressively (301 redirects)
- Treats redirect chains as single navigation context in many cases
Firefox:
- Similar to Chrome but may be more restrictive with redirect chains
- May evaluate each redirect in a chain separately
- Can be more strict about POST redirects
Safari:
- Often more restrictive than Chromium browsers
- May block cookies more aggressively in redirect scenarios
- Particularly strict with cross-site redirect chains
- Has additional privacy protections (ITP - Intelligent Tracking Prevention) [^8]
Testing Recommendation: Always test redirect cookie behavior in your target browsers, especially Safari if you have Mac/iOS users.
Browser Behavior Comparison Table
| Behavior | Chrome/Edge (80+) | Firefox (69+) | Safari (13+) |
|---|---|---|---|
| Default SameSite | SameSite=Lax if not specified [^5] |
Varies by version | Stricter defaults [^7] |
| SameSite=Lax with GET redirects | ✅ Sent with top-level navigation | ✅ Sent with top-level navigation | ✅ Sent with top-level navigation (may be more restrictive) |
| SameSite=Lax with POST redirects | ⚠️ Usually sent (treated as GET) | ⚠️ May vary | ⚠️ More restrictive, may block |
| SameSite=Strict with redirects | ❌ Not sent (cross-site) | ❌ Not sent (cross-site) | ❌ Not sent (cross-site) |
| SameSite=None; Secure | ✅ Sent (requires HTTPS) | ✅ Sent (requires HTTPS) | ✅ Sent (requires HTTPS) |
| Redirect chain handling | Treats chain as single navigation context | May evaluate each redirect separately | More restrictive, may block longer chains |
| 301 redirect caching | Aggressive caching | Moderate caching | Moderate caching |
| Cross-site → same-site chains | Generally permissive | May be restrictive | Very restrictive, may block |
| Additional protections | None | None | ITP (Intelligent Tracking Prevention) [^8] |
| Cookie Domain evaluation | Domain checked before SameSite [^2] | Domain checked before SameSite [^2] | Domain checked before SameSite [^2] |
Legend:
- ✅ Reliably works
- ⚠️ May work but behavior varies or has edge cases
- ❌ Does not work
Common Use Cases
URL Shortening
- Short URL redirects to long URL
- May need to preserve session cookies
- Use parent domain cookies
Domain Migration
- Old domain redirects to new domain
- Cookies may need to be migrated
- Set cookies on both domains during transition
CDN Redirects
- CDN subdomain redirects to main domain
- Cookies should work across redirect
- Ensure Domain attribute is set correctly
Troubleshooting
Cookie Not Sent After Redirect
Possible Causes:
- Domain mismatch: Cookie
Domainattribute doesn't allow target domain (use parent domain cookie) - SameSite policy too restrictive: Policy blocks cross-site redirects
- Secure flag missing: Required for
SameSite=None, must use HTTPS - Path mismatch: Cookie path doesn't match redirect path
- Browser version: Older browsers may not support SameSite correctly
- POST redirect: May not work with
SameSite=Lax, considerSameSite=None; Secureor server-side session
Solutions:
Domain mismatch: Set
Domainto parent domain that encompasses both redirect and target domains- Example: Use
Domain=example.comforredirect.example.com→target.example.com
- Example: Use
SameSite policy: Use
SameSite=Laxfor top-level navigation redirects orSameSite=None; Securefor cross-site scenariosSecure flag: Ensure
Secureflag is set when usingSameSite=None(requires HTTPS)Path matching: Set cookie path to
/to match all paths, or ensure path matches redirect pathBrowser compatibility: Test in target browsers, especially Safari for Mac/iOS users
POST redirects: Use
SameSite=None; Securefor POST-initiated redirects or server-side session management
Cookie Lost After Redirect
Possible Causes:
- Domain attribute not set
- Cookie expired
- Browser privacy settings
Solutions:
- Explicitly set Domain attribute
- Check cookie expiration
- Test in different browsers
Testing Checklist
- 301 redirect works correctly
- Cookies set before redirect are sent
- Cookies set after redirect are stored
- Query parameters preserved
- SameSite policy respected
- Secure flag works on HTTPS
- Parent domain cookies work across redirect
- HTTP inspector shows correct headers
Related Topics
- Domain Migration for Tracker Mergers - Strategies for migrating tracking domains
- Cookie Attributes - Understanding SameSite and Secure
- Cross-Domain Behavior - Cross-domain scenarios
- HTTP Headers - Set-Cookie and Cookie headers
Additional Resources
- Browser Developer Tools Documentation - Chrome DevTools guide
- HTTP State Management Mechanism (RFC 6265) - Cookie specification
- MDN Web Docs on HTTP Cookies - Comprehensive cookie documentation
- HTTP Working Group Issue #889 - SameSite cookie behavior with redirects discussion
- SameSite Cookies Explained - Detailed SameSite behavior guide
Citations
[^1]: RFC 6265bis - HTTP State Management Mechanism
. Defines SameSite cookie attribute behavior, including that SameSite=None requires the Secure flag, and specifies when cookies are sent with redirects.
[^2]: RFC 6265 - HTTP State Management Mechanism . Section 5.1.3 defines domain matching rules, and Section 5.2 specifies that domain matching is evaluated before other cookie attributes.
[^3]: RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content . Section 6.4.3 specifies that 302 redirects change POST requests to GET requests.
[^4]: HTTP Working Group Issue #889 . Documents browser divergences in handling SameSite cookies with redirects, particularly POST-initiated redirects.
[^5]: Chrome SameSite Cookie Changes
. Chrome 80+ defaults to SameSite=Lax for cookies without an explicit SameSite attribute.
[^6]: Firefox SameSite Cookie Support . Firefox 69+ supports SameSite cookies with varying default behaviors.
[^7]: Safari Intelligent Tracking Prevention . Safari 13+ implements stricter SameSite defaults and additional privacy protections.
[^8]: Safari ITP Documentation . Safari's Intelligent Tracking Prevention includes additional restrictions on cross-site cookie behavior beyond standard SameSite policies.
Next Steps
- Test redirect scenarios in the playground
- Review Browser Behaviors for browser-specific differences