Go-Webserver leitet POST-Anfragen automatisch um
Viele Entwickler sind auf ein Problem gestoßen, bei dem ihr Go-Webserver POST-Anfragen automatisch umleitet, was zu unerwarteten Ergebnissen führt Verhalten. Dieses Phänomen tritt auf, wenn der Server eine POST-Anfrage für eine bestimmte URL empfängt, aber mit dem Statuscode 301 (dauerhaft verschoben) antwortet und eine nachfolgende GET-Anfrage an eine andere URL auslöst.
Um die Grundursache zu verstehen, ist es wichtig um das Verhalten des http.ServeMux-Typs von Go zu untersuchen. Standardmäßig leitet ServeMux Anfragen automatisch an die Wurzel eines Unterbaums um, wenn die Anfrage einen abschließenden Schrägstrich in der URL enthält. Wenn beispielsweise ein Handler für „/myurl/“ registriert ist, wird jede Anfrage an „/myurl“ (ohne den abschließenden Schrägstrich) an „/myurl/“ umgeleitet.
Im bereitgestellten Beispiel wird der PHandler ist registriert, um Anfragen an „/myurl/“ zu bearbeiten. Der Browser des Benutzers wurde jedoch ohne den abschließenden Schrägstrich an „/myurl“ weitergeleitet. Infolgedessen hat ServeMux diese Diskrepanz erkannt und eine 301-Weiterleitung zur richtigen URL ausgegeben, wodurch die POST-Anfrage effektiv in eine GET-Anfrage umgewandelt wurde.
Um dieses Problem zu beheben, ziehen Sie die folgenden Lösungen in Betracht:
Bedenken Sie, dass Browser normalerweise keine POST-Anfragen nach einer Umleitung wiederholen, um die Sicherheit sensibler Daten zu gewährleisten.
Das obige ist der detaillierte Inhalt vonWarum leitet mein Go-Webserver POST-Anfragen an GET um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!