ApiSimul logo ApiSimul — the switchboard

HTTP 308 — Permanent Redirect

HTTP 308 is 301 with the method-preservation guarantee of 307: the move is permanent, and clients must repeat the request at the new URL without converting POST to GET. It became standard precisely because 301 historically allowed method rewriting.

When 308 shows up

Mocking a 308 response

A response with this status can be faked end to end with a local mock rule — no backend changes needed. The configuration below mirrors the rule fields the ApiSimul editor uses (method, path, status, delay in milliseconds, response body):

{
  "method": "GET",
  "path": "/v1/upload",
  "status": 308,
  "delay": 160,
  "enabled": true,
  "body": null
}

Dynamic placeholders such as {{random.name}}, {{string.uuid}} or {{number.int 1 100}} can appear inside the body to vary each response, which keeps client-side list rendering and retry logic honest during development.

Frequently asked questions

What does HTTP 308 mean?
The resource has moved for good, and future requests should go to the new URL with the same method and body as before.

How can I test a 308 response without a real backend?
Define a mock rule with the method and path your client requests and set the status to 308. The example configuration above returns this response after the listed delay, so the client exercises its 308 handling exactly as it would against a live server.

Related status codes

Need the response in your own project? Spin up rules for any status with the ApiSimul mock server, or browse every status code page.