Go Web サーバーが POST リクエストを自動的にリダイレクトする
多くの開発者は、Go Web サーバーが自動的に POST リクエストをリダイレクトし、予期せぬリクエストが発生するという問題に遭遇しています。行動。この現象は、サーバーが特定の URL に対する POST リクエストを受信したものの、ステータス コード 301 (Moved Permanently) で応答し、別の URL への後続の GET リクエストがトリガーされた場合に発生します。
根本原因を理解するには、次のことが重要です。 Go の http.ServeMux 型の動作を詳しく調べます。デフォルトでは、リクエストの URL に末尾のスラッシュが含まれている場合、ServeMux はリクエストをサブツリーのルートに自動的にリダイレクトします。たとえば、ハンドラーが「/myurl/」に登録されている場合、「/myurl」へのリクエスト (末尾のスラッシュなし) は「/myurl/」にリダイレクトされます。
この例では、 PHandler は、「/myurl/」へのリクエストを処理するために登録されています。ただし、ユーザーのブラウザは末尾のスラッシュのない「/myurl」にリダイレクトされました。その結果、ServeMux はこの不一致を検出し、正しい URL への 301 リダイレクトを発行し、POST リクエストを GET リクエストに効果的に変換しました。
この問題を解決するには、次の解決策を検討してください。
ブラウザは通常、機密データのセキュリティを維持するため、リダイレクト後に POST リクエストを繰り返さないことに注意してください。
以上がGo Web サーバーが POST リクエストを GET にリダイレクトするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。