GETリクエストはキャッシュされ、POSTを使用する必要があるため、GETリクエストでは機密情報を送信しないでください。
すべての要求に対してPOSTメソッドを使用できず、GET要求を無視できないのはなぜですか?
GETメソッドを無視してPOSTのみを使用し始めた場合、どのような困難/障壁に直面しますか?
HTTPには異なるverbsがあり、セマンティクスが異なります。
DELETEとHEADも存在しますが、ここではそれらを使用する必要はないと思います。
POSTはべき等ではないため、同じブラウザを2回送信すると警告が表示されますPOST要求が望ましくない[ 〜#〜] get [〜#〜]ユースケース。
とにかく、 HTTPリクエストのヘッダー 応答をキャッシュするかどうかを制御するため、GETリクエストへの応答を保持しないようにキャッシュに要求することができます。
最後に、(プロキシをキャッシュするという意味で)キャッシュはセキュリティに関連していません。リクエストやレスポンスを誰かに盗聴させたくない場合は、キャッシュについて心配する必要はありませんが、HTTPSを使用して、すべてが正しく暗号化されるようにします。
ブラウザのキャッシュは別の質問です。それは、最後のURLを履歴キャッシュに保存できるからです。したがって、機密情報は送信しないでくださいRL内。ただし、ブラウザーを閉じるときに履歴を常に消去し、サイトの閲覧が終了したらブラウザーを閉じる場合を除きます。ただし、URLでの送信とGETリクエストでの送信は別の質問です。 HTTP基本認証では、GETリクエストのHTTPヘッダーで認証情報を渡すことができるため、安全です。また、ログインフォーム認証は非べき等の要求です(認証後と認証前の状態は同じではありません)。shall POST HTTPセマンティクスごとの要求)。
TL/DR:問題はGET vs POSTリクエストではありません。機密性のルールは次のとおりです。
主な問題は、POSTリクエストによって送信されたページをリロードしようとすると、通常、ブラウザが何かを2回行う可能性があるという警告をポップアップします。これはあなたが望むことではありません。 GETリクエストを使用するほとんどのページ。