違いを解説君

あるゆる物事の"違い"をわかりやすく解説する情報マガジン

コマンド

ITの違い

【http】GETとPOSTの違いをわかりやすく解説!正しい使い分け方は?

『http』という言葉、あなたは聞いたことがありますか?

 

はなこ
この間、学校でプログラム作成の授業があったの。

そこで、『http』を使ったデータの取得プログラムをつくったんだけど、『GET』と『POST』の2つのメソッドがあってね。

違いがよくわからなかったの。

どちらもデータ取得用のメソッドだね。

でも、僕も違いまではよく把握していないな。

たろう
はなこ
いったい、どうやって使い分ければいいのかしらね?

 

今回は、httpで使うメソッドの『GET』と『POST』について、その違いを調べ、使い分け方について解説します。

スポンサーリンク

【http】『GET』と『POST』の違い

『http』とは、Webサーバとの通信を行うためのプロトコルの一つです。

プロトコルとは、ネットワークでの通信手順を表します。

Internet ExplorerやFirefox、Chromeなどのブラウザは、Webサーバに対してhttpを使ってコンテンツを要求します。

要求を受けたWebサーバは、指定されたコンテンツをブラウザに送信し、それがブラウザ上で表示されるわけです。

このときに使うメソッド(命令)が『GET』と『POST』です。

『GET』も『POST』も、Webサーバにコンテンツを要求するときに使われます。

それでは、何が違うのでしょうか?

 

『GET』と『POST』の主な違いは次のようになります。

『GET』と『POST』の違い

  • 『GET』はパラメータをURLに含めるが、『POST』はパラメータをリクエスト・ボディーに含める。
  • 『GET』は、文字数の制限を受ける場合がある。
  • 『GET』は、テキストデータしか送れないが、『POST』はバイナリデータも送ることができる。

httpでは、送信先のWebサーバにあるパスを指定することで、そのパスにあるコンテンツを取得することができます。

また、Webサーバ側で何らかの処理をして結果を返すような場合、パラメータを渡す必要があります。

『GET』の場合、パラメータはURLに書き込む形で渡されます。

ブラウザで表示されるアドレスに、

『http://xxx.co.jp/?param1=yyy?param2=zzz』

というようなものを見たことはないでしょうか?

この時、

"?"

で区切られた文字が、それぞれパラメータ名とその値を表します。

『POST』の場合、パラメータはリクエスト・ボディーというところに書き込まれます。

つまり、ブラウザ上ではパラメータに何があるのか、その値は何か、見ることはできないということですね。

 

『GET』がパラメータをURLに書き込む形になっていることで、文字数の制限に引っかかる場合があります。

Internet Explorerの場合、URLに2048文字までという制約があるため、『GET』でたくさんのパラメータを指定することができません。

『POST』であれば、パラメータはリクエスト・ボディーに書き込むため制限を受けません。

また、

『GET』の場合はパラメータの値にテキストしか使うことができませんが、『POST』ならバイナリデータも使うことができます。

 

はなこ
『GET』と『POST』の違いは何となく分かったわ。
あとは、どうやって使い分けるかを知りたいね。
たろう

 

『GET』と『POST』の使い分け方

インターネット

インターネット

『GET』と『POST』は、どのように使い分ければいいのでしょうか?

まず、『GET』の場合、パラメータはURLに書き込まれる形になっています。

これは、

パラメータの内容がURLを見れば誰でも分かることを意味します。

なので、パラメータもいっしょにブックマークしておきたいような場合、『GET』の方がいいということになります。

『POST』の場合、

パラメータが変わってもURLは同じなので、区別が付きません。

つまり、ブックマークしておいても同じ結果は得られないということになります。

逆に、パラメータを隠しておきたい場合もあるでしょう。

利用者に見られることなくパラメータを指定したい場合は、『POST』の方が有効です。

 

また、

パラメータの数が非常に多い場合は、文字数の制限に気をつける必要があります。

そのような場合は、『POST』の方が有効です。

バイナリデータをWebサーバに送りたいような場合、『POST』しか選択肢はありません。

 

はなこ
『POST』を使えば『GET』は不要なんじゃないのかな?
『GET』を使わずに『POST』だけという人も多いみたいだね。

でも、URLとしてパラメータが残るというのは結構重要じゃないかな。

『GET』の方がいい場合だってあるから、うまく使い分けていきたいね。

たろう

スポンサーリンク

まとめ

今回のポイントについて、まとめていきましょう。

ポイント

  • 『GET』も『POST』も、Webサーバに対してコンテンツを要求する時に使うhttpのメソッドである。
  • 『GET』は、パラメータをURL上に書き込むのに対し、『POST』はパラメータをリクエスト・ボディーに書き込む。
  • 『GET』は、文字数の制約を受けやすい。
  • 『GET』は、パラメータの値にテキストデータしか指定できないが、『POST』ならバイナリデータも指定できる。

『GET』も『POST』も、よく使われるメソッドです。

違いを理解して、正しく使うようにしましょう。

関連記事

-ITの違い

Copyright© 違いを解説君 , 2019 All Rights Reserved.