| Status code | 308 |
|---|---|
| Status text | Permanent Redirect |
| Category | 3xx Redirection |
| Response has body | Usually |
| Specification | RFC 9110 |
What does 308 Permanent Redirect mean?
Like 301, but the method and body must be preserved. It belongs to the 3xx Redirection class, which means further action is needed to complete the request, usually following a different URL.
When do APIs return 308?
Permanent moves where request semantics must survive the redirect.
How to fix a 308 Permanent Redirect
Update your URL to the new target, as with a 301.
Reproduce a 308 response
The fastest way to understand a status code is to trigger one and read the full response. Open the
API tester and send a request to https://httpbin.org/status/308 — you will
see the 308 status along with every response header the server sent. Comparing those headers against
a working request is often what reveals the cause.
When you are debugging a real endpoint, check the response headers as carefully as the body, and confirm you are using the right HTTP method for the operation.
Related 3xx status codes
300 Multiple Choices
The resource has more than one representation, and the server is leaving the choice to the client.
301 Moved Permanently
The resource has permanently moved to the URL in the Location header.
302 Found
The resource is temporarily at a different URL, but future requests should still use the original.
303 See Other
The response to the request can be found at another URL, and should be retrieved with GET.
304 Not Modified
The cached copy the client already has is still valid, so no body is sent.
307 Temporary Redirect
Like 302, but the HTTP method and body must be preserved when following the redirect.
308 Permanent Redirect FAQ
What is the difference between 308 and 301?
Both are permanent redirects. 308 requires the client to repeat the same method and body at the new URL, while a 301 lets clients change a POST into a GET.
Do search engines treat 308 like 301?
Yes. Both signal a permanent move, and major search engines handle a 308 the same way as a 301 when deciding which URL to index.
Is a 308 redirect cached?
Yes, it is cacheable by default like a 301, so clients may go straight to the new URL on later requests without asking the old one again.
See also
- 301 Moved Permanently — The resource has permanently moved to the URL in the Location header.
- 307 Temporary Redirect — Like 302, but the HTTP method and body must be preserved when following the redirect.
References
- RFC 9110, 308 Permanent Redirect — The specification that defines this status code.
- MDN: 308 Permanent Redirect — MDN's reference page for this status code.