307 Temporary Redirect oznacza, że zasób docelowy tymczasowo znajduje się pod adresem URL z nagłówka Location, a klient, podążając za przekierowaniem, nie może zmienić metody żądania. POST pozostaje żądaniem POST z tą samą treścią, a PUT – żądaniem PUT. Kolejne żądania nadal powinny trafiać pod pierwotny adres URL. Odpowiedź 307 domyślnie nie trafia do pamięci podręcznej.
HTTP/1.1 wprowadził kod 307, aby usunąć niejednoznaczność kodu 302 Found, za którym przeglądarki po żądaniu POST podążają metodą GET. Używaj go przy tymczasowych przekierowaniach endpointów API, przesyłania plików i formularzy wysyłanych metodą POST oraz wszędzie tam, gdzie metoda musi zostać zachowana.
W narzędziach deweloperskich przeglądarki możesz zobaczyć 307 Internal Redirect po wpisaniu adresu http:// witryny, która korzysta z HSTS. To przekierowanie generuje sama przeglądarka na podstawie swojej listy HSTS – żądanie w ogóle nie trafia do serwera, a własne przekierowanie serwera może być równie dobrze kodem 301. Sprawdzenie po stronie serwera, np. narzędziem TrueURL Sprawdzanie przekierowania na HTTPS, pokazuje, co faktycznie wysyła serwer.
Przykładowa odpowiedź
HTTP/1.1 307 Temporary Redirect
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: https://eu.api.example.com/v1/upload
Cache-Control: no-store
Content-Length: 0 SEO i sprawdzanie przekierowań
Google traktuje 307 tak jak 302: jako przekierowanie tymczasowe i słaby sygnał kanoniczności, więc pierwotny adres URL zwykle pozostaje w indeksie. To właściwe w sytuacjach tymczasowych; przy przeniesieniach na stałe używaj 308 lub 301. Niektóre frameworki domyślnie generują 307. Next.js używa na przykład 307 dla przekierowań z permanent: false i 308 dla permanent: true, więc sprawdź, który kod generuje Twoja konfiguracja.
Typowe przyczyny i zastosowania
- Endpoint API lub endpoint do przesyłania plików został tymczasowo przeniesiony, a treść żądań
POSTmusi przetrwać przekierowanie. - Prace serwisowe, równoważenie obciążenia lub routing regionalny na jakiś czas kierują żądania gdzie indziej.
- Domyślne przekierowanie tymczasowe frameworka, np. w Next.js z
permanent: falsealboRedirectResponsew Starlette i FastAPI. - „307 Internal Redirect” dla HSTS w narzędziach deweloperskich przeglądarki, który pochodzi od przeglądarki, a nie od serwera.