getとpostについて調べてみた


いまいち理解出来ていないので、調べてみました。

概要

・getとpostはhttp通信するときの方法(メソッド)の一つ。(他にはput、patch、head、deleteなど)
・どっちもwebサーバーに情報を渡すもの。
・手紙に置き換えると、封筒の表面に全ての情報が書いてあるのがget、封筒の中の手紙にきちんと情報が書いてあるのがpost。

get

・リクエスト時にサーバへ送信するデータはリクエストURLの後に付け加えられる
形式→「URL?パラメータ名=値」、?がパラメータのはじまり、&でパラメータの切れ目、=は挟んだ左側がGETの変数名、右側が渡される値
・他人にみられたくないデータは送らない。URLで見えてしまうため
・送信できるデータ量に制限がある。(URLの長さ2048文字が送れるデータ量の限界)
・検索結果の一覧などをブックマークで保存できる
・URLなどを送信したい場合はGETを使う
・渡した値が履歴(キャッシュ)として残る
・パスワードや個人情報を渡す場合は、必ずpost。
・データーベースにアクセスするような内容は書かない(検索エンジンのクローラーがページをみにきたときにデータの追記・変更などをされないように)

post

・bodyに含めてリクエストする。そのため目で見ることが出来ない。(目に見えないだけで通信を盗聴されてしまうと見えてしまう。決して安全という訳ではない)
・履歴が残らない。
・登録するときに使う(DBに格納する時など)
・他人にみられたくないデータ(パスワードなど)を送る場合
・twitterや掲示板の投稿などで使われる

参考

「GETメソッド」と「POSTメソッド」の違い - 「分かりそう」で「分からない」
GETとPOSTの違いについて - Qiita
GETとPOSTの使い分け ついでにPUTとDELETE - Qiita
HTTPとPOSTとGET - Qiita
・書籍-「プロになるためのWeb技術入門」