O 302 Găsit mesaj este un HTTP response status code
indică faptul că resursa solicitată a fost mutat temporar la o altă URI
. Deoarece locația sau directiva actuală de redirecționare ar putea fi modificate în viitor, un client care primește un 302 Found
cod de răspuns ar trebui să continue să utilizeze URI-ul original pentru solicitările viitoare.,din păcate, poate fi dificil să se diferențieze între toate codurile de răspuns HTTP posibile și să se determine cauza exactă a erorilor, cum ar fi codul 302 Found
. Există zeci de posibile coduri de stare HTTP utilizate pentru a reprezenta relația complexă dintre client, o aplicație web, un server web și multitudinea de servicii web terțe care pot fi utilizate, astfel încât determinarea cauzei unui anumit cod de stare poate fi o provocare., În acest articol vom examina 302 Found
cod uitandu-se la câteva sfaturi de depanare, împreună cu unele posibile soluții pentru problemele comune care ar putea fi cauza această problemă în propriile aplicații web, astfel încât să trecem la treabă!
Problema este pe Partea de Server
Toate răspuns HTTP coduri de stare, care sunt în 3xx
categorie sunt considerate redirection messages
. Astfel de coduri indică agentului utilizator (adică browserului dvs. web) că este necesară o acțiune suplimentară pentru a finaliza solicitarea și a accesa resursa dorită., Spre deosebire de client error responses
găsit în 4xx
coduri, cum ar fi 404 Not Found Error
am explorat recent, care ar putea proveni fie de la un client sau de server-side problemă, 302 Found
cod indică, în general, o problemă pe real server de web hosting cererea dumneavoastră.acestea fiind spuse, apariția unui 302 Found
nu este de obicei ceva care necesită multă intervenție a utilizatorului. Toate browserele moderne vor detecta automat codul de răspuns 302 Found
și vor procesa automat acțiunea de redirecționare temporară., Serverul web care găzduiește aplicația va include de obicei un antet special Location
ca parte a răspunsului pe care îl trimite Clientului. Acest antet Location
indică noua adresă URL unde poate fi găsită resursa solicitată. De exemplu, dacă o cerere vine pentru a accesa URL-ul , dar serverul web este configurat pentru a forța redirecționarea la o versiune sigură folosind
https
, răspunsul serverului va include Location: https://airbrake.io
antet., Asta spune browser-ului că ar trebui să redirecționeze această singură cerere să garantate URL-ul
. În cele mai multe cazuri, browser-ul va detecta automat acest lucru
302 Found
cod de răspuns, citiți noul Location
URL-ul și redirecționa cererea pentru noua locație.
cu toate Acestea, este important să păstrați în minte că 302 Found
codul de răspuns este folosit pentru complet diferite scopuri decât 301 Moved Permanently
ne-am uitat la ultima săptămână., În cazul primei, redirecționarea ar trebui să fie temporară (adică doar pentru cererea curentă, unică) — browserul ar trebui să „rețină” URI-ul original și să proceseze orice solicitări viitoare folosind același URI. Cu toate acestea, cu un 301 Moved Permanently
cod browser-ul este că originalul URI nu mai sunt valabile, deci toate solicitările viitoare ar trebui să folosească noul URI furnizate de Location
antet.,
Deoarece 302 Found
indică faptul că ceva a mers greșit în server
de cererea dumneavoastră, putem în mare măsură ignorate client
parte de lucruri. Dacă încercați să diagnosticați o problemă cu propria aplicație, puteți ignora imediat Majoritatea codului și componentelor din partea clientului, cum ar fi HTML, cascading style sheets (CSS), JavaScript din partea clientului și așa mai departe. Acest lucru nu se aplică numai site-uri web, fie., Multe aplicații pentru telefoane inteligente care au o interfață de utilizator modernă sunt de fapt alimentate de o aplicație web normală în spatele scenei; una care este pur și simplu ascunsă de utilizator. Dacă utilizați o astfel de aplicație și apare un 302 Found
, problema nu va fi legată de aplicația instalată pe telefon sau pe dispozitivul local de testare. În schimb, va fi ceva pe partea de server, care efectuează cea mai mare parte a logicii și procesării în spatele scenei, în afara domeniului de aplicare al interfeței locale prezentate utilizatorului.,
Dacă aplicația dvs. generează 302 Found
coduri de răspuns, Există o serie de pași pe care îi puteți lua pentru a diagnostica problema.
începeți cu o copie de rezervă completă a aplicației
ca și în cazul oricărui lucru, este mai bine să îl fi jucat în siguranță la început decât să înșurubați ceva și să ajungeți să regretați mai târziu pe drum. Ca atare, este esențial să efectuați o copie de rezervă completă a aplicației, bazei de date și așa mai departe, înainte de a încerca orice remedieri sau modificări ale sistemului., Chiar mai bine, dacă aveți capacitatea, creați o copie completă a aplicației pe un server secundar staging
care nu este „live” sau nu este activ și disponibil publicului. Acest lucru vă va oferi un teren de testare curat cu care să testați toate remedierile potențiale pentru a rezolva problema, fără a amenința securitatea sau sfințenia aplicației dvs. live.
diagnosticarea unui cod de răspuns găsit 302
A 302 Found
Codul De răspuns indică faptul că resursa solicitată ar trebui accesată temporar la un URI diferit., Cu toate acestea, este posibil ca serverul este configurat greșit, făcându-l să necorespunzător răspunde cu 302 Found
coduri, în loc de standard și de așteptat 200 OK
cod de normal, funcțional cerere. Astfel, o mare parte din diagnosticarea problemei va trece prin procesul de verificare dublă a resurselor/URL-urilor care generează 302 Found
codurile de răspuns și determinarea dacă aceste coduri sunt adecvate sau nu.,
Dacă aplicația dvs. răspunde cu 302 Found
coduri pe care nu ar trebui să le emită, aceasta este o problemă pe care mulți alți vizitatori o pot întâmpina, de asemenea, împiedicând dramatic capacitatea aplicației dvs. de a deservi utilizatorii. Vom trece peste câteva sfaturi și trucuri de depanare pentru a vă ajuta să încercați să rezolvați această problemă. Dacă nimic nu funcționează aici, nu uitați că Google este prietenul tău. Încercați să căutați termeni specifici legați de problema dvs., cum ar fi numele software-ului CMS sau al serverului web al aplicației dvs., împreună cu 302 Found
., Sunt șanse să găsiți alții care au experimentat această problemă și au găsit o soluție.
Depanare de pe Partea de Server
Aici sunt câteva sfaturi suplimentare pentru a ajuta la depanarea ce ar putea fi cauza 302 Found
să apară pe partea de server de lucruri:
Confirmați Server de Configurare
cererea Dumneavoastră este probabil rulează pe un server care utilizează una dintre cele două cele mai populare web server software-uri, Apache
sau nginx
., La momentul publicării, ambele servere web alcătuiesc over 84%
din software-ul serverului web din lume! Astfel, una dintre primele măsuri puteți lua pentru a determina ceea ce ar putea cauza aceste 302 Found
coduri de răspuns este de a verifica fișierele de configurare pentru serverul dvs. de web software pentru neintenționată redirecționa instrucțiuni.
pentru a determina ce server web utilizează aplicația dvs., veți dori să căutați un fișier cheie. Dacă serverul dvs. web este Apache, atunci căutați un fișier .htaccess
din directorul rădăcină al sistemului de fișiere al site-ului dvs. web., De exemplu, dacă aplicația dvs. se află pe o gazdă partajată, probabil că veți avea un nume de utilizator asociat contului de găzduire. Într-un asemenea caz, la cererea directorul rădăcină este, de obicei găsit la calea /home/<username>/public_html/
, deci .htaccess
dosar ar fi la /home/<username>/public_html/.htaccess
.
Dacă aveți situat .htaccess
fișier, apoi deschideți-l într-un editor de text și să căutați linii care folosesc RewriteXXX
directive, care fac parte din mod_rewrite
modul în Apache., Acoperă exact modul în care aceste norme de lucru este dincolo de domeniul de aplicare a prezentului articol, cu toate acestea, conceptul de bază este că un RewriteCond
directiva definește un text pe bază de model care va fi compensată de Url-uri au intrat. Dacă o potrivire URL-ul este solicitat de către un vizitator al site-ului, RewriteRule
directiva care urmează una sau mai multe RewriteCond
directive este utilizat pentru a efectua efectiv redirecționare de la cerere la URL-ul corespunzător.,
De exemplu, aici este un simplu RewriteCond
și RewriteRule
combinație care se potrivește toate cererile primite pentru example.com
și stabilește o temporar redirecționarea la aceeași URI pe temporary-example.com
de domeniu în loc:
RewriteEngine onRewriteCond %{HTTP_HOST} ^example\.com$RewriteRule ^(.*)$ http://www.temporary-example.com/$1
Observați steag la sfârșitul RewriteRule
, care prevede în mod explicit că codul de răspuns ar trebui să fie 302
, indicând pentru agentii utilizator (browsere) că aceasta este o redirecționare temporară., Astfel, dacă veți găsi orice ciudat RewriteCond
sau RewriteRule
directive în .htaccess
fișier care nu părea să aparțină, să încerce temporar comentând-le (folosind #
caracter prefix) și reporniți serverul de web pentru a vedea dacă acest lucru rezolvă problema.
Pe de altă parte, dacă serverul dvs. rulează pe nginx
, va trebui să căutați un fișier de configurare complet diferit., Implicit, acest fișier este numit nginx.conf
și este situat într-una din câteva comune directoare: /usr/local/nginx/conf
, /etc/nginx
sau /usr/local/etc/nginx
. După ce află, de a deschide nginx.conf
într-un editor de text si uita-te pentru rewrite
directive care utilizează redirect
pavilion. De exemplu, aici este un simplu block directive
(adică ., un nume set de directive), care configurează un server virtual prin crearea unui temporară redirecționare de la example.com
la temporary-example.com
:
server { listen 80; listen 443 ssl; server_name www.example.com; rewrite ^/$ http://www.temporary-example.com redirect;}
Rewrite
directive în nginx
sunt similare cu RewriteCond
și RewriteRule
directivele găsit în Apache
, deoarece ele tind să conțină mai complexe bazate pe text a modelelor de căutare., Oricum, uita-te prin nginx.conf
fișierul pentru orice anormale rewrite
directive include redirect
flag (alternativa permanent
flag va emite 301
coduri de răspuns în loc). Comentați orice anomalii înainte de a reporni serverul pentru a vedea dacă problema a fost rezolvată.
verificați dacă există Software învechit
documentul de specificație RFC pentru HTTP 1.,0 a declarat că scopul unui 302 Found
cod de răspuns a fost de a indica clientul ar trebui să efectueze o redirecționare temporară. Cu toate acestea, mai multe browsere noi va prelucra un 302
codul primit prin intermediul unui POST
cerere ca un eronate GET
cerere în schimb, care a cauzat probleme și confuzie pentru un web server software-uri de încercarea de a obține browsere pentru a efectua corect de sarcină atunci când temporară de redirecționare a fost necesară. Pentru a rezolva această HTTP 1.,1 RFC specification document, a adăugat 303 See Other
și 307 Temporary Redirect
coduri de răspuns, care sunt explicite mijloace de manipulare POST-to-GET
și temporare răspunsuri directe, respectiv.
cutreiera jurnalele
aproape fiecare aplicație web va păstra o formă de jurnale server-side. Application logs
Sunt de obicei Istoricul a ceea ce a făcut aplicația, cum ar fi paginile solicitate, serverele la care s-a conectat, rezultatele bazei de date pe care le oferă și așa mai departe., Server logs
sunt legate de hardware-ul real care rulează aplicația, și va oferi adesea detalii despre starea de sănătate și starea tuturor serviciilor conectate, sau chiar doar serverul în sine. „Jurnale” Google dacă utilizați un CMS sau „jurnale” și „jurnale” dacă rulați o aplicație personalizată, pentru a obține mai multe informații despre găsirea jurnalelor în cauză.
depanați codul aplicației
dacă toate celelalte nu reușesc, este posibil ca o problemă într-un cod personalizat din aplicația dvs. să provoace problema., Încercați să diagnosticați de unde poate veni problema prin depanarea manuală a aplicației dvs., împreună cu parsarea prin jurnalele de aplicații și servere. În mod ideal, faceți o copie a întregii aplicații pe o mașină de dezvoltare locală și efectuați un proces de depanare pas cu pas, care vă va permite să recreați scenariul exact în care a apărut 302 Found
și vizualizați codul aplicației în momentul în care ceva nu merge bine.,
indiferent din ce cauza, aspectul de un 302 Found
în propria aplicație web este un indiciu puternic care ați putea avea nevoie o eroare instrument de management pentru a vă ajuta să detecta automat astfel de erori în viitor. Cel mai bun dintre aceste instrumente vă poate avertiza chiar și pe dvs. și pe echipa dvs. imediat când apare o eroare. Software-ul de monitorizare a erorilor Airbrake oferă monitorizarea erorilor în timp real și raportarea automată a excepțiilor pentru toate proiectele dvs. de dezvoltare., Tabloul de bord web de ultimă generație al Airbrake vă asigură că primiți actualizări de stare non-stop cu privire la ratele de sănătate și eroare ale aplicației dvs. Indiferent la ce lucrați, Airbrake se integrează cu ușurință cu toate cele mai populare limbi și cadre. În plus, Airbrake facilitează personalizarea parametrilor de excepție, oferindu-vă în același timp un control complet asupra sistemului activ de filtrare a erorilor, astfel încât să adunați doar Erorile care contează cel mai mult.,verificați software-ul de monitorizare a erorilor Airbrake astăzi și vedeți-vă de ce atât de multe dintre cele mai bune echipe de inginerie din lume folosesc Airbrake pentru a revoluționa practicile lor de manipulare a excepțiilor!