Permanent Redirect — the resource was permanently moved without method changes
What 308 Means
The 308 error on the HTTP Status-Codes indicates permanent redirect — the resource was permanently moved without method changes. This typically occurs due to complete api sunsetting pointing to a new major version.
A 308 Permanent Redirect serves exactly the same foundational purpose as a 301, but with a strict guarantee that the client must not change the HTTP method when requesting the new permanent Location.
Technical Background
The 308 code was introduced to mirror the strictness of 307, but for permanent transitions. It directly solves the problem where a 301 Permanent Redirect might accidentally cause an important POST operation to downgrade into a GET request.
When dealing with non-idempotent actions like creating a user or processing a payment, maintaining the HTTP method is mission-critical. A 308 ensures that the client executes the original action at the new destination exactly as intended.
While highly useful for API architecture, 308 is still somewhat less common than 301 for simple static web pages. SEO tools and basic crawlers support it perfectly, making it the modern standard for permanent routing adjustments.
Common Causes
- Complete API sunsetting pointing to a new major version
- Permanent migration of transactional form endpoints
- Strict domain consolidations requiring payload preservation
- Enforced HTTPS redirection within modern backend frameworks
Typical Scenarios
- A retired API endpoint redirects an incoming POST request to the v2 infrastructure
- A web application permanently moves a sensitive update route to a different subdomain
- Data submissions sent to legacy paths are safely bounced to their modern equivalents
What to Know
A 308 redirect is the safest and most modern way to execute permanent changes on complex applications. If requests are reaching a new endpoint but missing their data bodies, ensuring the redirect is a 308 rather than a 301 is a key diagnostic step.
Frequently Asked Questions
Common questions about HTTP 308 error
Both mean the resource has moved permanently. However, a 308 explicitly prevents the client from altering the HTTP method, such as changing a POST into a GET.
Yes. Just like a 301, the 308 status signals a permanent move, meaning browsers and proxy servers will cache the redirection heavily by default.
The 308 status is relatively newer in the HTTP specification. A 301 is older and universally understood for simple document navigation, but 308 is strictly superior for APIs.