データを送る「GETメソッド」と「POSTメソッド」

机の上のパソコン プログラミング

クライアント側からサーバー側に、データを送る方法は2種類あります。「GETメソッド」と「POSTメソッド」です。

2つとも、サーバーにデータを渡しますが、渡し方に違いがあります。

GETメソッドは、URLにパラメータを付与してデータを渡します。

POSTメソッドは、メッセージ・ボディでデータを渡します。

GETメソッドとは

URLにパラメータとしてデータを付与して、サーバーに渡します。

YouTubeで「GAS」と検索すると、URLは次のようになっています。

https://www.youtube.com/results?search_query=GAS

URLの中に「?」があります。「?」より後ろの部分がパラメータを表します。

「パラメータ名=値」です。

この場合、「search_query」というパラメータに、「GAS」が入力され、サーバーに送られています。

パラメータを複数指定する場合は、パラメータを「&」でつなぎます。

YouTubeでGASで検索し、フィルタをかけるとURLは次のようになります。

https://www.youtube.com/results?search_query=GAS&sp=EgIYAg%253D%253D

「sp」というパラメータが追加されています。

GETメソッドはURLに付与してデータを送るので、ほかの人にもパラメータが丸見えになります。

ほかにも、テキストデータのみ送信可能で、パラメータの長さに制限があるので、送るデータ量に限りがあります。

POSTメソッドとは

GETメソッドとは違い、メッセージ・ボディにデータを格納するので、URLにパラメータは含まれません。

ブラウザのアドレスバーにパラメータが表示されることがないので、ほかの人に見られる可能性が低くなります。

メッセージ・ボディには長さの制限がないので、パラメータの量を気にする必要もありません。

GETメソッドとPOSTメソッド

2つのメソッドを比べると、ほかの人に見られる心配もないし、パラメータの量を気にしなくてよいPOSTメソッドがいいと思うでしょう。

しかし、GETメソッドは、サイトをブックマークするときや、友だちにサイトをおすすめするときに大きなメリットがあります。

GETメソッドは、URLにパラメータを含むので、毎回同じ結果を得ることができます。

POSTメソッドの場合はメッセージ・ボディにパラメータが含まれるので、ブックマークではパラメータを保存できません。

まとめ

GETメソッド
  • URLの後ろにデータを付与して、サーバーに送信する。
  • URLに付与するので、ほかの人にもデータが丸見えになる。
  • データ量に制限がある。
  • テキストデータのみ送信可能。
  • ?のあとにパラメータを指定する。
  • &で複数のパラメータを指定できる

POSTメソッド
  • メッセージ・ボディにデータを付与するのでURLが変わらない。
  • ほかの人にパラメータを見られる可能性が低い。
  • データ量に制限がない。
タイトルとURLをコピーしました