HTTP通信のGET、POSTの違い
http通信にはGETとPOSTといった2つの代表的なメソッドがある。 主にメソッドとかのhttp通信を掘り下げたような話は普通は意識しないが、ログインフォームや検索機能、メールフォームなどを持つWebサイトを作成する上では、セキュリティ上必ず意識する必要がある。 具体的な違い GET GETは最もポピュラーなメソッドで、Webサイトにアクセスしたり、検索をしたりする時に必ず使用される。 POSTとの一番大きな違いは、「URLにデータをくっつけて送信できる」事である。 例えば、example.comというWebサイトでhogehogeという文字列で検索したとする。この際に送信されるデータはsearch="hogehoge"であるが、(searchの部分はサイトによって変わる)このデータはURLにくっつき、追記する形で送信される。 具体的には「example.com? search = hogehoge 」である。 これは複数個データを指定することができ、データの連結には「&」を用いる。例えば、同じくexample.comというWebサイトでhogehogeという文字列を検索し、検索結果の5ページ目を表示するようにデータを送信したとする。この際のURLは、「example.com? search = hogehoge & page = 5 」である。 これらのデータを受け取ったサーバは、URLに含まれるデータを展開/解読し、処理を実行している。 セキュリティ面では、URLにデータが含まれる以上、誰かにURLからデータを抜かれてしまう恐れがある。履歴にも残るので、 共用PCでGETメソッドを使用したログインフォームのあるページにアクセスし、ログインすると、パスワードやユーザ名が丸見えになる可能性もある 。 今まで散々GETをこき下ろしてきたが、利点もある。それは、 ブックマークをする際にとっても便利 なのだ。ブックマークは大抵、URLとページのタイトル、アイコンのみを記録する。POSTを使用した検索エンジンで検索しようとすると、 データはPOSTリクエストにのみ記録されてしまうのでブックマークはできない 。ただし、GETは URLにデータが記録されるのでブックマーク時にデータが保存できる 。 POST POSTはGETの次にポピュ...