En 302 Fundet budskab er en HTTP response status code
, der angiver, at den anmodede ressource er blevet midlertidigt flyttet til en anden URI
. Da placeringsdirektivet eller det aktuelle omdirigeringsdirektiv muligvis ændres i fremtiden, skal en klient, der modtager en 302 Found
svarkode, fortsætte med at bruge den originale URI til fremtidige anmodninger.,
desværre kan det være vanskeligt at skelne mellem alle mulige HTTP-svarkoder og bestemme den nøjagtige årsag til fejl som 302 Found
kode. Der er snesevis af mulige http-statuskoder, der bruges til at repræsentere det komplekse forhold mellem klienten, en clientebapplikation, en webebserver, og mangfoldigheden af tredjeparts webebtjenester, der kan være i brug, så det kan være udfordrende at bestemme årsagen til en bestemt statuskode., I denne artikel vil vi undersøge 302 Found
kode ved at se på et par fejlfindingstips sammen med nogle potentielle rettelser til almindelige problemer, der kan forårsage dette problem i dine egne webebapplikationer, så lad os komme til det!
Problemet er Server-Side
Alle HTTP-svar status koder, der er i 3xx
kategori anses redirection messages
. Din browebbro .ser), at der kræves en yderligere handling for at fuldføre anmodningen og få adgang til den ønskede ressource., I modsætning client error responses
, der findes i 4xx
– koder, som 404 Not Found Error
vi undersøgte for nylig, som kunne stamme fra enten en klient – eller server-side spørgsmål, 302 Found
koden generelt indikerer et problem på den faktiske web-server hosting af din ansøgning.
når det er sagt, er udseendet af en 302 Found
normalt ikke noget, der kræver meget brugerintervention. Alle moderne bro .sere registrerer automatisk 302 Found
svarkode og behandler den midlertidige omdirigeringshandling automatisk., Webebserveren, der er vært for applikationen, vil typisk indeholde en særligLocation
header som en del af det Svar, den sender til klienten. DenneLocation
header angiver den nye URL, hvor den ønskede ressource kan findes. For eksempel, hvis der kommer en anmodning i at få adgang til den URL , men web-serveren er konfigureret til at tvinge omdirigering til en sikker version ved hjælp af
https
, svar fra serveren vil omfatte Location: https://airbrake.io
header., Dette fortæller bro .seren, at den skal omdirigere denne enkelt anmodning til til den sikrede URL til
. I de fleste tilfælde registrerer bro .seren automatisk denne
302 Found
svarkode, læser den nye Location
URL, og omdirigerer anmodningen til den nye placering.
det er Dog vigtigt at huske på, at 302 Found
response kode bruges til helt andre formål end 301 Moved Permanently
vi kiggede på sidste uge., I tilfælde af førstnævnte skal omdirigeringen være midlertidig (dvs.kun for den nuværende, enkelt anmodning) — bro .seren skal “huske” den originale URI og behandle eventuelle fremtidige anmodninger ved hjælp af den samme URI. Men med en 301 Moved Permanently
koden browseren er blevet fortalt, at den oprindelige-URI ‘ en er ikke længere gyldige, så alle fremtidige anmodninger skal bruge den nye URI fastsat af Location
header.,
Da 302 Found
angiver, at noget er gået galt i server
af din ansøgning, kan vi stort set se bort fra den client
side af tingene. Hvis du forsøger at diagnosticere et problem med din egen applikation, kan du straks ignorere de fleste client-side kode og komponenter, såsom HTML, cascading style sheets (CSS), klient-side JavaScript, og så videre. Dette gælder ikke udelukkende for webebsteder, enten., Mange smartphone-apps, der har en moderne udseende brugergrænseflade, drives faktisk af en normal applicationebapplikation bag kulisserne; en, der simpelthen er skjult for brugeren. Hvis du bruger en sådan applikation, og en 302 Found
opstår, vil problemet ikke være relateret til den app, der er installeret på din telefon eller lokale testenhed. I stedet vil det være noget på serversiden, der udfører det meste af logikken og behandlingen bag kulisserne uden for rammerne af den lokale grænseflade, der præsenteres for brugeren.,
Hvis din applikation genererer uventet 302 Found
svarkoder der er en række trin, du kan tage for at diagnosticere problemet.
Start Med en Grundig Anvendelse Backup
Som med alt andet, er det bedre at have spillet det sikkert på start, end at skrue noget op, og komme til at fortryde det senere nede ad vejen. Som sådan er det afgørende, at du udfører en fuld backup af din ansøgning, database, og så videre, før du forsøger nogen rettelser eller ændringer i systemet., Endnu bedre, hvis du har evnen, skal du oprette en komplet kopi af applikationen til en sekundær staging
server, der ikke er “live” eller på anden måde ikke er aktiv og tilgængelig for offentligheden. Dette vil give dig en ren testplads, som du kan teste alle potentielle rettelser til at løse problemet uden at true sikkerheden eller helligheden i din live-applikation.
diagnosticering af en 302 fundet Responskode
A302 Found
svarkode indikerer, at den ønskede ressource midlertidigt skal tilgås ved en anden URI., Men det er helt muligt, at serveren er konfigureret forkert, får det til at reagere forkert med 302 Found
– koder, i stedet for standard og forventes 200 OK
koden for en normal, funktionelle anmodning. Således vil en stor del af diagnosticering af problemet gennemgå processen med at dobbelttjekke, hvilke ressourcer/Urebadresser der genererer 302 Found
svarkoder og bestemme, om disse koder er passende eller ej.,
Hvis din ansøgning svarer med 302 Found
koder, som den ikke bør udstede, er dette et problem, som mange andre besøgende også kan opleve, hvilket dramatisk forhindrer din applikations evne til at servicere brugere. Vi gennemgår nogle tip og tricks til fejlfinding for at hjælpe dig med at prøve at løse dette problem. Hvis intet her fungerer, skal du ikke glemme, at Google er din ven. Prøv at søge efter specifikke udtryk relateret til dit problem, såsom navnet på din applikations CMS-eller webebserversoft .are, sammen med 302 Found
., Chancerne er, at du finder andre, der har oplevet dette problem og har fundet en løsning.
Fejlfinding på den Server-Side
Her er nogle yderligere tips til at hjælpe dig med at foretage fejlfinding, hvad der kan være årsag til den 302 Found
til at blive vist på den server-side af tingene:
Bekræft Din Server Konfiguration
Din ansøgning er sandsynligvis kører på en server, der bruger en af de to mest populære web-server-software, Apache
eller nginx
., På tidspunktet for offentliggørelsen udgør begge disse diebservere over 84%
af verdens webebserversoft !are! Således er et af de første skridt, du kan tage for at bestemme, hvad der kan forårsage disse 302 Found
svarkoder, at kontrollere konfigurationsfilerne til din serverebserversoft .are for utilsigtede omdirigeringsinstruktioner.
for at bestemme, hvilken keyebserver din applikation bruger, skal du kigge efter en nøglefil. Hvis din webebserver er Apache, skal du kigge efter en .htaccess
fil i rodmappen på dit fileebstedsfilsystem., For eksempel, hvis din ansøgning er på en delt vært, vil du sandsynligvis have et brugernavn tilknyttet hostingkontoen. I et sådant tilfælde findes applikationsrodsmappen typisk på stien /home/<username>/public_html/
, så .htaccess
filen ville være på /home/<username>/public_html/.htaccess
.
Hvis du er placeret i .htaccess
fil, og derefter åbne det i en tekst-editor, og se efter linjer, der bruger RewriteXXX
direktiver, som er en del af mod_rewrite
modul til Apache., Dækker præcis, hvordan disse regler fungerer er langt ud over denne artikels anvendelsesområde, men det grundlæggende koncept er, at et RewriteCond
direktiv definerer et tekstbaseret mønster, der vil blive matchet mod indtastede Urebadresser. Hvis en besøgende på siteebstedet anmoder om en matchende URLEBADRESSE, bruges RewriteRule
– direktivet, der følger et eller flere RewriteCond
– direktiver til at udføre den faktiske omdirigering af anmodningen til den relevante URLEBADRESSE.,
For eksempel, her er en enkel RewriteCond
og RewriteRule
kombination, der passer til alle indkommende anmodninger til example.com
og opretter en midlertidig omdirigering til, at samme URI på temporary-example.com
domæne i stedet:
RewriteEngine onRewriteCond %{HTTP_HOST} ^example\.com$RewriteRule ^(.*)$ http://www.temporary-example.com/$1
Bemærk den ekstra flag i slutningen af RewriteRule
, som udtrykkeligt anfører, at den svar-koden skal være 302
, der angiver, at brugeren agenter (browsere), at dette er en midlertidig omdirigering., Således, hvis du finder nogen mærkelige RewriteCond
eller RewriteRule
direktiver i .htaccess
fil, der ikke synes at tilhøre, kan du prøve midlertidigt at kommentere dem (ved brug af #
karakter præfiks) og genstarte din web-server for at se, om dette løser problemet.
På den anden side, hvis din server kører på nginx
, skal du kigge efter en helt anden konfigurationsfil., Som standard hedder denne fil nginx.conf
og er placeret i et af nogle få almindelige mapper: /usr/local/nginx/conf
, /etc/nginx
, eller /usr/local/etc/nginx
. Når den er placeret, skal du åbne nginx.conf
i en teksteditor og kigge efter rewrite
direktiver, der bruger redirect
flag. For eksempel er her en simpel block directive
(dvs ., et navngivet sæt af direktiver), der konfigurerer en virtuel server ved at oprette en midlertidig omdirigering fra example.com
til temporary-example.com
:
server { listen 80; listen 443 ssl; server_name www.example.com; rewrite ^/$ http://www.temporary-example.com redirect;}
Rewrite
direktiver i nginx
ligner RewriteCond
og RewriteRule
direktiver, der findes i Apache
da de har tendens til at indeholde mere komplekse tekst-baseret mønstre for at søge., Enten måde, se gennem din nginx.conf
filen for enhver unormal rewrite
direktiver, der indeholder redirect
flag (den alternative permanent
flag vil udstede 301
svarkoder i stedet). Kommenter eventuelle abnormiteter, før du genstarter serveren for at se, om problemet blev løst.
kontroller for forældet Soft .are
RFC-specifikationsdokumentet for HTTP 1.,0 erklærede, at formålet med en302 Found
svarkode var at indikere, at klienten skulle udføre en midlertidig omdirigering. Men mange nyere browsere vil behandle en 302
– kode, der modtages via en POST
anmodning som en fejlagtig GET
anmodning i stedet, som forårsagede problemer og forvirring for nogle web-server-software, der forsøger at få browsere til at udføre den rette opgave, når midlertidig omdirigering var påkrævet. For at løse dette HTTP 1.,1 RFC specifikation dokument tilføjet 303 See Other
og 307 Temporary Redirect
svarkoder, som er eksplicitte metoder til håndtering af POST-to-GET
og midlertidige direkte svar, hhv.
gennemsøge Logs
næsten hver webebapplikation vil holde en form for server-side logs. Application logs
er typisk historien om, hvad applikationen gjorde, såsom hvilke sider der blev anmodet om, hvilke servere den har forbindelse til, hvilke databaseresultater den giver, og så videre., Server logs
relateret til den faktiske hardware, der kører programmet, og det vil ofte give oplysninger om helbredet og status for alle tilsluttede tjenester, eller bare selve serveren. Google “logs”, hvis du bruger et CMS, eller “logs” og “logs”, hvis du kører et brugerdefineret program, for at få flere oplysninger om at finde de pågældende logfiler.
fejlfind din applikationskode
Hvis alt andet mislykkes, kan det være, at et problem i en brugerdefineret kode i din applikation forårsager problemet., Prøv at diagnosticere, hvor problemet kan komme fra gennem manuelt debugging din ansøgning, sammen med parsing gennem ansøgning og server logs. Ideelt set skal du lave en kopi af hele applikationen til en lokal udviklingsmaskine og udføre en trinvis fejlfindingsproces, som giver dig mulighed for at genskabe det nøjagtige scenarie, hvor 302 Found
opstod og se applikationskoden i øjeblikket går noget galt.,
uanset hvad årsagen er, udseendet af en 302 Found
i din egen web-applikation er en stærk indikation af, at du muligvis har brug for en fejl management værktøj til at hjælpe dig med automatisk at opdage sådanne fejl i fremtiden. Det bedste af disse værktøjer kan endda advare dig og dit team med det samme, når der opstår en fejl. Airbrake s fejl overvågning soft .are giver real-time fejl overvågning og automatisk undtagelse rapportering for alle dine udviklingsprojekter., Airbrakes avancerede dashebdashboard sikrer, at du modtager statusopdateringer døgnet rundt om din applikations helbred og fejlfrekvenser. Uanset hvad du arbejder på, kan Airbrake nemt integreres med alle de mest populære sprog og rammer. Plus, Airbrake gør det nemt at tilpasse undtagelsesparametre, samtidig med at du giver fuld kontrol over det aktive fejlfiltersystem, så du kun samler de fejl, der betyder mest.,Tjek Airbrake ‘ s fejlovervågningssoft !are i dag, og se selv, hvorfor så mange af verdens bedste ingeniørteams bruger Airbrake til at revolutionere deres undtagelseshåndteringspraksis!