1. ホーム
  2. architecture

[解決済み] ログアウトする。GETかPOSTか?

2022-03-19 09:16:40

質問

この質問は、一般的にGETとPOSTをいつ使うかについての質問ではありません。 ウェブアプリケーションからのログアウトを処理するために推奨されるのはどちらか、ということです。一般的な意味でのGETとPOSTの違いについては多くの情報を見つけましたが、この特定のシナリオについての明確な答えは見つかりませんでした。

なぜなら、GETの方がPOSTよりも実装が簡単で、簡単なリンクを貼るだけで完了するからです。少なくとも私が思いつく限りでは、大半のWebサイトがそうなっているように思います。Stack Overflowでさえ、ログアウトはGETで処理されています。

私が躊躇しているのは、ウェブアクセラレータやプロキシがページ内のリンクをすべて取得してページを事前にキャッシュし、ユーザーがクリックしたときにより速いレスポンスを得ることができるという(古いとはいえ)議論です。これがまだ適用されるかどうかはわかりませんが、もしそうだとすると、理論的には、これらのアクセラレータを使用しているユーザーは、ログインするとすぐにアプリケーションから追い出されることになるのです。

私がこれまで読んできたところでは、次のようなことが示唆されています。 POSTは破壊的なアクションに使用し、アプリケーションの内部状態を変更しないアクション(クエリなど)はGETで処理する必要があります。 . これを踏まえて、ここでの本当の疑問は。

アプリケーションからログアウトすることは破壊的な行為とみなされますか/アプリケーションの内部状態を変更しますか?

解決方法は?

使用方法 POST .

2010年では GET というのは、おそらく納得のいく答えでしょう。しかし、今日(2013年)、ブラウザは、あなたが次に訪れると思われるページを事前にフェッチするようになっています。

StackOverflowの開発者の一人が、Twitterでこの問題について話しています。

<ブロッククオート

ログオフをGETリクエストにしてくれた銀行と、便利なURLプリフェッチを提供してくれたChromeチームに感謝したいです - Nick Craver ( ニック・クレイバー(@Nick_Craver ) 2013年1月29日

面白い事実:StackOverflowは以前はGET経由でログアウトを扱っていましたが、今は違います。