- 初めに
- 初学者として勉強を進めていく上で違いをはっきりと理解することが難しかったため、自分の理解を深める為にも記事にしたいと思います。 私と同じ初学者の方でGETとPOSTの違いがよくわからないという方の助けになれば嬉しいです。
- GETとPOSTの使い道
- GET
- 指定されたリソースを取り出す際に使う。 具体例
- ・見たい商品の詳細
- ・同様のページが何ページにも渡る場合の特定のページ番号
- →見たい商品や動画などのWebページのURLを指定することで、HTMLファイルがWebサーバーからブラウザに返されて表示ができる
- POST
- Webページで入力されたリソースをWebサーバーに送り特有の処理をさせたい際に使う。 具体例
- ・ログイン画面に入力するメールアドレスやパスワード
- ・画像ファイル、音声ファイル、その他のファイルなど
- →フォームに入力された内容がWebサーバーに送られ、データベースに登録される
- GETの特徴
- ・リクエストとして送信されるデータはURLに含まれる
- ⚪︎「URL?パラメータ名=値」という形式
- ⚪︎「?」パラメータのはじまり
- ⚪︎「&」パラメータの切れ目
- ⚪︎「=」挟んだ左側がGETの変数名、右側が渡される
- (例)
- https://example.com?param1=value1¶m2=value2
- ・データベースの値を変更せずにデータを取得する場合
- ・送信できるデータ量は、ブラウザやサーバーといった環境に依存する
- ・第三者に見られてしまう可能性がある(送信するデータがアドレスバーに表示されるため)
- ・ブックマークに保存することで再度同じページが参照できる
- ・テキストデータのみ送信できる
- POSTの特徴
- ・リクエストとして送信されるデータはメッセージボディ部に含まれる。
- メッセージボディはHTTPリクエストのパラメータ内容を渡す場所。
- ・データベース内のデータを画面上の値(FORMタグ内の値)で変更したい時に使用
- ・データの更新、削除、新規登録などで使用する
- ・パスワードのような秘匿情報をがURLに表示されない
- ・データ量が多くても送信できる
- ・バイナリデータを送信できる
- ・FORMタグでMETHOD=POSTを指定すると使用できる
- 参考 https://qiita.com/Sekky0905/items/dff3d0da059d6f5bfabf