Eine 302 gefundene Nachricht ist eine HTTP response status code
, die angibt, dass die angeforderte Ressource vorübergehend in eine andere URI
verschoben wurde. Da der Speicherort oder die aktuelle Umleitungsrichtlinie in Zukunft möglicherweise geändert wird, sollte ein Client, der einen 302 Found
– Antwortcode empfängt, weiterhin den ursprünglichen URI für zukünftige Anforderungen verwenden.,
Leider kann es schwierig sein, zwischen allen möglichen HTTP-Antwortcodes zu unterscheiden und die genaue Fehlerursache wie den 302 Found
– Code zu bestimmen. Es gibt Dutzende möglicher HTTP-Statuscodes, die verwendet werden, um die komplexe Beziehung zwischen dem Client, einer Webanwendung, einem Webserver und der Vielzahl von möglicherweise verwendeten Webdiensten von Drittanbietern darzustellen, sodass die Ermittlung der Ursache eines bestimmten Statuscodes schwierig sein kann., In diesem Artikel untersuchen wir den302 Found
– Code, indem wir uns einige Tipps zur Fehlerbehebung sowie einige mögliche Korrekturen für häufige Probleme ansehen, die dieses Problem möglicherweise in Ihren eigenen Webanwendungen verursachen.
Das Problem ist serverseitig
Alle HTTP-Antwortstatuscodes in der Kategorie 3xx
gelten als redirection messages
. Solche Codes geben dem Benutzeragenten (d. H. Ihrem Webbrowser) an, dass eine zusätzliche Aktion erforderlich ist, um die Anforderung abzuschließen und auf die gewünschte Ressource zuzugreifen., Im Gegensatz zu client error responses
, die in den 4xx
– Codes enthalten sind, wie dem 404 Not Found Error
Wir haben kürzlich untersucht, was entweder auf ein client-oder serverseitiges Problem zurückzuführen sein könnte, 302 Found
– Code weist im Allgemeinen auf ein Problem auf dem tatsächlichen Webserver hin, auf dem Ihre Anwendung gehostet wird.
Das Erscheinungsbild einer 302 Found
erfordert jedoch normalerweise keinen großen Benutzereingriff. Alle modernen Browser erkennen automatisch den302 Found
– Antwortcode und verarbeiten die temporäre Umleitungsaktion automatisch., Der Webserver, auf dem die Anwendung gehostet wird, enthält normalerweise einen speziellen Location
Header als Teil der Antwort, die er an den Client sendet. DieserLocation
Header gibt die neue URL an, unter der die angeforderte Ressource gefunden werden kann. Wenn beispielsweise eine Anforderung für den Zugriff auf die URL eingeht, der Webserver jedoch so konfiguriert ist, dass die Umleitung zu einer sicheren Version mit
https
erzwingt wird, enthält die Serverantwort den Header Location: https://airbrake.io
., Dies teilt dem Browser mit, dass er diese einzelne Anforderung an an die gesicherte URL von
umleiten soll. In den meisten Fällen erkennt der Browser diesen
302 Found
– Antwortcode automatisch, liest die neue Location
– URL und leitet die Anforderung an diesen neuen Speicherort um.
Es ist jedoch wichtig zu beachten, dass der 302 Found
– Antwortcode für völlig andere Zwecke verwendet wird als die 301 Moved Permanently
Wir haben uns letzte Woche angesehen., Im ersteren Fall sollte die Umleitung vorübergehend sein (dh nur für die aktuelle einzelne Anforderung) — der Browser sollte sich an den ursprünglichen URI „erinnern“ und zukünftige Anforderungen mit demselben URI verarbeiten. Mit einem 301 Moved Permanently
– Code wird dem Browser jedoch mitgeteilt, dass der ursprüngliche URI nicht mehr gültig ist, sodass alle zukünftigen Anforderungen den neuen URI verwenden sollten, der vom Location
– Header bereitgestellt wird.,
Da die 302 Found
angibt, dass innerhalb der server
Ihrer Anwendung etwas schief gelaufen ist, können wir die client
– Seite weitgehend ignorieren. Wenn Sie versuchen, ein Problem mit Ihrer eigenen Anwendung zu diagnostizieren, können Sie die meisten clientseitigen Codes und Komponenten wie HTML, Cascading Style Sheets (CSS), clientseitiges JavaScript usw. sofort ignorieren. Dies gilt auch nicht nur für Websites., Viele Smartphone-Apps mit einer modern aussehenden Benutzeroberfläche werden tatsächlich von einer normalen Webanwendung hinter den Kulissen betrieben.eine, die dem Benutzer einfach verborgen ist. Wenn Sie eine solche Anwendung verwenden und eine 302 Found
auftritt, hängt das Problem nicht mit der auf Ihrem Telefon oder lokalen Testgerät installierten App zusammen. Stattdessen wird es etwas auf der Serverseite sein, das den größten Teil der Logik und Verarbeitung hinter den Kulissen außerhalb des Bereichs der lokalen Schnittstelle durchführt, der dem Benutzer präsentiert wird.,
Wenn Ihre Anwendung unerwartete 302 Found
– Antwortcodes generiert, können Sie eine Reihe von Schritten ausführen, um das Problem zu diagnostizieren.
Beginnen Sie mit einer gründlichen Anwendungssicherung
Wie bei allem, es ist besser, es sicher am Anfang gespielt zu haben, als etwas zu vermasseln und kommen es später auf der Straße zu bereuen. Daher ist es wichtig, dass Sie eine vollständige Sicherung Ihrer Anwendung, Datenbank usw. durchführen, bevor Sie Korrekturen oder Änderungen am System vornehmen., Noch besser ist, wenn Sie die Möglichkeit haben, erstellen Sie eine vollständige Kopie der Anwendung auf einem sekundären staging
– Server, der nicht „live“ ist oder anderweitig nicht aktiv und für die Öffentlichkeit verfügbar ist. Dies gibt Ihnen einen sauberen Testplatz, mit dem Sie alle möglichen Korrekturen testen können, um das Problem zu beheben, ohne die Sicherheit oder Heiligkeit Ihrer Live-Anwendung zu gefährden.
Diagnose eines 302 gefundenen Antwortcodes
Ein 302 Found
Antwortcode gibt an, dass vorübergehend auf die angeforderte Ressource zugegriffen werden soll ein anderer URI., Es ist jedoch durchaus möglich, dass der Server falsch konfiguriert ist, sodass er nicht ordnungsgemäß mit 302 Found
– Codes anstelle des Standard-und erwarteten 200 OK
– Codes einer normalen, funktionalen Anforderung reagiert. Daher wird ein großer Teil der Diagnose des Problems den Prozess der doppelten Überprüfung der Ressourcen/URLs durchlaufen, die 302 Found
-Antwortcodes generieren, und feststellen, ob diese Codes angemessen sind oder nicht.,
Wenn Ihre Anwendung mit 302 Found
– Codes antwortet, die sie nicht ausgeben sollte, ist dies ein Problem, das auch bei vielen anderen Besuchern auftritt und die Fähigkeit Ihrer Anwendung, Benutzer zu bedienen, dramatisch beeinträchtigt. Wir gehen einige Tipps und Tricks zur Fehlerbehebung durch, um Ihnen bei der Lösung dieses Problems zu helfen. Wenn hier nichts funktioniert, vergessen Sie nicht, dass Google Ihr Freund ist. Versuchen Sie, nach bestimmten Begriffen zu suchen, die sich auf Ihr Problem beziehen, z. B. dem Namen des CMS oder der Webserver-Software Ihrer Anwendung, zusammen mit 302 Found
., Wahrscheinlich finden Sie andere, die dieses Problem erlebt haben und eine Lösung gefunden haben.
Fehlerbehebung auf der Serverseite
Hier sind einige zusätzliche Tipps, die Ihnen bei der Fehlerbehebung helfen, was dazu führen kann, dass die 302 Found
auf der Serverseite der Dinge angezeigt wird:
Bestätigen Sie Ihre Serverkonfiguration
Ihre Anwendung wird wahrscheinlich auf einem Server ausgeführt, der eine der beiden beliebtesten Webserver-Software verwendet, Apache
oder nginx
., Zum Zeitpunkt der Veröffentlichung bilden diese beiden Webserver over 84%
der Webserver-Software der Welt! Daher besteht einer der ersten Schritte, die Sie unternehmen können, um festzustellen, was diese 302 Found
– Antwortcodes verursachen könnte, darin, die Konfigurationsdateien für Ihre Webserver-Software auf unbeabsichtigte Umleitungsanweisungen zu überprüfen.
Um festzustellen, welchen Webserver Ihre Anwendung verwendet, sollten Sie nach einer Schlüsseldatei suchen. Wenn Ihr Webserver Apache ist, suchen Sie nach einer .htaccess
Datei im Stammverzeichnis Ihres Website-Dateisystems., Wenn sich Ihre Anwendung beispielsweise auf einem freigegebenen Host befindet, ist dem Hosting-Konto wahrscheinlich ein Benutzername zugeordnet. In einem solchen Fall befindet sich das Anwendungsstammverzeichnis normalerweise im Pfad von /home/<username>/public_html/
, sodass sich die Datei .htaccess
unter /home/<username>/public_html/.htaccess
befindet.
Wenn Sie die .htaccess
– Datei gefunden haben, öffnen Sie sie in einem Texteditor und suchen Sie nach Zeilen, die RewriteXXX
– Direktiven verwenden, die Teil des mod_rewrite
– Moduls in Apache sind., Die genaue Funktionsweise dieser Regeln geht jedoch weit über den Rahmen dieses Artikels hinaus, das Grundkonzept besteht jedoch darin, dass eine RewriteCond
-Direktive ein textbasiertes Muster definiert, das mit eingegebenen URLs abgeglichen wird. Wenn eine übereinstimmende URL von einem Besucher der Site angefordert wird, wird die RewriteRule
– Direktive verwendet, die einer oder mehreren RewriteCond
– Direktiven folgt die tatsächliche Umleitung der Anforderung an die entsprechende URL.,
Zum Beispiel ist hier eine einfache RewriteCond
und RewriteRule
Kombination, die alle eingehenden Anfragen an example.com
und stellt eine temporäre Umleitung zu dem gleichen URI auf der temporary-example.com
Domäne statt:
RewriteEngine onRewriteCond %{HTTP_HOST} ^example\.com$RewriteRule ^(.*)$ http://www.temporary-example.com/$1
RewriteRule
, das explizit angibt, dass der Antwortcode 302
sein sollte, was Benutzeragenten (Browsern) anzeigt, dass dies eine temporäre Umleitung ist., Wenn Sie also seltsame RewriteCond
oder RewriteRule
– Direktiven in der .htaccess
– Datei finden, die anscheinend nicht dazugehören, kommentieren Sie sie vorübergehend aus (mit dem Zeichenpräfix #
) und starten Sie Ihren Webserver neu, um festzustellen, ob das Problem dadurch behoben wird.
Wenn Ihr Server hingegen auf nginx
ausgeführt wird, müssen Sie nach einer völlig anderen Konfigurationsdatei suchen., Standardmäßig heißt diese Datei nginx.conf
und befindet sich in einem der wenigen gängigen Verzeichnisse: /usr/local/nginx/conf
, /etc/nginx
oder /usr/local/etc/nginx
. Sobald Sie sich befinden, öffnen Sie nginx.conf
in einem Texteditor und suchen Sie nach rewrite
– Direktiven, die das redirect
– Flag verwenden. Zum Beispiel ist hier eine einfache block directive
(dh, ein benannter Satz von Direktiven), der einen virtuellen Server konfiguriert, indem er eine temporäre Umleitung von example.com
zur temporary-example.com
server { listen 80; listen 443 ssl; server_name www.example.com; rewrite ^/$ http://www.temporary-example.com redirect;}
Rewrite
Direktiven in nginx
ähneln der RewriteCond
und RewriteRule
Direktiven in Apache
, da sie tendenziell komplexere textbasierte Suchmuster enthalten., Suchen Sie in jedem Fall in Ihrer nginx.conf
– Datei nach abnormalenrewrite
– Anweisungen, die dasredirect
– Flag enthalten (das alternativepermanent
– Flag gibt stattdessen301
– Antwortcodes aus). Kommentieren Sie alle Anomalien aus, bevor Sie den Server neu starten, um festzustellen, ob das Problem behoben wurde.
Nach veralteter Software suchen
Das RFC-Spezifikationsdokument für HTTP 1.,0 gab an, dass der Zweck eines 302 Found
– Antwortcodes darin bestand, anzugeben, dass der Client eine temporäre Umleitung durchführen sollte. Viele neuere Browser würden jedoch einen 302
– Code verarbeiten, der über eine POST
– Anforderung als fehlerhafte GET
– Anforderung empfangen wurde, was zu Problemen und Verwirrung für einige Webserver-Software führte, die versuchte, Browser dazu zu bringen, die richtige Aufgabe auszuführen, wenn eine temporäre Umleitung erforderlich war. Um dies zu beheben die HTTP 1.,1 RFC-Spezifikation-Dokument Hinzugefügt 303 See Other
und 307 Temporary Redirect
response-codes, die sind expliziten bedeutet der Umgang mit POST-to-GET
und temporäre direkte Antworten, beziehungsweise.
Durchsuchen Sie die Protokolle
Fast jede Webanwendung führt serverseitige Protokolle. Application logs
sind in der Regel der Verlauf dessen, was die Anwendung getan hat, z. B. welche Seiten angefordert wurden, mit welchen Servern sie verbunden ist, welche Datenbankergebnisse sie bereitstellt und so weiter., Server logs
beziehen sich auf die tatsächliche Hardware, auf der die Anwendung ausgeführt wird, und geben häufig Details zum Zustand und Status aller verbundenen Dienste oder sogar nur des Servers selbst an. Google „protokolliert“, wenn Sie ein CMS verwenden, oder „protokolliert“ und „protokolliert“, wenn Sie eine benutzerdefinierte Anwendung ausführen, um weitere Informationen zum Auffinden der betreffenden Protokolle zu erhalten.
Debuggen Sie Ihren Anwendungscode
Wenn alles andere fehlschlägt, kann es sein, dass ein Problem in einem benutzerdefinierten Code in Ihrer Anwendung das Problem verursacht., Versuchen Sie zu diagnostizieren, woher das Problem kommen könnte, indem Sie Ihre Anwendung manuell debuggen und Anwendungs-und Serverprotokolle analysieren. Erstellen Sie im Idealfall eine Kopie der gesamten Anwendung auf einem lokalen Entwicklungscomputer und führen Sie einen schrittweisen Debug-Prozess durch, mit dem Sie das genaue Szenario neu erstellen können, in dem die 302 Found
aufgetreten ist, und zeigen Sie den Anwendungscode an, sobald etwas schief geht.,
Unabhängig von der Ursache ist das Auftreten einer 302 Found
in Ihrer eigenen Webanwendung ein starker Hinweis darauf, dass Sie möglicherweise ein Fehlerverwaltungstool benötigen, mit dem Sie solche Fehler in Zukunft automatisch erkennen können. Das Beste dieser Tools kann Sie und Ihr Team sogar sofort alarmieren, wenn ein Fehler auftritt. Die Fehlerüberwachungssoftware von Airbrake bietet Echtzeit-Fehlerüberwachung und automatische Ausnahmeberichterstattung für alle Ihre Entwicklungsprojekte., Das hochmoderne Web-Dashboard von Airbrake stellt sicher, dass Sie rund um die Uhr Statusaktualisierungen über den Zustand und die Fehlerraten Ihrer Anwendung erhalten. Egal woran Sie gerade arbeiten, Airbrake lässt sich problemlos in alle gängigen Sprachen und Frameworks integrieren. Außerdem erleichtert Airbrake das Anpassen von Ausnahmeparametern und gibt Ihnen gleichzeitig die vollständige Kontrolle über das aktive Fehlerfiltersystem, sodass Sie nur die wichtigsten Fehler erfassen.,
Schauen Sie sich noch heute die Fehlerüberwachungssoftware von Airbrake an und überzeugen Sie sich selbst, warum so viele der weltweit besten Engineering-Teams Airbrake verwenden, um ihre Ausnahmebehandlungspraktiken zu revolutionieren!