MockFoxAdvertise

HTTP 308 Permanent Redirect

Updated Free mock REST & WebSocket APIs

HTTP 308 Permanent Redirect — The resource has a new permanent URL and the client must repeat the request with the same method and body.

Class
3xx Redirection
Defined in
RFC 9110 §15.4.9
Official
Yes (IANA registry)
Cacheable by default
Yes (heuristically, per RFC 9110)

Try it: get a real 308 response

Our test endpoint answers every request with 308 Permanent Redirect.

curl -i https://mockfox.dev/api/status/308

Use it in tests, health-check monitors or to see how your client handles a 308. Add ?delay=2000 to slow it down.

What does HTTP 308 mean?

The permanent counterpart of 307 (RFC 7538, now RFC 9110): search engines treat it like 301, but clients keep the method, so a POST stays a POST. Use it for permanently moved API endpoints that accept writes. Next.js permanentRedirect() and permanent: true redirects in next.config return 308.

Handling 308

  1. Visitors: Browsers handle redirects automatically. If you're stuck in a loop, clear the site's cookies and cache.
  2. Developers: Check the Location header and test redirects with curl -I. Prefer 301/308 for permanent moves and 302/303/307 for temporary ones.

Example 308 response

HTTP/1.1 308 Permanent Redirect
Location: https://example.com/v2/items
Content-Type: application/json

{"status":308,"error":"Permanent Redirect"}

3xx Redirection: Further action (usually following a Location header) is needed to complete the request. See the full list of HTTP status codes.

Related status codes

Related tools

Frequently asked questions

What does HTTP 308 Permanent Redirect mean?

The resource has a new permanent URL and the client must repeat the request with the same method and body.

Is 308 an error?

No. 308 is a redirection status — the client needs to take another step, usually following the Location header.

Where is 308 defined?

In RFC 9110 §15.4.9. It's listed in the IANA HTTP Status Code Registry.

How can I test how my app handles a 308?

Call https://mockfox.dev/api/status/308 — it responds with 308 to any method, with CORS enabled. Add ?delay=2000 to simulate a slow response.