クライアント側からサーバー側に、データを送る方法は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メソッドの場合はメッセージ・ボディにパラメータが含まれるので、ブックマークではパラメータを保存できません。