GET/POST
備忘録です。
間違いなどございましたらご指摘ください。
クライアントとサーバーのやりとり
Webにおいてサーバとクライアント間のやりとりは基本的にHTTPというプロトコルを用いる。
HTTPとは、WebサーバとWebクライアントの間でデータの送受信を行うために用いられるプロトコル。
Webの世界でのやりとりは基本的にリクエスト/レスポンスで成立。
- クライアントからサーバへの要求することをリクエスト
- サーバからブラウザへ応答することをレスポンス
HTTPの仕様
HTTPにはいくつかの仕様がきめられていて
GET/POSTというのはその仕様で取り決められたHTTPの一部。
(他にもHEAD/OPTIONS/PUT/DELETEなどが定義されている。)
GET
GETは指定したリソースの表現を転送するようにリクエストするメソッド。
(つまり、何か情報を検索したり取得するために使うためのメソッド。)
例えば、ブラウザでURLを入力し検索するとき、無意識にGETメソッドを使っている。
GETメソッドを使ってデータを送信する場合は、URLの後ろに送りたいデータを付与して送れる。
(データを取得したい時に使用、データベースの書き換えが必要ない場合。)
POST
POSTは指定したリソースを実装した機能に従って処理をする機能
GETとは反対に冪等でないかつ安全でないと定義されている。
POSTメソッドを利用してデータを送信する場合は、HTTPリクエスト内のメッセージボディにデータを含めて送る。
リクエストとして送信されるデータはメッセージボディ部に含まれる。
(メッセージボディは、HTTPリクエストのパラメータ内容を渡す場所)
以下のようなデータを変更したい時に使用。
- HTMLのformタグに入力された内容をDBへ登録する
- ブログの記事を投稿する
- 新しいユーザを登録する
- 既存のデータに新しい情報を付加する
リクエストパラメーターの付加の方法
GETはURLにクエリとして追加することが可能
上記で説明したとうり、GETメソッドを使ってデータを送信する場合は、URLの後ろに送りたいデータを付与して送れる。
(データを取得したい時、データベースの書き換えが必要ない場合。)
【例】
GET: /foo/bar?itemId=xxxx-xxxx
「URL?パラメータ名=値」という形式
「?」パラメータのはじまり
「&」パラメータの切れ目
「=」挟んだ左側がGETの変数名、右側が渡される値
一方、POSTはBodyをリクエストに含めることも可能。
また一般的にあまり使われないが、クエリを追加することもできる。
POST: /foo/bar?user="taro"
param:{"itemId": "xxxx-xxxx”}
まとめ
- GETはリソースを取得するときに使うもの
- GETは情報を取得するときに使うもの
- POSTはリソースに対して特有の処理をするときに使うもの
- POSTは新しい情報の登録をするときに使うもの
Author And Source
この問題について(GET/POST), 我々は、より多くの情報をここで見つけました https://qiita.com/Marrie/items/278beb9ec07f670d265d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .