Developer Tools

HTTP 307 Temporary Redirect

3xx Redirection. Like 302, but guarantees the request method and body won't change on the redirected request.

Runs in your browser. Your files and text never leave your device - nothing is uploaded.

3xx Redirection

What it means

Like 302, but guarantees the request method and body won't change on the redirected request.

PropertyDetail
Status class3xx Redirection
Defined inRFC 9110, Section 15.4.8
Cacheable by defaultOnly with explicit caching headers: a cache stores it when the response carries Cache-Control (max-age, s-maxage or public) or Expires.
Who needs to actThe site owner, if the redirect should really be permanent.

What does HTTP 307 Temporary Redirect mean?

HTTP 307 Temporary Redirect means the resource is temporarily at another URL, given in the Location header, and the client must repeat the request there with the same method and body, so a POST stays a POST. Future requests should still use the original URL. It is the method-preserving version of 302 Found.

How 307 Temporary Redirect works

307 was added to remove the ambiguity of 302. Under RFC 9110 a user agent that follows a 307 must not change the request method, so an API call that POSTs JSON to the old URL arrives at the new one as the same POST with the same body. As with 302, the client is told to keep using the original URL afterwards, because the temporary location may change again. One frequent sighting has nothing to do with the server: Chrome shows '307 Internal Redirect' in DevTools when HSTS upgrades an http:// URL to https:// inside the browser, before any request leaves the machine.

Example 307 request and response

POST /api/v1/payments HTTP/1.1
Host: api.example.com
Content-Type: application/json

HTTP/1.1 307 Temporary Redirect
Location: https://api-eu.example.com/api/v1/payments

The client resends the same POST, with the same JSON body, to the EU host. Next time it starts at the original URL again.

When servers send 307 Temporary Redirect

  • APIs moving an endpoint temporarily while keeping POST and PUT requests intact.
  • Load balancers or maintenance setups diverting traffic to another host.
  • HSTS in the browser, which Chrome DevTools reports as '307 Internal Redirect' from http:// to https://.
  • Frameworks that use 307 for temporary redirects, such as Next.js redirect() and non-permanent redirects in next.config.js.

How to handle 307 Temporary Redirect

If you consume the API

  • Let your HTTP client follow 307 with the original method and body, and make sure the body can be sent twice (buffer it rather than streaming it once).
  • Keep the original URL in your configuration; the redirect is not permanent.

If you run the site

  • Use 308 instead if the move is permanent and you want search engines and clients to update.
  • If the 307 appears only in Chrome DevTools on http:// links, that is HSTS working rather than a server redirect; update the links to https://.

307 and SEO

Google treats a 307 exactly like a 302: it follows the redirect, but does not use it as a signal that the target should be canonical, so the original URL normally stays in search results. The internal 307 that Chrome shows for HSTS never reaches Google, because it happens inside the browser.

Related status codes

  • 302 Found: Temporary too, but browsers turn a redirected POST into a GET.
  • 308 Permanent Redirect: The permanent counterpart, which also keeps the method and body.
  • 303 See Other: Deliberately switches to GET, for sending a user to a result page.

Frequently asked questions

Sources

Other 3xx Redirection codes

Reviewed by Raja Jahangir · Last reviewed: October 7, 2026