HTTP Status Codes

HTTP 308 Permanent Redirect

308
LowWeb ServerReference page

Permanent Redirect — the resource was permanently moved without method changes

A 308 Permanent Redirect is a permanent redirect response with method preservation. Like 301, it points to a lasting destination, but it also tells the client not to change the HTTP method when requesting the new Location.

What 308 Means

The shortest useful reading of this status code.

Permanent Redirect means the resource was permanently moved without method changes.

For permanent redirects, 308 is the strict form: it combines a lasting destination change with method preservation.

Quick read

Permanent move, same method

A 308 is permanent like 301, but it explicitly preserves the original HTTP method.

Technical Context

How this status behaves without turning the page into a repair guide.

Permanent target

The 308 code was introduced to mirror the strictness of 307, but for permanent transitions. It directly solves the problem where a 301 Permanent Redirect might accidentally cause an important POST operation to downgrade into a GET request.

Method preserved

For non-idempotent actions such as creating records or submitting data, method preservation can matter because a method change may alter the meaning of the request. A 308 makes that preservation explicit.

Modern redirect

While useful for application and API architecture, 308 is still less common than 301 for simple document navigation. Search engines recognize it as a permanent redirect signal, but the choice between 301 and 308 usually depends on whether request-method preservation matters.

Compare Redirect Codes

Redirect status codes look similar in search results, so this page highlights the distinctions that make 308 different.

Common Causes

Complete API sunsetting pointing to a new major version

A retired endpoint points permanently toward a newer API surface.

Permanent migration of transactional form endpoints

A form endpoint moves permanently while method and body preservation remain important.

Strict domain consolidations requiring payload preservation

A domain change is permanent, but request semantics still need to stay intact.

Enforced HTTPS redirection within modern backend frameworks

A framework canonicalizes secure URLs while preserving the original method.

Typical Scenarios

01

A retired API endpoint redirects an incoming POST request to the v2 infrastructure

02

A web application permanently moves a sensitive update route to a different subdomain

03

Data submissions sent to legacy paths are safely bounced to their modern equivalents

What To Know

A 308 redirect indicates a permanent move where request semantics remain important. It is most relevant in contexts where a permanent redirect might involve methods other than GET, such as API or form-submission flows.

Frequently Asked Questions

Common interpretation questions about HTTP 308.

Both mean the resource has moved permanently. However, a 308 explicitly prevents the client from altering the HTTP method, such as changing a POST into a GET.

Yes. Just like a 301, the 308 status signals a permanent move, meaning browsers and proxy servers will cache the redirection heavily by default.

The 308 status is newer, while 301 is older and widely understood for simple document navigation. 308 is more precise when a permanent redirect must preserve the original HTTP method.