Odpověď serveru 307 Temporary Redirect
Definice a účel statusového kódu 307
Statusový kód 307 (Temporary Redirect) označuje dočasné přesměrování klienta na jinou URL adresu. Tento kód informuje klienta, že požadovaný zdroj je dočasně dostupný na jiném místě a že následné požadavky by měly být zasílány na novou URL, která je uvedena v hlavičce Location.
Popis statusového kódu 307
Kód 307 je součástí skupiny statusových kódů přesměrování protokolu HTTP. Na rozdíl od trvalého přesměrování (kód 301) je 307 určen pro situace, kdy je změna URL pouze dočasná a může být v budoucnu obnovena na původní adresu.
Situace, kdy se používá kód 307
- Při údržbě webu, kdy je stránka dočasně přesunuta.
- Při A/B testování různých uživatelských zážitků.
- Při geografickém přesměrování uživatelů na lokalizovaný obsah.
Rozdíl od jiných kódů přesměrování (301, 302)
Kód | Typ přesměrování | Popis |
---|---|---|
301 | Trvalé | Zdroj byl trvale přesunut na novou URL. |
302 | Dočasné | Zdroj je dočasně dostupný na jiné URL, ale může se vrátit na původní. |
307 | Dočasné | Podobně jako 302, avšak zachovává metodu HTTP (GET, POST). |
Praktické příklady použití statusového kódu 307
Příklad 1: Dočasná aktualizace URL pro údržbu
Ve scénáři, kdy je stránka dočasně přesměrována kvůli technickým pracím, může server vrátit kód 307. Například, pokud je potřeba provést údržbu na hlavní stránce, může být uživatel přesměrován na stránku s oznámením o údržbě.
Jak implementovat na serveru
V serverovém skriptu můžete použít následující kód:
header("Location: https://example.com/maintenance", true, 307);
Příklad 2: A/B testování
Při A/B testování, kdy se porovnávají dva různé designy stránky, může být uživatel dočasně přesměrován na alternativní verzi.
Jak implementovat na serveru
Příklad kódu pro A/B testování:
header("Location: https://example.com/test-version", true, 307);
Příklad 3: Geolokační přesměrování
Pokud chcete přesměrovat uživatele na lokalizovaný obsah na základě jejich geografické polohy, můžete použít kód 307.
Jak implementovat na serveru
Server může rozpoznat IP adresu a přesměrovat uživatele následovně:
header("Location: https://example.com/cz", true, 307);
Jak opravit chybu 307 v různých programovacích jazycích
Příklad na Python (Flask)
Kód vyvolávající chybu 307
return redirect("https://example.com", code=307)
Způsoby opravy
Ujistěte se, že používáte správnou metodu HTTP při přesměrování.
Příklad na JavaScript (Node.js s Express)
Kód vyvolávající chybu 307
res.redirect(307, "https://example.com");
Způsoby opravy
Zkontrolujte, zda přesměrování neprovádíte v nesprávném kontextu.
Příklad na PHP
Kód vyvolávající chybu 307
header("Location: https://example.com", true, 307);
Způsoby opravy
Ujistěte se, že před voláním hlavičky nebyly odeslány žádné jiné výstupy.
Chyby a problémy spojené s kódem 307
Obvyklé chyby vedoucí k chybě 307
- Nesprávné použití metody HTTP.
- Chybějící nebo nesprávná hlavička Location.
- Pokoušení se přesměrovat na neexistující URL.
Jak se vyhnout nesprávnému použití statusového kódu 307
Je důležité zajistit, aby přesměrování bylo skutečně dočasné a aby bylo správně implementováno v souladu s protokolem HTTP.
Doporučení pro použití statusu 307
Nejlepší praktiky pro implementaci dočasného přesměrování
- Vždy používejte správnou metodu HTTP.
- Zkontrolujte, zda je nová URL platná a dostupná.
- Testujte přesměrování na různých zařízeních a prohlížečích.
Tipy pro testování a ladění přesměrování
Při testování použijte nástroje pro sledování síťového provozu, abyste ověřili, že přesměrování funguje správně a že klient obdrží očekávanou odpověď.