HTTPメソッドとは?
🕓本記事の最終更新日は
です。
8つのメソッド
HTTPには8つしかメソッドがありません。今回はよく使うGETとPOSTについて詳しく説明します。
メソッド名 | 何ができる |
---|---|
GET | リソースの取得 |
POST | リソースの取得、追加、子リソースの作成 |
PUT | リソースの更新、作成 |
DELETE | 削除 |
HEAD | ヘッダの取得 |
OPTIONS | サポートしているメソッドの取得 |
TRACE | 自分宛てにリクエストメッセージを返す |
CONNECT | プロシキ動作のトンネル接続への変更 |
GET
GETではリソースの取得ができます。リソースの取得の際は以下のようにパラメータを含めることでどんなデータが欲しいのか、サーバー側に伝えることができます。
http://examole.jp/search?q={リクエストパラメータ}
GETは危険?
このパラメータがあまりに長い場合やエンドユーザーに見せたくない場合にはPOSTを使いましょう。 URLでパラメータが見えてしまうのでブラウザのURLバーからエンドユーザーに見えてしまいます。
POST
色んなことができるPOST
POSTはいろいろ出来るのです!8つのメソッドを初めに紹介しましたが、実際によく使うのはGETとPOSTです。 PUT、DELETE、場合によってはGETはPOSTメソッドで代用します。 例えば以下のようなことができます。
- 子リソースの作成
- 既存リソースへのデータ追加
- リソースの作成(PUTの代用)
- リソースの取得(GETの代用)
- リソースの更新(PUTの代用)
- リソースの削除(DELETEの代用)
GETの代わりにPOSTを使うとき
データを取得したい場合でリクエストパラメータが長すぎる又はエンドユーザーにに見せたくない場合はPOSTを使いましょうと記載しました。
何故でしょうか?
それはPOSTの場合リクエストボディにパラメータを含めることができるからです。以下のように記載します。
http://examole.jp/search
content_type = "text/html; charset=UTF-8"
{
user_id:1234;
content:これはTESTです。
}
言い換えると、URLにパラメータが含まれないからエンドユーザーにばれないということですね。
参考
山本陽平. "第6章 HTTPの基本". Webを支える技術.技術評論社, 20102020 , GETとPOSTの違いについて
佐々木 真 , 2022 , POSTメソッド【HTTPリクエストメソッド】(読:ポストメソッド 英:POST method)とは
2020 , GETとPOSTの違いについて
おわりに
最後まで読んでいただき、ありがとうございました。
普段とりあえずPOSTを使っている人も、なぜPOSTを使うか理解できましたか?お役に立てていれば幸いです。