シェアしました。
どっちもHTTPリクエストのメソッド(種類とでも言いましょうか)で、
仕組み上は名前以外に大した違いはありませんが、ルールが異なります。
故に用途も異なります。
【GET】
「GET」は情報(リソース)に変化があってはいけません。
そして、1回目、2回目、3回目のアクセスでも情報(リソース)に変化が無い限り全く同じ情報が返される必要があります。裏を返すとクライアント(利用者側)はリクエストに失敗したら、気軽にリトライして良い訳です。
Quoraで例えると「回答の投稿ボタン」を押すとデータベースに回答が登録される訳ですが、これは情報に変化があるためGETではいけません。
逆に質問を見る分には何回ページをリロードしようと情報に変化はありませんので、GETで良い訳です。
用途としては、「表示」「検索」です。
ちなみに、ブラウザのアドレスバーに直接入力をしてエンターキーを押した時のリクエストはGETです。
【POST】
「POST」は何をしてもOKです。
POSTリクエストで情報を表示、登録、変更、削除、何をしても許されます。
しかし、クライアント(利用者側)から見るとPOSTメソッドは危険なため気軽にリクエストする事はできません。2回リクエストすれば情報(リソース)が2個作られてもそれはクライアントの責任です。
従って、1回目のリクエストが失敗しても、クライアントは気軽にリトライする事はできません。
用途としては「登録」「編集」「削除」です。
※あえて書きませんでしたが、それ以外にも「PUT」、「DELETE」、「PATCH」等様々なメソッドがあり、それぞれ保証されている事や用途が異なります。
※GETは習慣的にクエリパラメータを使いますが、RFC上、Bodyをセットしてはいけない訳ではありませんので「名前以外に大した違いはありません」という表現を用いました。
0 コメント:
コメントを投稿