Jak nástroj použít
- 1Zadejte URL, například
https://example.com/page, nebo jen doménu –https://se doplní automaticky. - 2Klikněte na Zkontrolovat hlavičky. Nástroj projde přesměrování krok po kroku, nejvýše 10 za sebou.
- 3Projděte si řetězec přesměrování: u každého kroku uvidíte stavový kód, adresu a dobu odezvy. Rozbalením kroku zobrazíte jeho hlavičky.
- 4Zkontrolujte bezpečnostní hlavičky a všechny hlavičky odpovědi výsledné stránky. Pokud je potřebujete někomu poslat, zkopírujte je.
Co znamenají stavové kódy HTTP
Každá odpověď začíná trojmístným stavovým kódem. 2xx znamená úspěch – 200 OK je běžná stránka. Kódy 3xx jsou přesměrování, která prohlížeč pošlou jinam. Kódy 4xx jsou chyby na straně klienta, například 404 Not Found nebo 403 Forbidden, a kódy 5xx znamenají selhání serveru, třeba 500 Internal Server Error nebo 503 Service Unavailable.
Spolu se stavovým kódem putují hlavičky. Říkají prohlížeči, o jaký obsah jde (Content-Type), jak dlouho ho smí uchovávat v mezipaměti (Cache-Control), jaké cookies má uložit (Set-Cookie) a mnoho dalšího – informace, které na samotné stránce nikdy neuvidíte.
Přesměrování: 301, 302, 307 a 308
301 Moved Permanently a 308 Permanent Redirect říkají prohlížečům a vyhledávačům, že se stránka přestěhovala natrvalo, takže odkazy i pozice ve vyhledávání přejdou na novou adresu. 302 Found a 307 Temporary Redirect znamenají dočasný přesun a stará URL zůstává ve výsledcích vyhledávání. Kódy 307 a 308 navíc zaručují, že se nezmění metoda požadavku, což je důležité u formulářů a API.
Každý krok navíc stojí jednu cestu tam a zpět a zpomalí první návštěvu, proto staré URL přesměrujte rovnou na konečnou adresu – http://example.com přímo na https://www.example.com/, ne přes dva kroky. Google následuje nejvýše 10 přesměrování za sebou, prohlížeče asi 20; smyčky nekončí nikdy.
Bezpečnostní hlavičky, které stojí za to nastavit
Strict-Transport-Security (HSTS) přiměje prohlížeče používat pro váš web HTTPS, i když někdo napíše http://. Content-Security-Policy omezuje, odkud se smějí načítat skripty a další zdroje, což otupí útoky typu cross-site scripting. X-Content-Type-Options: nosniff zabrání prohlížečům v odhadování typu souborů a frame-ancestors nebo X-Frame-Options brání jiným webům vkládat vaše stránky do rámů kvůli clickjackingu.
Referrer-Policy určuje, kolik z vašich URL se posílá jiným webům, a Permissions-Policy vypíná funkce prohlížeče, které nepoužíváte, například kameru nebo geolokaci. Žádná z nich nenahradí bezpečný kód, ale společně s minimálním úsilím zacelí běžné mezery.
Otázky a odpovědi
Jak zjistím, zda je přesměrování 301, nebo 302?
Zadejte starou URL a podívejte se na řetězec přesměrování: u každého kroku je uvedený stavový kód. 301 a 308 jsou trvalá přesměrování, 302 a 307 dočasná. Z řetězce také uvidíte, kam které přesměrování vede, takže odhalíte zbytečné kroky navíc.
Jak zobrazím HTTP hlavičky webu?
Zadejte adresu sem a všechny hlavičky odpovědi výsledné stránky najdete na konci. V prohlížeči otevřete nástroje pro vývojáře (F12), zvolte kartu Síť (Network) a klikněte na první požadavek. V terminálu hlavičky vypíše curl -I https://example.com.
Proč tento nástroj ukazuje jiné hlavičky než můj prohlížeč?
Servery mohou odpovídat různě podle toho, jaký požadavek dostanou. Váš prohlížeč posílá cookies, podporuje kompresi a má vlastní user agent, a CDN může vrátit kopii z mezipaměti nebo regionální verzi. Tento nástroj posílá z našeho serveru obyčejný požadavek bez cookies – podobně jako robot vyhledávače.
Co způsobuje smyčku přesměrování?
Přesměrování vedou zpět na adresu, která už byla navštívena, takže se prohlížeč nikdy nedostane ke stránce a zobrazí „příliš mnoho přesměrování“. Většinou jde o dvě pravidla, která si odporují – například CDN přesměrovává HTTP na HTTPS a server zároveň HTTPS zpět na HTTP –, nebo o přesměrování na přihlášení, které závisí na cookie.
Jaké bezpečnostní hlavičky by měl mít každý web?
Alespoň Strict-Transport-Security, X-Content-Type-Options: nosniff, ochranu proti vkládání do rámů pomocí frame-ancestors nebo X-Frame-Options a Referrer-Policy. Nejlépe chrání Content-Security-Policy, ta ale vyžaduje testování – začněte proto se zásadami v režimu report-only a vynucování zapněte, až se nic nerozbije.