Un 302 Found message est un HTTP response status code
indiquant que la ressource demandée a été temporairement déplacé vers un autre URI
. Étant donné que la directive location ou redirection actuelle pourrait être modifiée à l’avenir, un client qui reçoit un code de réponse 302 Found
devrait continuer à utiliser l’URI d’origine pour les demandes futures.,
malheureusement, il peut être difficile de différencier tous les codes de réponse HTTP possibles et de déterminer la cause exacte des erreurs comme le code302 Found
. Il existe des dizaines de codes D’état HTTP possibles utilisés pour représenter la relation complexe entre le client, une application web, un serveur web et la multitude de services web tiers qui peuvent être utilisés, de sorte que la détermination de la cause d’un code d’état particulier peut être difficile., Dans cet article, nous examinerons le code302 Found
en regardant quelques conseils de dépannage, ainsi que quelques correctifs potentiels pour les problèmes courants qui pourraient être à l’origine de ce problème dans vos propres applications web, alors allons-y!
le problème est Côté Serveur
tous les codes D’état de réponse HTTP qui se trouvent dans la catégorie3xx
sont considérés commeredirection messages
. Ces codes indiquent à l’agent utilisateur (c’est-à-dire votre navigateur web) qu’une action supplémentaire est nécessaire pour compléter la demande et accéder à la ressource souhaitée., Contrairement à client error responses
trouvé dans les codes 4xx
, comme le 404 Not Found Error
que nous avons exploré récemment, qui pourrait provenir d’un problème côté client ou côté serveur, 302 Found
indique généralement un problème sur l’hébergement réel du serveur web votre candidature.
cela dit, l’apparition d’un 302 Found
n’est généralement pas quelque chose qui nécessite beaucoup de l’intervention de l’utilisateur. Tous les navigateurs modernes détecteront automatiquement le code de réponse 302 Found
et traiteront automatiquement l’action de redirection temporaire., Le serveur Web hébergeant l’application inclura généralement un en-tête spécial Location
dans le cadre de la réponse qu’il envoie au client. Cet en-tête Location
indique la nouvelle URL où la ressource demandée peut être trouvée. Par exemple, si une requête arrive pour accéder à l’URL , mais que le serveur web est configuré pour forcer la redirection vers une version sécurisée à l’aide de
https
, la réponse du serveur inclura l’en-tête Location: https://airbrake.io
., Cela indique au navigateur qu’il doit rediriger cette requête unique vers vers l’URL sécurisée de
. Dans la plupart des cas, le navigateur détectera automatiquement ce code de réponse
302 Found
, Lira la nouvelle URL Location
et redirigera la demande vers ce nouvel emplacement.
cependant, il est important de garder à l’esprit que le code de réponse302 Found
est utilisé à des fins complètement différentes de celles du301 Moved Permanently
que nous avons examiné la semaine dernière., Dans le cas du premier, la redirection doit être temporaire (c’est — à-dire uniquement pour la requête unique actuelle) – le navigateur doit « se souvenir” de l’URI d’origine et traiter toutes les demandes futures en utilisant ce même URI. Cependant, avec un code 301 Moved Permanently
, le navigateur est informé que l’URI d’origine n’est plus valide, donc toutes les demandes futures devraient utiliser le nouvel URI fourni par l’en-tête Location
.,
Depuis le 302 Found
indique que quelque chose a mal tourné dans le server
de votre demande, nous pouvons largement abstraction de la balise client
côté des choses. Si vous essayez de diagnostiquer un problème avec votre propre application, vous pouvez immédiatement ignorer la plupart des codes et composants côté client, tels que HTML, feuilles de style en cascade (CSS), JavaScript côté client, etc. Cela ne s’applique pas uniquement aux sites web, non plus., De nombreuses applications de téléphone intelligent qui ont une interface utilisateur à la recherche moderne sont en fait alimentés par une application web normale dans les coulisses; celui qui est simplement caché de l’utilisateur. Si vous utilisez une telle application et qu’un 302 Found
se produit, le problème ne sera pas lié à l’application installée sur votre téléphone ou votre appareil de test local. Au lieu de cela, ce sera quelque chose du côté serveur, qui effectue la plupart de la logique et du traitement dans les coulisses, en dehors de la compétence de l’interface locale présentée à l’utilisateur.,
Si votre application génère des codes de réponse inattendus302 Found
, vous pouvez prendre un certain nombre d’étapes pour diagnostiquer le problème.
commencez par une sauvegarde complète de l’Application
Comme avec n’importe quoi, il vaut mieux avoir joué en toute sécurité au début que de bousiller quelque chose et de le regretter plus tard sur la route. En tant que tel, il est essentiel que vous effectuez une sauvegarde complète de votre application, de votre base de données, etc., avant de tenter des correctifs ou des modifications du système., Mieux encore, si vous en avez la capacité, créez une copie complète de l’application sur un serveur secondaire staging
qui n’est pas « actif” ou qui n’est pas autrement actif et disponible pour le public. Cela vous donnera un terrain d’essai propre avec lequel tester tous les correctifs potentiels pour résoudre le problème, sans menacer la sécurité ou le caractère sacré de votre application en direct.
diagnostiquer un code de réponse 302 trouvé
Un Code de réponse302 Found
indique que la ressource demandée doit être temporairement accessible à un autre URI., Cependant, il est tout à fait possible que le serveur soit mal configuré, ce qui le fait mal répondre avec des codes 302 Found
, au lieu du code standard et attendu 200 OK
d’une demande normale et fonctionnelle. Ainsi, une grande partie du diagnostic du problème passera par le processus de double vérification des ressources/URL générant des codes de réponse 302 Found
et de déterminer si ces codes sont appropriés ou non.,
Si votre application répond avec des codes302 Found
qu’elle ne devrait pas émettre, il s’agit d’un problème que de nombreux autres visiteurs peuvent également rencontrer, ce qui entrave considérablement la capacité de votre application à desservir les utilisateurs. Nous allons passer en revue quelques conseils et astuces de dépannage pour vous aider à résoudre ce problème. Si rien ne fonctionne ici, n’oubliez pas que Google est votre ami. Essayez de rechercher des termes spécifiques liés à votre problème, tels que le nom du CMS ou du logiciel de serveur web de votre application, avec 302 Found
., Il y a de fortes Chances que vous trouviez d’autres personnes qui ont connu ce problème et qui ont trouvé une solution.
dépannage Côté Serveur
Voici quelques conseils supplémentaires pour vous aider à résoudre ce qui pourrait être à l’origine de la 302 Found
pour apparaître sur le côté serveur de choses:
confirmer la Configuration de votre serveur
votre application est probablement en cours d’exécution sur un serveur qui utilise l’un des deux logiciels de serveur web les plus populaires, Apache
ou nginx
., Au moment de la publication, ces deux serveurs web constituent over 84%
du logiciel de serveur web mondial! Ainsi, l’une des premières mesures que vous pouvez prendre pour déterminer ce qui pourrait être à l’origine de ces codes de réponse 302 Found
est de vérifier les fichiers de configuration de votre logiciel de serveur web pour les instructions de redirection non intentionnelles.
pour déterminer quel serveur Web votre application utilise, Vous devez rechercher un fichier de clé. Si votre serveur web est Apache, recherchez un fichier.htaccess
dans le répertoire racine du système de fichiers de votre site web., Par exemple, si votre application se trouve sur un hôte partagé, vous aurez probablement un nom d’utilisateur associé au compte d’hébergement. Dans un tel cas, le répertoire racine de l’application est généralement trouvé à l’emplacement de la balise /home/<username>/public_html/
, de sorte que le .htaccess
le fichier /home/<username>/public_html/.htaccess
.
Si l’on trouve le .htaccess
fichier, puis l’ouvrir dans un éditeur de texte et recherchez les lignes qui utilisent RewriteXXX
directives, qui font partie de la mod_rewrite
module dans Apache., Couvrant exactement comment ces règles fonctionnent est bien au-delà de la portée de cet article, cependant, le concept de base est qu’une directive RewriteCond
définit un modèle basé sur le texte qui sera mis en correspondance avec les URL entrées. Si une URL correspondante est demandée par un visiteur du site, la directive RewriteRule
qui suit une ou plusieurs directives RewriteCond
est utilisée pour effectuer la redirection réelle de la demande vers l’URL appropriée.,
par exemple, voici une combinaison simple RewriteCond
Et RewriteRule
qui correspond à toutes les demandes entrantes à example.com
et établit une redirection temporaire vers ce même URI sur le domaine temporary-example.com
à la place:
RewriteEngine onRewriteCond %{HTTP_HOST} ^example\.com$RewriteRule ^(.*)$ http://www.temporary-example.com/$1
notez l’indicateur supplémentaire à la fin du RewriteRule
, qui indique explicitement que le code de réponse doit être 302
, indiquant aux agents utilisateurs (navigateurs) qu’il s’agit d’une redirection temporaire., Ainsi, si vous trouvez des directives étranges RewriteCond
ou RewriteRule
dans le fichier .htaccess
qui ne semblent pas appartenir, essayez de les commenter temporairement (en utilisant le préfixe de caractère #
) et redémarrez votre serveur web pour si cela résout le problème.
d’autre part, si votre serveur fonctionne surnginx
, vous devrez rechercher un fichier de configuration complètement différent., Par défaut, ce fichier est nommé nginx.conf
et est situé dans l’un des quelques répertoires: /usr/local/nginx/conf
, /etc/nginx
ou /usr/local/etc/nginx
. Une fois localisé, ouvrez nginx.conf
dans un éditeur de texte et recherchez les directives rewrite
qui utilisent l’indicateur redirect
. Par exemple, voici un simple block directive
(c’est-à-dire, un ensemble nommé de directives) qui configure un serveur virtuel en créant une redirection temporaire de example.com
vers les directives temporary-example.com
:
server { listen 80; listen 443 ssl; server_name www.example.com; rewrite ^/$ http://www.temporary-example.com redirect;}
Rewrite
dans nginx
sont similaires aux directives RewriteCond
Et RewriteRule
trouvées dans Apache
, car elles ont tendance à contenir des motifs textuels plus complexes pour la recherche., Quoi qu’il en soit, parcourez votre fichier nginx.conf
pour toute directive rewrite
anormale qui inclut l’indicateur redirect
(l’indicateur alternatif permanent
émettra 301
codes de réponse à la place). Commentez toute anomalie avant de redémarrer le serveur pour voir si le problème a été résolu.
vérifiez les logiciels obsolètes
le document de spécification RFC pour HTTP 1.,0 a déclaré que le but d’un code de réponse 302 Found
était d’indiquer que le client devait effectuer une redirection temporaire. Cependant, de nombreux navigateurs plus récents traiteraient à la place une requête 302
reçue via une requête POST
comme une requête erronée GET
, ce qui causait des problèmes et de la confusion pour certains logiciels de serveur web essayant d’obtenir des navigateurs pour effectuer la tâche appropriée Pour résoudre ce problème, le HTTP 1.,1 le document de spécification RFC a ajouté les codes de réponse303 See Other
et307 Temporary Redirect
, qui sont des moyens explicites de gérer les réponses directesPOST-to-GET
et temporaires, respectivement.
parcourez les journaux
presque toutes les applications web conserveront une forme de journaux côté serveur. Application logs
sont généralement l’historique de ce que l’application a fait, comme les pages demandées, les serveurs auxquels elle s’est connectée, les résultats de base de données qu’elle fournit, etc., Server logs
sont liés au matériel réel qui exécute l’application, et fourniront souvent des détails sur la santé et l’état de tous les services connectés, ou même simplement le serveur lui-même. Google « logs ” si vous utilisez un CMS, ou « logs ” et « logs ” si vous exécutez une application personnalisée, pour obtenir plus d’informations sur la recherche des journaux en question.
déboguez le Code de votre Application
Si tout le reste échoue, il se peut qu’un problème dans un code personnalisé de votre application soit à l’origine du problème., Essayez de diagnostiquer l’origine du problème en déboguant manuellement votre application et en analysant les journaux d’application et de serveur. Idéalement, faites une copie de l’application entière sur une machine de développement locale et effectuez un processus de débogage étape par étape, ce qui vous permettra de recréer le scénario exact dans lequel le 302 Found
s’est produit et d’afficher le code de l’application au moment où quelque chose ne va pas.,
quelle qu’en soit la cause, l’apparition d’un302 Found
dans votre propre application web est une indication forte que vous pourriez avoir besoin d’un outil de gestion des erreurs pour vous aider à détecter automatiquement de telles erreurs à l’avenir. Le meilleur de ces outils peut même vous alerter et votre équipe immédiatement lorsqu’une erreur se produit. Le logiciel de surveillance des erreurs d’Airbrake fournit une surveillance des erreurs en temps réel et des rapports d’exceptions automatiques pour tous vos projets de développement., Le tableau de bord Web de pointe d’Airbrake vous assure de recevoir des mises à jour 24h / 24 sur l’état de santé et les taux d’erreur de votre application. Peu importe ce sur quoi vous travaillez, Airbrake s’intègre facilement à tous les langages et frameworks les plus populaires. De plus, Airbrake facilite la personnalisation des paramètres d’exception, tout en vous donnant un contrôle complet du système de filtre d’erreur actif, de sorte que vous ne collectez que les erreurs qui comptent le plus.,
Découvrez le logiciel de surveillance des erreurs D’Airbrake aujourd’hui et voyez par vous-même pourquoi tant de meilleures équipes d’ingénierie au monde utilisent Airbrake pour révolutionner leurs pratiques de gestion des exceptions!