// http 3xx · redirection

HTTP 308 Permanent Redirect

Permanent redirect that preserves the HTTP method.

What HTTP 308 Permanent Redirect means

308 Permanent Redirect is the permanent counterpart to 307: the resource has permanently moved, and the client must reuse the original method and body at the new URL. Use it for permanent redirects that must preserve POST/PUT.

Which category is it?

308 is a 3xx code — Redirection. 3xx means further action is needed to complete the request, usually because the resource lives at a different URL.

Example 308 response

POST /old-endpoint HTTP/1.1

HTTP/1.1 308 Permanent Redirect
Location: https://example.com/new-endpoint

How to check a 308

  1. Use curl -i with a POST and -L to confirm the method and body are preserved at the new URL.
  2. Check that the Location target is the final destination and not another redirect.
  3. Update clients and documentation to use the new URL directly.

308 compared with similar codes

  • 301: Both are permanent. 308 guarantees the method and body are kept; 301 allows clients to turn POST into GET.
  • 307: 307 is the temporary version of the same method-preserving behavior.

308 Permanent Redirect: common questions

Does Google treat 308 like 301?

Yes. Google treats 308 as a permanent redirect, the same as 301, for indexing purposes.

Other redirection (3xx) codes