A 302 talált üzenet egy HTTP response status code
, jelezve, hogy a kért erőforrást ideiglenesen áthelyezték egy másik URI
. Mivel a hely-vagy aktuális átirányítási irányelv a jövőben megváltozhat, a 302 Found
válaszkódot kapó ügyfélnek továbbra is az eredeti URI-t kell használnia a jövőbeli kérésekhez.,
sajnos nehéz lehet megkülönböztetni az összes lehetséges HTTP válaszkódot, és meghatározni a hibák pontos okát, mint például a 302 Found
kód. Több tucat lehetséges HTTP állapotkódot használnak az ügyfél, egy webes alkalmazás, egy webszerver, valamint a használatban lévő harmadik féltől származó webes szolgáltatások sokaságának ábrázolására, így egy adott állapotkód okának meghatározása kihívást jelenthet., Ebben a cikkben megvizsgáljuk a 302 Found
kódot néhány hibaelhárítási tipp megvizsgálásával, valamint néhány lehetséges megoldással a közös problémákra, amelyek ezt a problémát okozhatják a saját webes alkalmazásain belül, tehát menjünk hozzá!
A probléma szerver oldali
minden HTTP válasz állapotkódok, amelyek a 3xx
Kategória tekinthető redirection messages
. Az ilyen kódok azt jelzik a felhasználói ügynöknek (azaz az Ön böngészőjének), hogy további műveletre van szükség a kérés teljesítéséhez és a kívánt erőforrás eléréséhez., Ellentétben client error responses
megtalálható a 4xx
kódok, mint például a 404 Not Found Error
a közelmúltban felfedeztük, amely akár kliens -, akár szerver oldali kérdésből származhat, 302 Found
kód általában problémát jelez a tényleges webszerveren hosting az alkalmazás.
Ez azt jelenti, hogy a 302 Found
megjelenése általában nem olyan, ami sok felhasználói beavatkozást igényel. Minden modern böngésző automatikusan felismeri a302 Found
válaszkódot, és automatikusan feldolgozza az ideiglenes átirányítási műveletet., Az alkalmazást tároló webszerver általában tartalmaz egy speciális Location
fejlécet az Ügyfélnek küldött válasz részeként. Ez aLocation
fejléc jelzi az új URL-t, ahol a kért erőforrás megtalálható. Ha például egy kérés érkezik a URL eléréséhez, de a webkiszolgáló úgy van beállítva, hogy az átirányítást biztonságos verzióra kényszerítse a
https
használatával, a szerver válasz tartalmazza a Location: https://airbrake.io
fejlécet., Ez azt mondja a böngészőnek, hogy ezt az egyetlen kérést átirányítsa a
biztonságos URL-címére. A legtöbb esetben a böngésző automatikusan felismeri ezt a
302 Found
válaszkódot, olvassa el az újLocation
URL-t, majd átirányítja a kérést az új helyre.
fontos azonban szem előtt tartani, hogy a302 Found
válaszkódot teljesen más célokra használják, mint a301 Moved Permanently
a múlt héten., Abban az esetben, ha az korábbi, az átirányítás kell ideiglenes (azaz csak a jelenlegi, egységes kérelem) — a böngésző kell “emlékszik” az eredeti URI, majd a folyamat jövőbeni kéri, ugyanazt URI. A301 Moved Permanently
kóddal azonban a böngészőnek azt mondják, hogy az eredeti URI már nem érvényes, ezért minden jövőbeli kérésnek a Location
fejléc által biztosított új URI-t kell használnia.,
mivel a 302 Found
azt jelzi, hogy valami rosszul ment a server
alkalmazásban, nagyrészt figyelmen kívül hagyhatjuk aclient
dolgok oldalát. Ha egy problémát próbálsz diagnosztizálni a saját alkalmazásoddal, akkor azonnal figyelmen kívül hagyhatod a legtöbb kliens oldali kódot és komponenst, például HTML-t, lépcsőzetes stíluslapokat (CSS), kliens oldali Javascriptet stb. Ez nem vonatkozik kizárólag a weboldalak, bármelyik., Sok okos telefon alkalmazások, amelyek egy modern kinézetű felhasználói felület ténylegesen hajtott egy normál webes alkalmazás a színfalak mögött; az egyik, hogy egyszerűen rejtve a felhasználó. Ha ilyen alkalmazást használ, és a302 Found
előfordul, a probléma nem kapcsolódik a telefonra vagy a helyi tesztelő eszközre telepített alkalmazáshoz. Ehelyett a szerveroldalon lesz valami, ami a legtöbb logikát, feldolgozást végzi a színfalak mögött, a felhasználó számára bemutatott helyi felület hatáskörén kívül.,
Ha az alkalmazás nem várt302 Found
válaszkódokat generál, számos lépést tehet a probléma diagnosztizálására.
Kezdje egy alapos alkalmazás biztonsági mentés
mint bármi, akkor jobb, ha játszott, hogy biztonságos az elején, mint a csavart valamit, majd megbánni később az úton. Mint ilyen, fontos, hogy teljes biztonsági másolatot készítsen az alkalmazásáról, adatbázisáról stb., Mielőtt bármilyen javítást vagy módosítást megkísérelne a rendszerben., Még jobb, ha a képesség -, hozzon létre egy teljes példányát a kérelem rá egy másodlagos staging
szerver, hogy nem “élő” vagy nem különben az aktív, mind a nyilvánosság számára hozzáférhetővé. Ez tiszta tesztelési területet biztosít Önnek, amellyel tesztelheti az összes lehetséges javítást a probléma megoldásához, anélkül, hogy veszélyeztetné az ÉLŐ alkalmazás biztonságát vagy szentségét.
A 302 talált válaszkód diagnosztizálása
a 302 Found
válaszkód azt jelzi, hogy a kért erőforrást ideiglenesen egy másik URI-n kell elérni., Azonban teljesen lehetséges, hogy a szerver rosszul van konfigurálva, így a 302 Found
kódokkal nem megfelelően reagál a standard és a várt 200 OK
egy normál, funkcionális kérés kódja helyett. Így a probléma diagnosztizálásának nagy része a forrás/URL-ek generálásának kettős ellenőrzésén megy keresztül 302 Found
válaszkódok és annak meghatározása, hogy ezek a kódok megfelelőek-e vagy sem.,
Ha az alkalmazás válaszol a 302 Found
kódokkal, amelyeket nem szabad kiadni, ez egy olyan kérdés, amelyet sok más látogató is tapasztalhat, ami drámaian akadályozza az alkalmazás azon képességét, hogy kiszolgálja a felhasználókat. Áttekintünk néhány hibaelhárítási tippet és trükköt, amelyek segítenek megoldani ezt a problémát. Ha itt semmi sem működik, ne felejtsük el, hogy a Google a barátod. Próbáljon meg keresni az Ön problémájával kapcsolatos konkrét kifejezéseket, például az alkalmazás CMS vagy webszerver szoftverének nevét, a 302 Found
mellett., Valószínű, hogy talál másokat, akik ezt a problémát tapasztalták, és megoldást találtak.
Hibakeresés a Kiszolgáló-Oldala
Itt van néhány további tipp, hogy segítsen megoldani, hogy mi okozza a 302 Found
jelenik meg a kiszolgáló-oldala:
Erősítse meg A Konfigurációs Szerver
Az alkalmazás valószínűleg fut a szerveren, hogy használja a kettő közül az egyik legnépszerűbb web szerver szoftverek, Apache
vagy nginx
., A közzététel időpontjában mindkét webszerver a világ webszerver szoftverének over 84%
– jét alkotja! Így az egyik első lépés, amelyet megtehetsz annak meghatározására, hogy mi okozhatja ezeket a 302 Found
válaszkódokat, az, hogy ellenőrizze a webszerver szoftver konfigurációs fájljait a véletlen átirányítási utasításokért.
annak meghatározásához, hogy melyik webkiszolgálót használja az alkalmazás, kulcsfájlt szeretne keresni. Ha a webszerver Apache, akkor keressen egy .htaccess
fájlt a webhely fájlrendszerének gyökérkönyvtárában., Például, ha az alkalmazás megosztott gazdagépen van, akkor valószínűleg felhasználónevet társít a hosting fiókhoz. Ebben az esetben az alkalmazás gyökérkönyvtára általában a /home/<username>/public_html/
útvonalon található, így a .htaccess
fájl /home/<username>/public_html/.htaccess
.
Ha megtalálta a.htaccess
fájlt, akkor nyissa meg egy szövegszerkesztőben, és keresse meg aRewriteXXX
irányelveket használó sorokat, amelyek azmod_rewrite
modul részét képezik az Apache-ban., Az, hogy pontosan hogyan működnek ezek a szabályok, jóval túlmutat e cikk hatályán, azonban az alapkoncepció az, hogy egy RewriteCond
irányelv olyan szövegalapú mintát határoz meg, amely illeszkedik a megadott URL-ekhez. Ha a webhely látogatója megfelelő URL-t kér, akkor aRewriteRule
irányelvet, amely egy vagy többRewriteCond
irányelvet követi, a kérelem tényleges átirányításának a megfelelő URL-re történő végrehajtására használják.,
például, itt van egy egyszerű RewriteCond
vagy RewriteRule
kombinációt, ami egyezik az összes bejövő kéréseket example.com
, majd létrehozza az ideiglenes átirányítás, hogy ugyanaz az URI a temporary-example.com
domain helyett:
RewriteEngine onRewriteCond %{HTTP_HOST} ^example\.com$RewriteRule ^(.*)$ http://www.temporary-example.com/$1
Értesítés a plusz zászló végén a RewriteRule
, amely egyértelműen kimondja, hogy a válasz kódot kell 302
, jelezve, hogy a felhasználói alkalmazások (böngésző), hogy ez egy ideiglenes átirányítás., Így, ha bármilyen furcsa RewriteCond
vagy RewriteRule
irányelvek a .htaccess
fájl, amely úgy tűnik, nem illeti meg, akkor ideiglenesen kommentálja őket (a #
karakter előtag) újra a web szerver, hátha ez megoldja a problémát.
másrészt, ha a szerver nginx
fut, akkor teljesen más konfigurációs fájlt kell keresnie., Alapértelmezésben ez a fájl neve nginx.conf
és található az egyik néhány közös könyvtárak: /usr/local/nginx/conf
, /etc/nginx
, vagy /usr/local/etc/nginx
. Miután megtalálta, nyissa meg anginx.conf
szövegszerkesztőben, és keresse meg arewrite
irányelveket, amelyek aredirect
zászlót használják. Például itt van egy egyszerű block directive
(azaz, a megnevezett Irányelvek), amely konfigurálja a virtuális szerver létrehozásával ideiglenes átirányítás example.com
a temporary-example.com
:
server { listen 80; listen 443 ssl; server_name www.example.com; rewrite ^/$ http://www.temporary-example.com redirect;}
Rewrite
Irányelvek hasonló a RewriteCond
és RewriteRule
>Apache
, mivel ezek általában összetettebb szövegalapú mintákat tartalmaznak a kereséshez., Akárhogy is, nézd át anginx.conf
fájlt bármilyen rendellenesrewrite
irányelvek, amelyek tartalmazzák aredirect
zászló (az alternatívpermanent
zászló ad ki301
válaszkódok helyett). Kommentáljon bármilyen rendellenességet a szerver újraindítása előtt, hogy megnézze, megoldódott-e a probléma.
ellenőrizze az elavult szoftvert
az RFC specifikációs dokumentum HTTP 1.,0 kijelentette, hogy a 302 Found
válaszkód célja az volt, hogy jelezze, hogy az ügyfélnek ideiglenes átirányítást kell végrehajtania. Azonban sok újabb böngésző feldolgozza a 302
kódot, amelyet a POST
hibás GET
kérésként kapott, ami problémákat és zavart okozott néhány olyan webszerver szoftver számára, amely megpróbálta a böngészőket a megfelelő feladat elvégzésére, amikor ideiglenes átirányításra volt szükség. Ennek megoldásához a HTTP 1.,1 RFC specifikációs dokumentum hozzáadta a 303 See Other
és 307 Temporary Redirect
válaszkódokat, amelyek kifejezetten a POST-to-GET
és ideiglenes közvetlen válaszok kezelésére szolgálnak.
kutat a naplók
szinte minden webes alkalmazás fogja valamilyen formában szerver oldali naplók. Application logs
általában az alkalmazás történetének története, például az, hogy mely oldalakat kérték, mely szerverekhez kapcsolódott, milyen adatbázist eredményez, stb., Server logs
kapcsolódnak a tényleges hardver, amely fut az alkalmazás, és gyakran ad részleteket az egészségügyi állapotát az összes csatlakoztatott szolgáltatások, vagy akár csak a szerver maga. Google ” naplók “ha CMS-t használ, vagy” naplók “és ” naplók”, ha egyéni alkalmazást futtat, hogy további információt kapjon a szóban forgó naplók megtalálásáról.
hibakeresés az alkalmazás kódja
ha minden más nem sikerül, előfordulhat, hogy az alkalmazáson belüli egyéni kód problémája okozza a problémát., Próbálja meg diagnosztizálni, hogy honnan származhat a probléma az alkalmazás manuális hibakeresésével, valamint az alkalmazás-és szervernaplók elemzésével. Ideális esetben készítsen másolatot a teljes alkalmazásról egy helyi fejlesztési gépre, és végezzen lépésről lépésre hibakeresési folyamatot, amely lehetővé teszi, hogy újra létrehozza a pontos forgatókönyvet, amelyben a 302 Found
megtörtént, és az alkalmazás kódját abban a pillanatban, amikor valami rosszul megy.,
nem számít, mi az oka, a 302 Found
megjelenése a saját webes alkalmazásán belül erős jelzés arra, hogy szükség lehet egy hibakezelő eszközre, amely segít automatikusan felismerni az ilyen hibákat a jövőben. A legjobb ilyen eszközök is figyelmezteti Önt és a csapat azonnal, ha hiba történik. Az Airbrake hibafigyelő szoftvere valós idejű hibafigyelést és automatikus kivételjelentést biztosít minden fejlesztési projekthez., Az Airbrake legkorszerűbb webes műszerfala biztosítja, hogy éjjel-nappal megkapja az alkalmazás állapotfrissítéseit az alkalmazás egészségi állapotáról. Nem számít, hogy min dolgozol, az Airbrake könnyen integrálható a legnépszerűbb nyelvekkel és keretrendszerekkel. Ráadásul az Airbrake megkönnyíti a kivételparaméterek testreszabását, miközben teljes ellenőrzést biztosít az aktív hibaszűrő rendszerről, így csak a legfontosabb hibákat gyűjti össze.,
nézze meg az Airbrake hibafigyelő szoftverét ma, és nézze meg saját szemével, hogy a világ számos legjobb mérnöki csapata miért használja az Airbrake-et a kivételkezelési gyakorlat forradalmasításához!