een 302 gevonden bericht is een HTTP response status code
wat aangeeft dat de gevraagde bron tijdelijk is verplaatst naar een andere URI
. Aangezien de locatie of huidige omleidingsrichtlijn in de toekomst gewijzigd kan worden, moet een client die een 302 Found
antwoordcode ontvangt, de oorspronkelijke URI blijven gebruiken voor toekomstige aanvragen.,
helaas kan het moeilijk zijn om een onderscheid te maken tussen alle mogelijke HTTP response codes en de exacte oorzaak van fouten te bepalen, zoals de 302 Found
code. Er zijn tientallen mogelijke HTTP-statuscodes die worden gebruikt om de complexe relatie tussen de client, een webapplicatie, een webserver en de veelheid aan webservices van derden weer te geven, dus het bepalen van de oorzaak van een bepaalde statuscode kan een uitdaging zijn., In dit artikel zullen we de 302 Found
code onderzoeken door te kijken naar een paar tips voor het oplossen van problemen, samen met een aantal mogelijke oplossingen voor veelvoorkomende problemen die dit probleem kunnen veroorzaken binnen uw eigen webapplicaties, dus laten we aan de slag!
het probleem is Server-Side
alle HTTP response statuscodes die zich in de 3xx
Categorie bevinden, worden beschouwd als redirection messages
. Dergelijke codes geven aan de user agent (dat wil zeggen uw webbrowser) aan dat een extra actie nodig is om het verzoek te voltooien en toegang te krijgen tot de gewenste bron., In tegenstelling tot client error responses
gevonden in de 4xx
codes, zoals de 404 Not Found Error
die we onlangs hebben onderzocht, wat kan voortvloeien uit een client – of server-side probleem, 302 Found
code geeft over het algemeen een probleem aan op de eigenlijke webserver die uw toepassing host.
Dat gezegd hebbende, het uiterlijk van een 302 Found
is meestal niet iets dat veel tussenkomst van de gebruiker vereist. Alle moderne browsers detecteren automatisch de302 Found
responscode en verwerken de tijdelijke omleiding automatisch., De webserver die de toepassing host, zal doorgaans een speciale Location
header bevatten als onderdeel van het antwoord dat het naar de client stuurt. DezeLocation
header geeft de nieuwe URL aan waar de gevraagde bron kan worden gevonden. Als er bijvoorbeeld een verzoek binnenkomt om toegang te krijgen tot de URL , maar de webserver is geconfigureerd om omleiding naar een beveiligde versie te forceren met
https
, zal het antwoord van de server de Location: https://airbrake.io
header bevatten., Dit vertelt de browser dat het deze enkele aanvraag moet omleiden naar naar de beveiligde URL van
. In de meeste gevallen zal de browser automatisch deze
302 Found
antwoordcode detecteren, de nieuwe Location
URL lezen en het verzoek naar die nieuwe locatie doorsturen.
Het is echter belangrijk om in gedachten te houden dat de 302 Found
response code wordt gebruikt voor compleet andere doeleinden dan de 301 Moved Permanently
waar we vorige week naar keken., In het geval van de eerste, de omleiding moet tijdelijk zijn (dat wil zeggen alleen voor de huidige, enkele aanvraag) — de browser moet “onthouden” de oorspronkelijke URI en verwerken eventuele toekomstige verzoeken met behulp van dezelfde URI. Echter, met een301 Moved Permanently
code wordt de browser verteld dat de originele URI niet langer geldig is, dus alle toekomstige verzoeken moeten de nieuwe URI gebruiken die wordt geleverd door deLocation
header.,
aangezien de 302 Found
aangeeft dat er iets mis is gegaan binnen de server
van uw toepassing, kunnen we de client
grotendeels negeren. Als u een probleem probeert te diagnosticeren met uw eigen applicatie, kunt u de meeste client-side code en componenten onmiddellijk negeren, zoals HTML, cascading style sheets (CSS), client-side JavaScript, enzovoort. Dit geldt ook niet alleen voor websites., Veel slimme telefoon apps die een modern ogende gebruikersinterface hebben, worden eigenlijk aangedreven door een normale webapplicatie achter de schermen; een die gewoon verborgen is voor de gebruiker. Als u een dergelijke toepassing gebruikt en een 302 Found
optreedt, zal het probleem niet gerelateerd zijn aan de app die op uw telefoon of lokaal testapparaat is geïnstalleerd. In plaats daarvan zal het iets aan de server-kant zijn, dat het grootste deel van de logica en verwerking achter de schermen uitvoert, buiten het bereik van de lokale interface die aan de gebruiker wordt gepresenteerd.,
als uw toepassing onverwachte 302 Found
responscodes genereert, kunt u een aantal stappen nemen om het probleem te diagnosticeren.
begin met een grondige applicatie back-up
zoals met alles, is het beter om het veilig te hebben gespeeld bij het begin dan om iets te verknallen en later spijt te krijgen. Als zodanig, is het van cruciaal belang dat u een volledige back-up van uw toepassing uit te voeren, database, enzovoort, voordat u een fixes of wijzigingen aan het systeem., Nog beter, als je de mogelijkheid hebt, maak dan een volledige kopie van de applicatie aan op een secundaire staging
server die niet “live” is of anderszins niet actief en beschikbaar is voor het publiek. Dit geeft u een schone proeftuin waarmee u alle mogelijke oplossingen kunt testen om het probleem op te lossen, zonder de veiligheid of heiligheid van uw live-toepassing in gevaar te brengen.
diagnose van een 302 gevonden Responscode
A 302 Found
responscode geeft aan dat de gevraagde bron tijdelijk moet worden geopend op een andere URI., Het is echter heel goed mogelijk dat de server verkeerd is geconfigureerd, waardoor het onjuist reageert met 302 Found
codes, in plaats van de standaard en verwachte 200 OK
code van een normale, functionele aanvraag. Een groot deel van het diagnosticeren van het probleem zal dus gaan door het proces van dubbele controle welke bronnen/URL ‘ s 302 Found
responscodes genereren en bepalen of deze codes geschikt zijn of niet.,
als uw applicatie reageert met 302 Found
codes die het niet zou moeten uitgeven, is dit een probleem dat veel andere bezoekers ook kunnen ervaren, waardoor de mogelijkheid van uw applicatie om gebruikers te bedienen aanzienlijk wordt belemmerd. We zullen gaan over een aantal tips en trucs voor het oplossen van problemen om u te helpen proberen om dit probleem op te lossen. Als niets hier werkt, vergeet dan niet dat Google je vriend is. Probeer te zoeken naar specifieke termen die gerelateerd zijn aan uw probleem, zoals de naam van de CMS-of webserversoftware van uw toepassing, samen met 302 Found
., De kans is groot dat je anderen vindt die dit probleem hebben ervaren en een oplossing hebben gevonden.
problemen oplossen op de Server-kant
Hier zijn enkele extra tips om u te helpen problemen op te lossen waardoor de 302 Found
op de server-kant van de dingen verschijnt:
bevestig uw serverconfiguratie
uw toepassing draait waarschijnlijk op een server die een van de twee populairste webserversoftware gebruikt, Apache
of nginx
., Op het moment van publicatie vormen beide webservers over 84%
van ‘ s werelds webserversoftware! Een van de eerste stappen die u kunt nemen om te bepalen wat de oorzaak kan zijn van deze 302 Found
response codes is het controleren van de configuratiebestanden voor uw webserversoftware op onbedoelde instructies.
om te bepalen welke webserver uw toepassing gebruikt, moet u naar een sleutelbestand zoeken. Als uw webserver Apache is, zoek dan naar een .htaccess
bestand in de root directory van uw website bestandssysteem., Als uw toepassing zich bijvoorbeeld op een gedeelde host bevindt, heeft u waarschijnlijk een gebruikersnaam gekoppeld aan het hostingaccount. In een dergelijk geval wordt de rootmap van de toepassing meestal gevonden op het pad van /home/<username>/public_html/
, dus het .htaccess
bestand zou op /home/<username>/public_html/.htaccess
staan.
Als u het .htaccess
bestand hebt gevonden, open het dan in een teksteditor en zoek naar regels die RewriteXXX
richtlijnen gebruiken, die deel uitmaken van de mod_rewrite
module in Apache., Hoe deze regels precies werken valt buiten het toepassingsgebied van dit artikel, maar het basisconcept is dat een RewriteCond
richtlijn een tekstgebaseerd patroon definieert dat zal worden vergeleken met ingevoerde URL ‘ s. Als een bezoeker van de site een overeenkomende URL opvraagt, wordt de RewriteRule
richtlijn die volgt op een of meer RewriteCond
richtlijnen gebruikt om de daadwerkelijke omleiding van de aanvraag naar de juiste URL uit te voeren.,
bijvoorbeeld, hier is een eenvoudige RewriteCond
en RewriteRule
combinatie die overeenkomt met alle inkomende verzoeken tot example.com
en stelt tijdelijk een omleiding op dezelfde URI op de temporary-example.com
domein in de plaats:
RewriteEngine onRewriteCond %{HTTP_HOST} ^example\.com$RewriteRule ^(.*)$ http://www.temporary-example.com/$1
let op de extra vlag aan het einde van de RewriteRule
, waarin expliciet wordt gesteld dat de response code moet worden 302
aangeven in user-agents (browsers) dat dit een tijdelijke omleiding., Dus, als u een vreemde RewriteCond
of RewriteRule
richtlijnen in het .htaccess
bestand dat niet lijkt te horen, probeer ze tijdelijk uit te commentaren (met behulp van de #
karakter prefix) en herstart uw webserver om te zien of dit de probleem.
aan de andere kant, als uw server draait op nginx
, moet u zoeken naar een compleet ander configuratiebestand., Dit bestand wordt standaard nginx.conf
genoemd en bevindt zich in een van de enkele veel voorkomende mappen: /usr/local/nginx/conf
, /etc/nginx
, of /usr/local/etc/nginx
. Eenmaal gevonden, open nginx.conf
in een teksteditor en zoek naar rewrite
richtlijnen die de redirect
vlag gebruiken. Hier is bijvoorbeeld een eenvoudige block directive
(d.w.z., een benoemde set van richtlijnen) dat stelt een virtuele server door het creëren van een tijdelijke omleiding van example.com
om het temporary-example.com
:
server { listen 80; listen 443 ssl; server_name www.example.com; rewrite ^/$ http://www.temporary-example.com redirect;}
Rewrite
richtlijnen nginx
vergelijkbaar zijn met de RewriteCond
en RewriteRule
richtlijnen in de Apache
, als ze de neiging om meer complexe tekst-gebaseerde patronen voor zoeken., Hoe dan ook, Kijk door uw nginx.conf
bestand voor elke abnormale rewrite
richtlijnen die de redirect
vlag bevatten (de alternatieve permanent
vlag zal 301
responscodes geven in plaats daarvan). Commentaar eventuele afwijkingen voordat u de server opnieuw opstart om te zien of het probleem is opgelost.
Controleer op verouderde Software
het RFC-specificatiedocument voor HTTP 1.,0 stelde dat het doel van een 302 Found
responscode was om aan te geven dat de client een tijdelijke omleiding moet uitvoeren. Veel nieuwere browsers verwerken echter een 302
code ontvangen via een POST
verzoek als een foutieve GET
verzoek in plaats daarvan, wat problemen en verwarring veroorzaakte voor sommige webserver software die probeerde browsers de juiste taak te laten uitvoeren wanneer tijdelijke omleiding nodig was. Om dit op te lossen de HTTP 1.,1 RFC-specificatiedocument voegde de 303 See Other
en 307 Temporary Redirect
responscodes toe, die expliciete middelen zijn voor het verwerken van respectievelijk POST-to-GET
en tijdelijke directe reacties.
schuur de Logs
bijna elke webapplicatie zal een of andere vorm van server-side logs bijhouden. Application logs
zijn typisch de geschiedenis van wat de toepassing deed, zoals welke pagina ‘ s werden opgevraagd, welke servers het verbond, welke database resultaten het levert, enzovoort., Server logs
zijn gerelateerd aan de hardware die de toepassing draait, en zal vaak details geven over de status en status van alle verbonden services, of zelfs alleen de server zelf. Google ‘logs’ als u een CMS gebruikt, of ‘logs’ en ‘logs’ als u een aangepaste toepassing uitvoert, om meer informatie te krijgen over het vinden van de logs in kwestie.
Debug uw toepassingscode
als al het andere mislukt, kan het zijn dat een probleem in een aangepaste code binnen uw toepassing het probleem veroorzaakt., Probeer te diagnosticeren waar het probleem kan komen uit door handmatig debuggen van uw toepassing, samen met het parsen door middel van toepassing en server logs. Idealiter maakt u een kopie van de gehele toepassing naar een lokale ontwikkelmachine en voert u een stap-voor-stap debugproces uit, waarmee u het exacte scenario opnieuw kunt maken waarin de 302 Found
is opgetreden en de toepassingscode kunt bekijken op het moment dat er iets misgaat.,
ongeacht de oorzaak, het verschijnen van een 302 Found
binnen uw eigen webapplicatie is een sterke indicatie dat u mogelijk een foutbeheerprogramma nodig hebt om dergelijke fouten in de toekomst automatisch te detecteren. Het beste van deze tools kan u en uw team zelfs onmiddellijk waarschuwen wanneer er een fout optreedt. Airbrake ‘ s error monitoring software biedt real-time fout monitoring en automatische uitzondering rapportage voor al uw ontwikkelingsprojecten., Airbrake ‘ s state of the art web dashboard zorgt ervoor dat u 24-uurs statusupdates ontvangt over de gezondheid en foutenpercentages van uw toepassing. Het maakt niet uit waar je aan werkt, Airbrake integreert gemakkelijk met de meest populaire talen en frameworks. Plus, Airbrake maakt het gemakkelijk om uitzondering parameters aan te passen, terwijl u volledige controle over de actieve fout filter systeem, zodat u alleen de fouten die het meest belangrijk te verzamelen.,
Bekijk vandaag nog Airbrake ’s error monitoring software en ontdek zelf waarom zoveel van’ s werelds beste technische teams Airbrake gebruiken om hun exception handling practices te veranderen!