ett 302 hittade meddelande är ett HTTP response status code
som indikerar att den begärda resursen tillfälligt har flyttats till en annan URI
. Eftersom läget eller det aktuella omdirigeringsdirektivet kan komma att ändras i framtiden bör en klient som får en 302 Found
svarskod fortsätta att använda den ursprungliga URI för framtida förfrågningar.,
tyvärr kan det vara svårt att skilja mellan alla möjliga HTTP-svarskoder och bestämma den exakta orsaken till fel som302 Found
– koden. Det finns dussintals möjliga HTTP-statuskoder som används för att representera det komplexa förhållandet mellan klienten, en webbapplikation, en webbserver och mängden tredje parts webbtjänster som kan användas, så att bestämma orsaken till en viss statuskod kan vara utmanande., I den här artikeln kommer vi att undersöka 302 Found
– koden genom att titta på några felsökningstips, tillsammans med några potentiella korrigeringar för vanliga problem som kan orsaka problemet inom dina egna webbapplikationer, så låt oss komma till det!
problemet är serversidan
alla HTTP – svarsstatuskoder som finns i kategorin 3xx
betraktas som redirection messages
. Sådana koder indikerar för användaragenten (dvs. din webbläsare) att en ytterligare åtgärd krävs för att slutföra begäran och få tillgång till önskad resurs., Till skillnad frånclient error responses
som hittades i4xx
– koderna, som404 Not Found Error
vi utforskade nyligen, vilket kan härröra från antingen en klient-eller serversidefråga, indikerar302 Found
– koden i allmänhet ett problem på den faktiska webbservern som värd för ditt program.
som sagt är utseendet på en302 Found
vanligtvis inte något som kräver mycket användarintervention. Alla moderna webbläsare kommer automatiskt att upptäcka 302 Found
svarskod och bearbeta tillfälligt omdirigering åtgärder automatiskt., Webbservern som är värd för programmet kommer vanligtvis att innehålla ett specielltLocation
– huvud som en del av svaret som skickas till klienten. DettaLocation
– Huvud anger den nya webbadressen där den begärda resursen kan hittas. Till exempel, om en begäran kommer in för att komma åt webbadressen , men webbservern är konfigurerad för att tvinga omdirigering till en säker version med
https
, kommer serverns svar att inkludera Location: https://airbrake.io
– rubriken., Detta talar om för webbläsaren att den ska omdirigera denna enda begäran till till den säkra webbadressen till
. I de flesta fall upptäcker webbläsaren automatiskt denna
302 Found
svarskod, läser den nyaLocation
– webbadressen och omdirigerar begäran till den nya platsen.
det är dock viktigt att komma ihåg att svarskoden 302 Found
används för helt andra ändamål än 301 Moved Permanently
vi tittade på förra veckan., När det gäller den förra bör omdirigeringen vara tillfällig (dvs. bara för den nuvarande, enda förfrågan) — webbläsaren ska ”komma ihåg” den ursprungliga URI och bearbeta eventuella framtida förfrågningar med samma Uri. Men med en301 Moved Permanently
– kod får webbläsaren veta att den ursprungliga URI inte längre är giltig, så alla framtida förfrågningar bör använda den nya URI som tillhandahålls avLocation
– rubriken.,
eftersom302 Found
indikerar att något har gått fel iserver
I din ansökan, kan vi i stor utsträckning bortse frånclient
sidan av saker. Om du försöker diagnostisera ett problem med ditt eget program kan du omedelbart ignorera de flesta klientsidans kod och komponenter, till exempel HTML, cascading style sheets (CSS), JavaScript på klientsidan och så vidare. Detta gäller inte enbart för webbplatser, antingen., Många smarta telefonappar som har ett modernt användargränssnitt drivs faktiskt av en vanlig webbapplikation bakom kulisserna; en som helt enkelt är dold från användaren. Om du använder ett sådant program och en 302 Found
inträffar kommer problemet inte att relateras till appen installerad på din telefon eller lokala testenhet. Istället kommer det att vara något på serversidan, som utför det mesta av logiken och bearbetningen bakom kulisserna, utanför det lokala gränssnittet som presenteras för användaren.,
om ditt program genererar oväntade302 Found
svarskoder det finns ett antal steg du kan vidta för att diagnostisera problemet.
börja med en grundlig Programbackup
som med någonting är det bättre att ha spelat det säkert i början än att skruva upp något och ångra det senare på vägen. Som sådan, Det är viktigt att du utför en fullständig säkerhetskopia av din ansökan, databas, och så vidare, innan du försöker några korrigeringar eller ändringar i systemet., Ännu bättre, om du har möjlighet, skapa en fullständig kopia av programmet på en sekundärstaging
server som inte är ”live” eller inte är annars aktiv och tillgänglig för allmänheten. Detta ger dig en ren testplats för att testa alla potentiella korrigeringar för att lösa problemet, utan att hota säkerheten eller heligheten i din live-applikation.
diagnostisera en 302 hittade svarskod
a 302 Found
svarskod indikerar att den begärda resursen tillfälligt ska nås på en annan Uri., Det är dock helt möjligt att servern är felkonfigurerad, vilket gör att den felaktigt svarar med302 Found
– koder, istället för standarden och förväntat 200 OK
– kod för en normal funktionell begäran. Således kommer en stor del av att diagnostisera problemet att gå igenom processen att dubbelkontrollera vilka resurser / webbadresser som genererar302 Found
svarskoder och bestämma om dessa koder är lämpliga eller inte.,
om ditt program svarar med302 Found
koder som det inte ska utfärda, är detta ett problem som många andra besökare kan uppleva också, dramatiskt hindrar din ansökan förmåga att betjäna användare. Vi går igenom några felsökningstips och tricks för att hjälpa dig att försöka lösa problemet. Om ingenting här fungerar, glöm inte att Google är din vän. Prova att söka efter specifika termer relaterade till problemet, till exempel namnet på programmets CMS-eller webbserverprogramvara, tillsammans med 302 Found
., Chansen är att du hittar andra som har upplevt detta problem och har hittat en lösning.
felsökning på serversidan
Här är några ytterligare tips som hjälper dig att felsöka vad som kan orsaka att 302 Found
visas på serversidan av saker:
bekräfta din serverkonfiguration
din ansökan körs sannolikt på en server som använder en av de två mest populära webbserverprogramvaran, Apache
eller Apache
., Vid tidpunkten för publiceringen utgör båda dessa webbservrar over 84%
av världens webbserverprogramvara! En av de första stegen du kan vidta för att avgöra vad som kan orsaka dessa302 Found
svarskoder är att kontrollera konfigurationsfilerna för webbserverprogramvaran för oavsiktliga omdirigeringsinstruktioner.
för att avgöra vilken webbserver ditt program använder Vill du leta efter en nyckelfil. Om din webbserver är Apache leta efter en.htaccess
fil i rotkatalogen på din webbplats filsystem., Till exempel, om din ansökan är på en delad värd kommer du sannolikt att ha ett användarnamn som är associerat med värdkontot. I så fall finns applikationsrotkatalogen vanligtvis på sökvägen till/home/<username>/public_html/
, så filen.htaccess
skulle vara på/home/<username>/public_html/.htaccess
.
om du hittade filen.htaccess
öppnar du den i en textredigerare och letar efter rader som använderRewriteXXX
– direktiven, som ingår imod_rewrite
– modulen i Apache., Det grundläggande konceptet är dock att ettRewriteCond
– direktiv definierar ett textbaserat mönster som kommer att matchas mot inmatade webbadresser. Om en matchande URL begärs av en besökare till webbplatsen används RewriteRule
– direktivet som följer ett eller fleraRewriteCond
– direktiven för att utföra den faktiska omdirigeringen av begäran till lämplig webbadress.,
till exempel, här är en enkelRewriteCond
ochRewriteRule
kombination som matchar alla inkommande förfrågningar tillexample.com
och etablerar en tillfälligt omdirigering till samma Uri påtemporary-example.com
domän istället:
RewriteEngine onRewriteCond %{HTTP_HOST} ^example\.com$RewriteRule ^(.*)$ http://www.temporary-example.com/$1
Lägg märke till den extra flaggan i slutet avRewriteRule
, som uttryckligen anger att svarskoden ska vara302
, vilket indikerar för användaragenter (webbläsare) att detta är en tillfällig omdirigering., Om du hittar några konstigaRewriteCond
ellerRewriteRule
– direktiven i filen.htaccess
som inte verkar tillhöra, försök att tillfälligt kommentera dem (med hjälp av karaktärsprefixet#
) och starta om webbservern för att se om det löser problemet.
å andra sidan, om din server körs på nginx
, måste du leta efter en helt annan konfigurationsfil., Som standard heter den här filen nginx.conf
och finns i en av några vanliga kataloger: /usr/local/nginx/conf
, /etc/nginx
eller /usr/local/etc/nginx
. Öppna nginx.conf
I en textredigerare och leta efter rewrite
– direktiv som använder flaggan redirect
. Här är till exempel en enkel block directive
(dvs., en namngiven uppsättning direktiv) som konfigurerar en virtuell server genom att skapa en tillfällig omdirigering från example.com
till temporary-example.com
:
server { listen 80; listen 443 ssl; server_name www.example.com; rewrite ^/$ http://www.temporary-example.com redirect;}
Rewrite
-direktiven i nginx
liknar RewriteCond
och RewriteRule
direktiv som finns i Apache
, eftersom de tenderar att innehålla mer komplexa textbaserade mönster för sökning., Hur som helst, Titta igenom dinanginx.conf
– fil för onormalarewrite
– direktiv som inkluderarredirect
– flaggan (alternativet permanent
– flaggan kommer att utfärda 301
svarskoder istället). Kommentera eventuella avvikelser innan du startar om servern för att se om problemet löstes.
Sök efter föråldrad programvara
RFC-specifikationsdokumentet för HTTP 1.,0 uppgav att syftet med en302 Found
svarskod var att ange att klienten skulle utföra en tillfällig omdirigering. Många nyare webbläsare skulle dock behandla en302
– kod som mottagits via enPOST
– begäran som en felaktigGET
– begäran istället, vilket orsakade problem och förvirring för vissa webbserverprogramvaror som försökte få webbläsare att utföra rätt uppgift när tillfällig omdirigering krävdes. För att lösa detta HTTP 1.,1 RFC-specifikationsdokumentet lade till svarskoderna 303 See Other
och 307 Temporary Redirect
, som är uttryckliga sätt att hantera POST-to-GET
respektive tillfälliga direkta svar.
skura loggarna
nästan varje webbapplikation kommer att hålla någon form av serversidan loggar. Application logs
är vanligtvis historiken för vad programmet gjorde, till exempel vilka sidor som begärdes, vilka servrar det kopplade till, vilka databasresultat det ger och så vidare., Server logs
är relaterade till den faktiska hårdvaran som kör programmet, och kommer ofta att ge information om hälsa och status för alla anslutna tjänster, eller till och med bara servern själv. Google ”loggar” om du använder ett CMS, eller ”loggar” och ”loggar” om du kör ett anpassat program, för att få mer information om att hitta loggarna i fråga.
felsöka din programkod
om allt annat misslyckas kan det vara så att ett problem i någon anpassad kod i din ansökan orsakar problemet., Försök att diagnostisera där problemet kan komma från genom att manuellt felsöka din ansökan, tillsammans med att analysera via program-och serverloggar. Helst gör en kopia av hela programmet till en lokal utvecklingsmaskin och utför en steg-för-steg-felsökningsprocess, vilket gör att du kan återskapa det exakta scenariot där 302 Found
inträffade och visa programkoden för tillfället något går fel.,
oavsett orsaken är utseendet på ett302 Found
inom din egen webbapplikation en stark indikation på att du kan behöva ett felhanteringsverktyg som hjälper dig att automatiskt upptäcka sådana fel i framtiden. Det bästa av dessa verktyg kan även varna dig och ditt team omedelbart när ett fel uppstår. Airbrakes felövervakningsprogram ger realtidsfelövervakning och automatisk undantagsrapportering för alla dina utvecklingsprojekt., Airbrakes toppmoderna webbinstrumentpanel säkerställer att du får dygnet runt statusuppdateringar på din applikations hälsa och felfrekvenser. Oavsett vad du arbetar med, integreras Airbrake enkelt med alla de mest populära språken och ramarna. Dessutom gör Airbrake det enkelt att anpassa undantagsparametrar, samtidigt som du får fullständig kontroll över det aktiva felfiltersystemet, så du samlar bara de fel som betyder mest.,
kolla in Airbrakes felövervakningsprogram idag och se själv varför så många av världens bästa ingenjörsteam använder Airbrake för att revolutionera sina undantagshanteringspraxis!