What it means
The resource is temporarily at another URL, and the client must repeat the request there with the same method and body.
Common causes
- HSTS internal redirects from http to https in browsers
- Temporary API endpoint moves
- Load balancers redirecting to another region
How to fix it
As a client or visitor
Repeat the same request, including POST bodies, to Location. Check whether your HTTP client follows 307 for non-GET methods.
As the site or API owner
Use 307 instead of 302 when POST, PUT or DELETE must not turn into GET.
Example response
HTTP/1.1
HTTP/1.1 307 Temporary Redirect
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Location: https://api.example.com/v2/upload
Content-Length: 0 Specification
FAQ
› Why do I see 307 Internal Redirect in Chrome?
The site is on the HSTS list, so Chrome upgrades http to https itself before any request leaves the browser.
› 307 vs 308?
Both keep the method; 307 is temporary, 308 is permanent.