Status Code 307
Temporary Redirect
The request should be repeated with another URI; however, future requests should still use the original URI.
Category
RedirectionSpec URL
307 of RFC 9110Popularity
common
Recommended
Yes
Deprecated
No
Common Use Case
Server maintenance, load balancing
Notes
Similar to 302, but enforces the use of the original URI for future requests.
RFC Reference
Description
The request should be repeated with another URI; however, future requests should still use the original URI.
A typical server response for a 307 Temporary Redirect status code looks like:
HTTP/1.1 307 Temporary Redirect Date: Sun, 22 Mar 2026 12:00:00 GMT Server: httperrors.com Location: https://example.com/new-location Content-Length: 0
Redirection responses are often easy to misuse because they look simple on paper. In reality they shape caching behavior, browser history, crawler decisions, and the semantics of repeated requests.
Historically, HTTP 307 Temporary Redirect should be read in light of RFC 9110. Standards text tends to focus on precise semantics, while production systems care about retries, user experience, dashboards, proxies, browsers, and documentation. Good engineering joins those two views instead of choosing one over the other. When teams treat a status code as both a protocol message and a product decision, they produce APIs and pages that are easier to operate and easier to trust.
A practical reading of this entry is that the server is communicating something very specific: The request should be repeated with another URI; however, future requests should still use the original URI. In day-to-day work, that meaning should be reflected across controllers, reverse proxies, API gateways, and frontend assumptions. If the server sends HTTP 307, but the response body, cache headers, or application behavior tell a different story, client code starts compensating for inconsistency and the whole stack becomes harder to reason about.
Popularity is marked as common, which is a useful implementation signal. A common code usually has better client-library support, stronger operator familiarity, and fewer surprises in logs, dashboards, and browser tooling. A rare code can still be the correct choice, but it should be selected intentionally.
The most common implementation mistake with redirection codes is choosing one that conflicts with method preservation, caching intent, or long-term URL strategy. The exact code matters because clients react differently.
In implementation terms, HTTP 307 Temporary Redirect should appear at a deliberate decision point in your request handling code. Avoid choosing it late as a cosmetic label after the rest of the response is already formed. Client behavior should respect redirect semantics, especially around method changes, cache duration, and preservation of request bodies. If your logs show this status frequently, the surrounding context should make it obvious whether the response reflects normal traffic or a design problem.
Because HTTP 307 sits in the redirection category, developers should think about how the code interacts with frontend behavior, backend instrumentation, CDN layers, and search engine crawlers. A status code is never just a number in the network tab; it becomes part of your application's public contract.
A useful way to compare HTTP 307 is against other redirect codes that differ on permanence, caching, or method preservation. Substituting one for another can change browser and crawler behavior more than teams expect. This is one reason protocol precision pays off over time: the better your status taxonomy, the easier it becomes to debug client behavior, build metrics, and explain edge cases to other engineers.
From an operational perspective, HTTP 307 should be visible in logs, metrics, and alerts with enough surrounding metadata to explain why it happened. Popularity for this entry is listed as common, and that should influence how much defensive documentation and monitoring you add. Because the code is common, it is worth distinguishing healthy uses from suspicious spikes so routine traffic is not mistaken for a regression.
Redirection codes are highly visible to search engines because they influence canonicalization, crawl paths, and how ranking signals are transferred between URLs. An incorrect redirect strategy can fragment authority or cause important pages to disappear from the preferred index path. For HTTP 307, the operational takeaway is that status correctness supports SEO indirectly by making crawl behavior more predictable. Pages, APIs, and edge routes should return this code only when its meaning is exactly true.
Since this code is marked as recommended, teams can confidently use it when the semantics are an exact match. The key word is exact. Recommendation does not mean convenience; it means the code is a strong standard choice when the surrounding conditions line up.
Because this code is not deprecated, it remains part of the active vocabulary that modern web systems can use. Even so, correctness still depends on discipline. A valid status code becomes harmful if teams reuse it as shorthand for several unrelated situations.
For HTTP 307 Temporary Redirect, the short description is only the starting point. The more useful interpretation is how a real client should react after seeing this response in a live request cycle. The request should be repeated with another URI; however, future requests should still use the original URI.
The best way to think about HTTP 307 Temporary Redirect is not as trivia, but as a promise. It tells the caller what happened, what should happen next, and how much confidence the client can place in the current response. The example recorded for this entry is Server maintenance, load balancing, and the note says Similar to 302, but enforces the use of the original URI for future requests.. Together with the specification link at https://datatracker.ietf.org/doc/html/rfc9110#section-15.4.7, those details give implementers enough context to use the code intentionally rather than mechanically. That is the standard worth aiming for in production systems.
Other HTTP status codes in the Redirection category
Indicates multiple options for the resource from which the client may choose.
Multiple file formats available
This and all future requests should be directed to the given URI.
Domain name changes, URL restructuring
Tells the client to look at another URL temporarily.
Temporary redirects, user authentication flows
The response to the request can be found under another URI using the GET method.
POST-redirect-GET pattern
Indicates that the resource has not been modified since the version specified by the request headers.
Browser caching, conditional requests
The requested resource is available only through a proxy.
Deprecated - security concerns
The request and all future requests should be repeated using another URI.
HTTPS enforcement, URL changes