302 talált: mi az és hogyan kell kijavítani

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 a302 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 Foundmellett., 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 302kódot, amelyet a POSThibá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!

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük