En 302-Funnet er en HTTP response status code
som indikerer at den forespurte ressursen har vært midlertidig flyttet til en annen URI
. Siden plasseringen eller gjeldende omdirigering direktiv kan endres i fremtiden, en klient som mottar en 302 Found
svar-koden skal fortsette å bruke den opprinnelige URI for fremtidige forespørsler.,
Dessverre, kan det være vanskelig å skille mellom alle mulige HTTP-svar-koder og bestemme den eksakte årsaken til feil som 302 Found
– koden. Det er dusinvis av mulige HTTP-statuskoder som brukes til å representere komplekse forholdet mellom klient, en web-applikasjon, en web server, og mange tredjeparts web-tjenester som kan være i bruk, så å finne årsaken til en bestemt status code kan være utfordrende., I denne artikkelen vil vi undersøke 302 Found
– koden ved å se på noen tips om feilsøking, sammen med noen potensielle løser vanlige problemer som kan være årsaken til dette problemet i din egen web-applikasjoner, så la oss få til det!
Problemet er Server-Side
Alle HTTP-svar status koder som er i 3xx
kategorien er vurdert redirection messages
. Slike koder indikere til brukeren agent (dvs. din nettleser) som et ytterligere tiltak er nødvendig for å fullføre forespørsel og få tilgang til ønsket ressurs., I motsetning til client error responses
funnet i 4xx
– koder, som 404 Not Found Error
vi utforsket nylig, som kan enten stammer fra en klient – server-side problemet, 302 Found
kode generelt indikerer et problem på selve web-server hosting av din søknad.
når Det er sagt, utseendet av en 302 Found
er vanligvis ikke noe som krever mye tilsyn. Alle moderne nettlesere vil automatisk oppdage 302 Found
svar kode og behandle midlertidig omadressering handling automatisk., Web server hosting programmet vil vanligvis omfatte en spesiell Location
topptekst som en del av svaret sendes til klienten. Denne Location
overskriften indikerer den nye URL-adressen der den forespurte ressursen kan bli funnet. For eksempel, hvis det kommer en forespørsel i å få tilgang til URL , men web-serveren er konfigurert til å tvinge omdirigering til en sikker versjon ved hjelp av
https
, svar fra serveren vil omfatte Location: https://airbrake.io
topp., Dette forteller nettleseren at den skal omdirigere dette enkelt forespørsel til til sikret URL
. I de fleste tilfeller, vil nettleseren automatisk oppdage dette
302 Found
svar-koden, kan du lese den nye Location
URL-adressen, og sender anmodning til den nye plasseringen.
det er Imidlertid viktig å huske på at 302 Found
svar-koden er brukt til helt andre formål enn 301 Moved Permanently
vi så på i forrige uke., I tilfelle av tidligere, omadressering bør være midlertidig (dvs. bare for den gjeldende, enkelt forespørsel) — leseren skal «huske» den opprinnelige URI og behandle eventuelle fremtidige forespørsler om å bruke det samme URI. Men, med en 301 Moved Permanently
kode leseren blir fortalt at den opprinnelige URI er ikke lenger gyldig, slik at alle fremtidige forespørsler skal bruke den nye URI gitt av Location
topp.,
Siden 302 Found
indikerer at noe har gått galt i server
av programmet, kan vi i stor grad se bort fra client
siden av ting. Hvis du prøver å diagnostisere et problem med din egen søknad, kan du umiddelbart ignorere de fleste klient-side kode og komponenter, for eksempel HTML, CSS (cascading style sheets), klient-side JavaScript, og så videre. Dette gjelder ikke kun for å nettsteder, enten., Mange smart-phone-apper som har et moderne utseende brukergrensesnittet er faktisk drevet av en vanlig web-applikasjon bak kulissene, en som er bare skjult fra brukeren. Hvis du bruker en slik søknad og en 302 Found
forekommer, er problemet ikke kommer til å være knyttet til appen installert på telefonen eller lokale testing enheten. I stedet, vil det bli noe på server-siden, som utfører de fleste av logikk og behandling bak kulissene, utenfor oppgavene til det lokale grensesnittet som presenteres til brukeren.,
Hvis din søknad genererer uventet 302 Found
svar koder det finnes en rekke tiltak du kan ta for å diagnostisere problemet.
Start Med en Grundig Søknad Backup
Som med alt annet, det er bedre å ha spilt det trygt i starten enn å skru opp noe og kommer til å angre på det senere på nedover veien. Som sådan, er det viktig at du utfører en fullstendig sikkerhetskopiering av din søknad, database, og så videre, før du prøver noen reparasjoner eller endringer i systemet., Enda bedre, hvis du har mulighet, kan du opprette en komplett kopi av programmet på en sekundær staging
– server som ikke er «live», eller ikke er ellers aktiv og tilgjengelig for publikum. Dette vil gi deg en ren prøvefelt med å teste alle mulige reparasjoner for å løse problemet, uten truer sikkerheten eller hellighet av det aktive programmet.
Diagnostisere en 302-Funnet Svar Kode
En 302 Found
svar-koden angir at den forespurte ressursen bør midlertidig nås på en annen URI., Men, det er fullt mulig at serveren er feilkonfigurert, forårsaker den til å svare feil med 302 Found
– koder, i stedet for standard og forventet 200 OK
– koden i et normalt, funksjonelle forespørsel. Dermed er en stor del av diagnostisere problemet vil være å gå gjennom prosessen med å dobbelt-sjekke hvilke ressurser/url-er genererer 302 Found
svar koder og avgjør om disse kodene er hensiktsmessig eller ikke.,
Hvis din søknad er å svare med 302 Found
koder som det bør ikke være å utstede, dette er en sak som mange andre besøkende kan oppleve som godt, dramatisk hindre programmets evne til å betjene brukerne. Vi vil gå over noen feilsøking tips og triks for å hjelpe deg med å prøve å løse dette problemet. Hvis ingenting her fungerer, ikke glem at Google er din venn. Prøv å søke etter bestemte vilkår knyttet til problemet, for eksempel navnet på programmet er CMS eller web server-programvare, sammen med 302 Found
., Sjansene er du vil finne andre som har opplevd dette problemet, og har funnet en løsning.
Feilsøking på Server-Siden
Her er noen flere tips for å hjelpe deg med å feilsøke hva som kan være årsaken 302 Found
vises på server-siden av ting:
Bekreft Din Server Konfigurasjon
Din søknad er sannsynlig kjører på en server som bruker en av de to mest populære web server programvare Apache
eller nginx
., På tidspunktet for publisering, begge av disse web-servere som utgjør over 84%
av verdens web server programvare! Dermed er en av de første trinnene du kan ta for å finne ut hva som kan være årsaken til disse 302 Found
svar koder er å kontrollere konfigurasjonen filer til web-server-programvare for utilsiktede omdirigere instruksjoner.
for Å finne ut hvilken web-serveren din søknad ved hjelp av vil du ønsker å se etter en nøkkel-fil. Hvis webserveren Apache deretter se etter en .htaccess
fil i roten av ditt nettsted file system., For eksempel, hvis søknaden din er på en delt verten som du vil sannsynligvis ha et brukernavn som er forbundet med hosting konto. I et slikt tilfelle, programmet rotkatalogen er vanligvis funnet på banen av /home/<username>/public_html/
slik .htaccess
filen vil være på /home/<username>/public_html/.htaccess
.
Hvis du ligger .htaccess
fil og deretter åpne det i en tekst-editor og se etter linjer som bruker RewriteXXX
direktiver, som er en del av mod_rewrite
modulen i Apache., Som dekker nøyaktig hvordan disse reglene arbeidet er godt utenfor omfanget av denne artikkelen, men det grunnleggende konseptet er at en RewriteCond
direktivet definerer en tekst-basert mønster som vil bli matchet mot inn Nettadresser. Hvis en samsvarende URL er forespurt av en besøkende til nettstedet, RewriteRule
direktiv som følger en eller flere RewriteCond
direktiver brukes til å utføre den faktiske omdirigering av anmodning til den aktuelle URL-adressen.,
For eksempel, her er en enkel RewriteCond
og RewriteRule
kombinasjon som passer alle innkommende forespørsler til example.com
og etablerer en midlertidig omadressering til at samme URI på temporary-example.com
domene i stedet:
RewriteEngine onRewriteCond %{HTTP_HOST} ^example\.com$RewriteRule ^(.*)$ http://www.temporary-example.com/$1
legg Merke til den ekstra flagget på slutten av RewriteRule
, som uttrykkelig sier at responsen koden skal være 302
, som viser til nettlesarar (nettlesere) at dette er en midlertidig viderekobling., Dermed, hvis du finner noen merkelige RewriteCond
eller RewriteRule
direktivene i .htaccess
fil som ikke synes å tilhøre, kan du prøve midlertidig kommentere dem ut (ved hjelp av #
karakter prefiks) og starte din web-server for å se om dette løser problemet.
På den annen side, hvis din server kjører på nginx
, vil du trenger å lete etter en helt annen konfigurasjon-fil., Som standard er denne filen som heter nginx.conf
og ligger i et av de få felles kataloger: /usr/local/nginx/conf
, /etc/nginx
, eller /usr/local/etc/nginx
. Når du ligger, åpne nginx.conf
i en tekst-editor og se etter rewrite
direktiver som bruker redirect
flagg. For eksempel, her er en enkel block directive
(dvs., en navngitt sett av direktiver) som konfigurerer en virtuell server ved å opprette en midlertidig omadressering 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
er lik RewriteCond
og RewriteRule
direktiver funnet i Apache
, som de har en tendens til å inneholde mer kompleks tekst-basert mønstre for å søke., Uansett, ser du gjennom din nginx.conf
fil for eventuelle unormale rewrite
direktiver som omfatter redirect
flagg (den alternative permanent
flagg vil utstede 301
svar-koder i stedet). Kommentar ut noe unormalt før omstart av serveren for å se om problemet ble løst.
se etter Utdatert Programvare
RFC spesifikasjon dokument for HTTP-1.,0 uttalt at formålet med en 302 Found
svar-kode for å angi klient skal utføre en midlertidig omadressering. Imidlertid, mange nyere nettlesere vil behandle en 302
kode mottatt via en POST
forespørsel som en feilaktig GET
be om stedet, som forårsaket problemer og forvirring for noen web-server programvare som prøver å få lesere til å utføre riktig oppgave når midlertidig omadressering var nødvendig. For å løse denne HTTP-1.,1 RFC spesifikasjon dokument lagt 303 See Other
og 307 Temporary Redirect
svar-koder, som er eksplisitt hjelp av håndtering POST-to-GET
og midlertidige direkte svar, henholdsvis.
Skuring Logger
Nesten alle web-applikasjonen vil holde noen form for server-side og logger. Application logs
er vanligvis historien om hva programmet gjorde, for eksempel hvilke sider som ble forespurt, som servere den er koblet til, noe som database resultater det gir, og så videre., Server logs
knyttet til selve maskinvaren som kjører programmet, og vil ofte gi deg opplysninger om helse-og status på alle tilkoblede tjenester, eller til og med bare selve serveren. Google «logger» hvis du bruker et CMS eller «logs» og «logger» hvis du kjører et egendefinert program, for å få mer informasjon om å finne den logger seg i spørsmålet.
Debug Din Søknad Kode
Hvis alt annet svikter, kan det være et problem i noen egendefinerte koden i appen din som forårsaker problemet., Prøv å diagnostisere hvor problemet kan komme fra gjennom manuelt debugging søknaden, sammen med analysering gjennom programmet og server logger. Ideelt sett, kan du lage en kopi av hele programmet til en lokal utvikling-maskinen og utføre en trinn-for-trinn-debug-prosessen, som vil tillate deg å gjenskape den eksakte situasjon der 302 Found
oppstått og se programmet kode det øyeblikket noe går galt.,
uansett hva årsaken er, utseendet til en 302 Found
i din egen web-applikasjon er en sterk indikasjon på at det kan hende du trenger en feil management verktøy for å hjelpe deg å automatisk oppdage slike feil i fremtiden. Den beste av disse verktøyene kan også varsle deg og ditt team umiddelbart når det oppstår en feil. Airbrake er feil overvåking programvare gir real-time error overvåking og automatisk unntak rapportering for alle utviklingsprosjekter., Airbrake state of the art web-oversikten sikrer at du får round-the-klokke status oppdateringer på programmet for helse og feil priser. Uansett hva du arbeider på, Airbrake enkelt integreres med alle de mest populære språkene og rammeverkene. Plus, Airbrake gjør det enkelt å tilpasse unntak parametre, samtidig som det gir deg full kontroll over aktive feil filter system, slik at du bare samle de feil som betyr mest for deg.,
Sjekk ut Airbrake er feil overvåking programvare, i dag og se selv hvorfor så mange av verdens beste engineering team bruk Airbrake å revolusjonere deres unntak håndtering praksis!