Compare Status Codes

Select up to 3 status codes to compare side-by-side

📦301Moved Permanently
🔀302Found
↪️307Temporary Redirect

Redirect Codes: Permanent vs Temporary

Understanding the key differences between redirect types

Permanent Redirects
📦
301
Moved Permanently
Old-Style Permanent

Classic redirect

Resource has permanently moved. Browsers and search engines will update their bookmarks and indexes.

🌐POST /old-url
Server responds with new location
📦301 → /new-url
⚠️ May change to GET
Key behavior:
  • Browser caches the redirect
  • SEO: Link juice transferred
  • ⚠️ May change POST to GET
📍
🔒
308
Permanent Redirect
Modern Permanent

Method-preserving

Like 301, but guarantees the HTTP method and body won't change during redirect.

🌐POST /old-url
Server responds with new location
🔒308 → /new-url
✓ Keeps POST method
Key behavior:
  • Browser caches the redirect
  • SEO: Link juice transferred
  • ✓ Preserves HTTP method
🔐
Temporary Redirects
🔄
302
Found
Old-Style Temporary

Classic temporary

Resource is temporarily at another location. Original URL should still be used in the future.

🌐POST /temp-moved
Server responds with temp location
🔄302 → /temp-url
⚠️ May change to GET
Key behavior:
  • No browser caching
  • SEO: Original URL preserved
  • ⚠️ May change POST to GET
⏱️
🔃
307
Temporary Redirect
Modern Temporary

Method-preserving

Like 302, but guarantees the HTTP method and body won't change during redirect.

🌐POST /temp-moved
Server responds with temp location
🔃307 → /temp-url
✓ Keeps POST method
Key behavior:
  • No browser caching
  • SEO: Original URL preserved
  • ✓ Preserves HTTP method
🔄
Quick Decision Guide
Use Permanent (301/308) when:
  • URL has changed forever
  • You want search engines to update their index
  • Domain migration or restructuring
  • Old URL should never be used again
Use Temporary (302/307) when:
  • Resource is temporarily unavailable
  • A/B testing or maintenance mode
  • You want to keep the original URL active
  • Redirect might change or be removed soon
Use Modern (307/308) when:
  • Redirecting POST/PUT/DELETE requests
  • Request body must be preserved
  • Working with REST APIs
  • Modern application with strict HTTP semantics
💡
Key Insight

Permanent vs Temporary controls caching and SEO, while Old vs Modern controls HTTP method preservation. For APIs and POST requests, prefer 307/308. For simple page redirects, 301/302 are widely supported and sufficient.

Description

The URL of the requested resource has been changed permanently. The new URL is given in the response.

When to Use
  • The resource URL has changed permanently and will never return
  • You want search engines to update their index to the new URL
  • Consolidating multiple URLs to a canonical URL for SEO
Common Causes
  • Website restructured with new URLs
  • Domain name changed
  • Page permanently relocated
Description

The URI of the requested resource has been changed temporarily.

When to Use
  • Legacy compatibility - prefer 307 for temporary redirects in new code
  • The redirect is temporary and the original URL should continue to be used
  • Warning: Historically changed POST to GET; behavior varies by client
Common Causes
  • Temporary maintenance redirect
  • A/B testing redirects
  • Temporary URL changes
Description

The server sends this response to direct the client to get the requested resource at another URI with the same method.

When to Use
  • Temporary redirect that must preserve the HTTP method (POST stays POST)
  • Redirecting form submissions or API calls temporarily
  • Preferred over 302 for modern applications
Common Causes
  • HTTPS redirect preserving POST data
  • Temporary URL change keeping method
  • Load balancing redirects