Le serveur Web Go redirige automatiquement les requêtes POST
De nombreux développeurs ont rencontré un problème où leur serveur Web Go redirige automatiquement les requêtes POST, ce qui entraîne des problèmes inattendus. comportement. Ce phénomène se produit lorsque le serveur reçoit une requête POST pour une URL spécifique mais répond avec un code d'état 301 (Déplacé de manière permanente), déclenchant une requête GET ultérieure vers une URL différente.
Pour comprendre la cause première, il est essentiel pour approfondir le comportement du type http.ServeMux de Go. Par défaut, ServeMux redirigera automatiquement les requêtes vers la racine d'un sous-arbre si la requête inclut une barre oblique finale dans l'URL. Par exemple, si un gestionnaire est enregistré pour "/myurl/", toute requête vers "/myurl" (sans la barre oblique finale) sera redirigée vers "/myurl/".
Dans l'exemple fourni, le PHandler est enregistré pour gérer les requêtes vers "/myurl/". Cependant, le navigateur de l'utilisateur a été dirigé vers "/myurl" sans la barre oblique finale. En conséquence, ServeMux a détecté cette différence et a émis une redirection 301 vers la bonne URL, convertissant efficacement la requête POST en requête GET.
Pour résoudre ce problème, envisagez les solutions suivantes :
N'oubliez pas que les navigateurs ne répètent généralement pas les requêtes POST après une redirection pour préserver la sécurité des données sensibles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!