302 Nalezeno zprávy je HTTP response status code
což znamená, že požadovaný zdroj byl dočasně přesunut do jiného URI
. Od umístění nebo aktuální přesměrování směrnice by mohla být v budoucnu změněna, klient, který obdrží 302 Found
kód odpovědi by měly i nadále používat původní URI pro budoucí požadavky.,
bohužel může být obtížné rozlišovat mezi všemi možnými kódy odezvy HTTP a určit přesnou příčinu chyb, jako je Kód 302 Found
. Existují desítky možných stavových kódů HTTP používaných k reprezentaci složitého vztahu mezi klientem, webovou aplikací, webovým serverem a množstvím webových služeb třetích stran, které se mohou používat, takže určení příčiny konkrétního stavového kódu může být náročné., V tomto článku se budeme zkoumat 302 Found
kód tím, že při pohledu na některé tipy pro řešení problémů, spolu s některé potenciální opravy pro běžné problémy, které by mohly být příčinou tohoto problému v rámci své vlastní webové aplikace, takže pojďme na to!
Problém je na Straně Serveru
Všechny odpovědi HTTP stavové kódy, které jsou v 3xx
kategorie jsou považovány za redirection messages
. Tyto kódy označují uživatelskému agentovi (tj. webovému prohlížeči), že k dokončení požadavku a přístupu k požadovanému zdroji je nutná další akce., Na rozdíl od client error responses
4xx
kódy, jako třeba 404 Not Found Error
jsme zkoumali v poslední době, které by mohly pramenit z buď klient nebo server-side problém, 302 Found
kód obvykle označuje problém na skutečný webový server hosting vaší aplikace.
to znamená, že vzhled 302 Found
obvykle není něco, co vyžaduje hodně zásahu uživatele. Všechny moderní prohlížeče automaticky detekují kód odpovědi 302 Found
a automaticky zpracovávají akci dočasného přesměrování., Webový server hostující aplikaci bude obvykle obsahovat speciální hlavičku Location
jako součást odpovědi, kterou odešle klientovi. Tato záhlaví Location
označuje novou adresu URL, kde lze požadovaný zdroj najít. Například, pokud žádost přijde v pro přístup k URL , ale webový server je nakonfigurován tak, aby vynutit přesměrování na zabezpečenou verzi pomocí
https
, odpověď serveru bude obsahovat Location: https://airbrake.io
záhlaví., To řekne prohlížeči, že by měl přesměrovat tento jediný požadavek na na zabezpečenou adresu URL
. Ve většině případů, prohlížeč bude automaticky detekovat tento
302 Found
kód odpovědi, přečtěte si nový Location
URL a přesměrovat žádost na nové umístění.
je však důležité mít na paměti, že kód odpovědi 302 Found
se používá pro zcela jiné účely než 301 Moved Permanently
podívali jsme se na minulý týden., V případě prvního by přesměrování mělo být dočasné (tj. pouze pro aktuální, jediný požadavek) — prohlížeč by si měl „pamatovat“ původní URI a zpracovat všechny budoucí požadavky pomocí stejného URI. Nicméně, s 301 Moved Permanently
kód prohlížeče je řečeno, že původní URI již není platný, takže všechny budoucí požadavky by měly používat nové URI poskytována Location
záhlaví.,
, Protože 302 Found
označuje, že je něco špatně uvnitř server
aplikace, můžeme do značné míry ignorovat client
stránku věci. Pokud se pokoušíte diagnostikovat problém s vlastní aplikací, můžete okamžitě ignorovat většinu kódu a komponent na straně klienta, jako je HTML, kaskádové styly (CSS), JavaScript na straně klienta atd. To se nevztahuje pouze na webové stránky, buď., Mnoho aplikací pro chytré telefony, které mají moderní uživatelské rozhraní, je ve skutečnosti poháněno běžnou webovou aplikací v zákulisí; ten, který je jednoduše skrytý před uživatelem. Pokud používáte takovou aplikaci a dojde k 302 Found
, problém nebude souviset s aplikací nainstalovanou v telefonu nebo místním testovacím zařízení. Místo toho, to bude něco na straně serveru, který provádí většinu logiky a zpracování v zákulisí, mimo dosah místní rozhraní prezentovány uživateli.,
Pokud vaše aplikace generuje neočekávané302 Found
kódy odpovědí, můžete provést řadu kroků k diagnostice problému.
začněte s důkladnou zálohou aplikace
jako u všeho, je lepší hrát ji bezpečně na začátku, než něco pokazit a později litovat po silnici. Jako takový, to je důležité provést úplné zálohování aplikace, databáze, a tak dále, před prováděním jakékoliv opravy nebo změny systému., Ještě lepší je, pokud máte možnost, vytvořit kompletní kopii žádosti na sekundární staging
server, který není „live“, nebo není jinak aktivní a k dispozici veřejnosti. To vám poskytne čistou testovací půdu, pomocí které můžete vyzkoušet všechny možné opravy k vyřešení problému, aniž byste ohrozili bezpečnost nebo posvátnost vaší živé aplikace.
diagnostika kódu 302 nalezené odpovědi
a302 Found
kód odpovědi znamená, že požadovaný zdroj by měl být dočasně přístupný na jiném URI., Nicméně, to je docela možné, že server je správně nakonfigurován, což způsobuje to, aby nesprávně reagovat s 302 Found
kódy, namísto standardní a očekává, že 200 OK
kód, normální, funkční požadavek. Tak, velká část diagnostiky problému bude prochází procesem dvojí kontroly, jaké zdroje/Url generují 302 Found
kódy odezvy a určení, pokud tyto kódy jsou vhodné nebo ne.,
Pokud vaše aplikace reagovat s 302 Found
kódy, které by nemělo být vydávání, to je otázka, že mnoho dalších návštěvníků může být zažívá, stejně, výrazně brání vaše aplikace je schopnost uživatele služeb. Projdeme několik tipů a triků pro řešení problémů, které vám pomohou tento problém vyřešit. Pokud zde nic nefunguje, nezapomeňte, že Google je váš přítel. Zkuste vyhledat konkrétní pojmy související s vaším problémem, například název CMS nebo softwaru webového serveru vaší aplikace, spolu s 302 Found
., Je pravděpodobné, že najdete další, kteří zažili tento problém a našli řešení.
řešení Potíží na Straně Serveru
Zde jsou některé další tipy, které vám pomohou vyřešit co by mohlo být příčinou, 302 Found
, aby se objeví na straně serveru věcí:
Potvrdit Konfiguraci Serveru
aplikace je pravděpodobně běží na serveru, který je pomocí jednoho ze dvou nejvíce populární webový server software, Apache
nebo nginx
., V době zveřejnění tvoří oba tyto webové servery over 84%
softwaru světového webového serveru! Tak, jeden z prvních kroků, které můžete podniknout, aby určit, co by mohlo být příčinou těchto 302 Found
kódy odezvy je zkontrolovat konfigurační soubory pro webový server software pro neúmyslné přesměrování pokyny.
Chcete-li zjistit, který webový server vaše aplikace používá, budete chtít vyhledat soubor klíčů. Pokud je váš webový server Apache, vyhledejte soubor .htaccess
v kořenovém adresáři systému souborů vašeho webu., Pokud je například vaše aplikace na sdíleném hostiteli, pravděpodobně budete mít uživatelské jméno spojené s hostingovým účtem. V takovém případě kořenového adresáře aplikace se obvykle nachází na cestě /home/<username>/public_html/
, tak .htaccess
soubor by být v /home/<username>/public_html/.htaccess
.
Pokud se nachází na .htaccess
soubor, otevřete jej v textovém editoru a podívejte se na řádky, které používají RewriteXXX
směrnic, které jsou součástí mod_rewrite
modul v Apache., Základní koncept je, že RewriteCond
směrnice definuje textový vzor, který bude porovnán se zadanými adresami URL. Pokud odpovídající URL je požadováno tím, že návštěvník webu, RewriteRule
směrnice, která sleduje jeden nebo více RewriteCond
směrnic se používá provést skutečné přesměrování žádosti na příslušné URL.,
například, tady je jednoduchý RewriteCond
RewriteRule
kombinace, která odpovídá na všechny příchozí požadavky na example.com
a zavádí dočasně přesměrování na ten stejný URI na temporary-example.com
domény místo:
RewriteEngine onRewriteCond %{HTTP_HOST} ^example\.com$RewriteRule ^(.*)$ http://www.temporary-example.com/$1
Všimněte si další vlajka na konci RewriteRule
, který výslovně uvádí, že odezva kód by měl být 302
, což ukazuje uživatelských agentů (prohlížeče), že to je dočasné přesměrování., Proto, pokud najdete nějaké podivné RewriteCond
nebo RewriteRule
směrnic v .htaccess
soubor, který nezdá se, patřit, zkuste dočasně v komentáři z nich (pomocí #
charakter prefix) a restartovat webový server, aby zjistil, jestli to řeší problém.
Na druhou stranu, pokud váš server je spuštěn na nginx
, musíte hledat úplně jiný konfigurační soubor., Ve výchozím nastavení tento soubor je pojmenován nginx.conf
a nachází se v jedné z mála společných adresářů: /usr/local/nginx/conf
/etc/nginx
nebo /usr/local/etc/nginx
. Jakmile se nachází, otevřený nginx.conf
v textovém editoru a podívejte se na rewrite
směrnic, které jsou pomocí redirect
vlajky. Například zde je jednoduchý block directive
(tj., pojmenovanou sadu směrnic), který nakonfiguruje virtuální server vytvořením dočasné přesměrování z example.com
temporary-example.com
:
server { listen 80; listen 443 ssl; server_name www.example.com; rewrite ^/$ http://www.temporary-example.com redirect;}
Rewrite
směrnic v nginx
podobné RewriteCond
RewriteRule
směrnic nalézt v Apache
, jak mají tendenci obsahovat složitější textové vzory pro vyhledávání., Buď jak buď, podívejte se prostřednictvím svého nginx.conf
souboru pro jakékoli abnormální rewrite
směrnic, které zahrnují redirect
vlajky (alternativní permanent
vlajka bude problém, 301
kódy odezvy místo). Komentujte jakékoli abnormality před restartováním serveru, abyste zjistili, zda byl problém vyřešen.
zkontrolujte zastaralý Software
specifikační dokument RFC pro HTTP 1.,0 uvádí, že účelem kódu odpovědi 302 Found
bylo uvést, že klient by měl provést dočasné přesměrování. Nicméně, mnoho novějších prohlížečích by proces 302
kód přijatý pomocí POST
žádost jako chybné GET
žádost o místo, které způsobily problémy a zmatek pro některé web server software, se snaží dostat prohlížeče provádět vlastní úkol, když dočasné přesměrování bylo zapotřebí. Chcete-li to vyřešit HTTP 1.,1 RFC dokument specifikace přidal 303 See Other
307 Temporary Redirect
kódy odezvy, které jsou explicitní prostředky pro manipulaci POST-to-GET
a dočasné přímé odpovědi, resp.
Prohledejte protokoly
téměř každá webová aplikace bude mít nějakou formu protokolů na straně serveru. Application logs
jsou typicky historie toho, co aplikace udělala, například které stránky byly požadovány, ke kterým serverům se připojila, jaké výsledky databáze poskytuje, a tak dále., Server logs
se vztahují k aktuální hardware, který je spuštěna aplikace, a bude často poskytovat informace o zdraví a stavu všech připojených služeb, nebo i jen samotný server. Google „logs“ pokud používáte CMS, nebo „logs“ a „logs“, pokud používáte vlastní aplikaci, získat více informací o nalezení protokolů v otázce.
ladění kódu aplikace
Pokud vše ostatní selže, může se stát, že problém v nějakém vlastním kódu ve vaší aplikaci způsobuje problém., Pokuste se diagnostikovat, odkud může problém přicházet prostřednictvím ručního ladění aplikace, spolu s analýzou protokolů aplikací a serverů. V ideálním případě, vytvoření kopie celé žádosti do místní rozvoj zařízení a proveďte krok-za-krokem ladění procesu, který vám umožní vytvořit přesný scénář, ve kterém 302 Found
došlo k chybě a zobrazení kódu aplikace v okamžiku, kdy se něco pokazí.,
Bez ohledu na to, co je příčinou, vzhled 302 Found
v rámci své vlastní webové aplikace je silný náznak, že možná budete potřebovat chyba správu nástroj, který vám pomůže automaticky rozpoznat takové chyby v budoucnu. Nejlepší z těchto nástrojů může dokonce upozornit vás a váš tým okamžitě, když dojde k chybě. Vzduchovou brzdou je chyba monitorovací software poskytuje v reálném čase monitorování chyb a automatické hlášení výjimek pro všechny vaše rozvojové projekty., Nejmodernější webový panel Airbrake zajišťuje, že obdržíte nepřetržité aktualizace stavu o zdravotním stavu a chybovosti vaší aplikace. Bez ohledu na to, na čem pracujete, Airbrake se snadno integruje do všech nejpopulárnějších jazyků a rámců. Navíc Airbrake usnadňuje přizpůsobení parametrů výjimek a zároveň vám dává úplnou kontrolu nad systémem aktivního filtru chyb, takže shromažďujete pouze chyby, na kterých záleží nejvíce.,
Podívejte se vzduchovou brzdou je chyba monitorovací software dnes a uvidíte sami, proč tak mnoho z nejlepších světových inženýrské týmy použít vzduchovou brzdou, aby obnovili výjimkou manipulace!