Sitelet https://funapi.dev/status/308

HTTP 308 Permanent Redirect

The resource has moved permanently to the URL in Location; repeat the same request there, method and body unchanged, and use the new URL from now on.

Defined in RFC 9110 §15.4.9 — 308 Permanent Redirect · MDN reference

Where you meet HTTP 308 in production

Permanent moves of APIs and upload endpoints where a POST or PUT must not degrade to GET — and increasingly for any permanent move, since it removes the ambiguity 301 carries.

Why you would test it

The redirect to test when you move an endpoint that accepts writes. Check the client follows it with the body intact and, ideally, logs that its configured URL is stale.

What your client should do about a 308

Re-send the identical request to Location and update the stored URL. Search engines treat it like 301 for ranking purposes.

308 versus the codes it gets confused with

Endpoints that return 308

1 endpoint in this playground answers with 308. Every one is free, needs no signup, and can be called from the browser or with curl.

Questions about HTTP 308

301 or 308 for an API move?
308 when the endpoint accepts anything other than GET — it guarantees the method and body survive. For pages that are only ever fetched with GET, they behave the same.
Is 308 cacheable?
Yes, by default, like 301.

Other redirection codes

All HTTP status codes · All 39 mock REST APIs · Getting started guide

Last updated