GW中に高校生の従弟会ったら、
絶賛プログラミングにハマってるらしいんです
良いことだと思いましたが、
Webアプリ作成がうまくいかないそうで、
話を深堀るとGET/POSTの違いが分かってなさそうだと分かりました。
その場で、口頭で伝えはしましたが、
記事にまとめたほうが分かりやすいと思い、
従弟に向けて書いていきます。
この記事を読んでいる方で
GET/POSTの理解が曖昧な方のお役にも立てれば幸いです😊
GET/POSTの違い&実際の使い分け方
GET/POSTとは?
Webサイトを閲覧したり、Webアプリを使う際に、パソコンとサーバーとの間でリクエスト(要求)とレスポンス(応答)が行われています。
リクエストを行う方法としては、
- URLの直接入力
- お気に入りからのアクセス
- リンクやボタンのクリック
- 入力フォームからの送信
- JavaScriptからのバックグラウンドアクセスなどがあります。
サーバーはリクエストを受け取り、適切な処理を行い、該当ページを表示します。
リクエストパラメーターはサーバーに送るデータのことで、GETやPOSTはそのリクエストの方式の一つです。両者の違いは、サーバーへのリクエストパラメーターの送り方にあります。
GET方式とは?
GET方式は、URLの末尾にパラメータを付けて送る方法です。URLの「?」や「&」の後に【パラメータ名】=【データ】の形で指定します。パラメーターを複数渡す場合は、「&」で区切ります。
例えば、下記のzozotownのリンクを見てみましょう。
は「?」以降がパラメータです。
【URL】 https://zozo.jp/shop/gap/goods-sale/81271942/
【パラメータ1】did 【データ】132326088
【パラメータ2】rid 【データ】1203
となります。
この方式は、URL上にパラメーターが表示されるため、個人情報やパスワードの送信には適しません。また、URLには長さの制限があるため、膨大なデータを送ることはできません。
POST方式とは?
POST方式は、パラメータをURLに付けずにサーバーに送る方法です。ログイン画面やお問い合わせフォーム、注文入力画面などで使用されます。HTMLの<form>
タグの属性でmethod="POST"
と指定します。個人情報やパスワード、膨大なデータを送信する場合は、必ずPOST方式を使用します。
GET/POSTの使い分け方
基本的には以下のように覚えておけばOKです:
- 画面表示のために必要なパラメーターは「GET」
- 例)表示したい商品や動画のID、ページ番号など
- ユーザーが画面に入力して送信するパラメーターは「POST」
- 例)ログインIDや個人情報など
つまり、名前通りってことです。
GETは、ページを「取得」するためのリクエスト
POSTは、情報を「送信」するためのリクエスト
Webアプリを作る際には、画面によって適切なリクエスト方式を選ぶようにしましょう😊