3×× Redirection
308 Permanent Redirect
The target resource has been assigned a new permanent URI and any future references to this resource ought to use one of the enclosed URIs.
Clients with link editing capabilities ought to automatically re-link references to the effective request URI1 to one or more of the new references sent by the server, where possible.
The server SHOULD generate a Location header field2 in the response containing a preferred URI reference for the new permanent URI. The user agent MAY use the Location field value for automatic redirection. The server's response payload usually contains a short hypertext note with a hyperlink to the new URI(s).
A 308 response is cacheable by default; i.e., unless otherwise indicated by the method definition or explicit cache controls3.
Note: This status code is similar to 301 Moved Permanently, except that it does not allow changing the request method from POST to GET.
Resume Incomplete
Some applications may use 308 Resume Incomplete as a non-standard response.
This status code indicates to the client that the server does not possess the complete byte range for the resume request to proceed but is still willing to continue the operation. It may include a Range header so that the client may minimize the amount of data that needs to be retransmitted by the ensuing resume requests. In the absence of any such Range header, the client should assume that the server has no stored bytes. It may include a Location header indicating the URI to which future resumable requests should be sent for this operation.
- 1 Effective Request URI RFC7230 Section 5.5
- 2 Location RFC7231 Section 7.1.2
- 3 Calculating Heuristic Freshness RFC7234 Section 4.2.2
- Sources:
308 Code References
.NET HTTP Status Enum HttpStatusCode.PermanentRedirect
Rust HTTP Status Constant http::StatusCode::PERMANENT_REDIRECT
Go HTTP Status Constant http.StatusPermanentRedirect
Symfony HTTP Status Constant Response::HTTP_PERMANENTLY_REDIRECT