3xx
308 Permanent Redirect
The resource has permanently moved and the request method must not change.
What is HTTP 308?
This status code indicates that the resource has been permanently moved to the URI in the Location header, and all future requests should use the new URI. Like 307, it strictly requires that the request method not change, making it the permanent equivalent. This is the correct choice for permanently redirecting POST or PUT endpoints where the method must be preserved, unlike 301 which may change POST to GET.
Defined in RFC 9110
Common Causes
- Permanent API endpoint relocation where POST, PUT, and DELETE methods must be preserved
- Domain migrations for APIs that need to maintain the original request method
- URL restructuring for non-GET endpoints that must keep their method intact
How to Fix
- Update all references to use the new URL from the Location header permanently
- If method preservation is not important, a 301 is more widely understood by clients
- Update API documentation, client configurations, and integrations to reflect the new URL