GETとPOSTの違いを最低限理解することは、Webやプログラミングの学習を始めようとする初学者にとって、最初の障壁ですよね。
GETメソッド
サーバーに値を渡す方法のひとつで「値をURLにくっつけてサーバに送る」方法。
何か情報を検索したり取得するために使うためのメソッドです。ブラウザでURLを入力しなにかを検索する際、GETメソッドが使われております。
POSTメソッド
サーバーに値を渡す方法のひとつで「値を見えないところにくっつけてサーバに送る」方法。
登録や更新などの、書き込みがあり更新されるようなときに使われるメソッドです。ブログの記事を更新するときとかは、POSTメソッドですね。
どちらもサーバーへなにか値を渡すことをしております。
GETメソッドの場合、URLの後ろに渡す値が表示されます。
一方で、POSTメソッドは、渡す値はURLの後ろにはくっついておりません。だから、POSTメソッドの方が安全です。しかし、POSTメソッドは目に見えないから安全だというのは、少し間違っています。
URL上で見えないだけで通信を盗聴すれば見ることができてしまいます。
クライアントとサーバーがやり取りする場合、HTTPで通信を行います。Webにおいて、サーバーとクライアント間のやりとりは基本的にHTTPというプロトコルを用いているのですが、このHTTPにはいくつかの仕様が取り決められています。
GETとPOSTというのはその仕様で取り決められた、HTTPメソッドの一部のことを指しております。
使い分け
基本的には、それぞれ上記で書いたような使われ方がします。
ただ、値をサーバーに渡す必要がある場合は、基本的にはPOSTメソッドを使っていけばいいと思います。
1.GETメソッドはPOSTメソッドと比べて渡せる情報量が少ない
2.GETメソッドは渡した値が履歴に残る
こういった部分で、セキュリティの面でもPOSTの方がマシです。パスワードやクレジットカードの情報などは、GETメソッドを使わないでください!
まとめ
1.値をサーバーに渡さない=GET
2.値をサーバーに渡す=基本的にはPOST
3.より安全=POST
4.URLに値が見える=GET
最初はこのくらいの違いの認識で問題ないでしょう。
参考:https://qiita.com/kanataxa/items/522efb74421255f0e0a1
参考:https://wa3.i-3-i.info/diff7method.html