がじぇったー

お金と家電とプログラミングのブログ

それぞれのHTTPメソッド(GET,POST,PUT,DELETE)の役割について

こんにちわ

がじぇったー (@hackmylife7) | Twitter


です。



HTTPメソッドについて扱っていきます。




HTTPメソッドの種類

HTTPのメソッドの種類は以下の図の通りです。

f:id:gadgeterkun:20191012234701p:plain
引用元

基本的にGET,POST,PUT,DELETEをおさえればCRUD(Create,Read,Update,Delete)の基本的なデータ操作を満たせるのでOKです。

GET

GETは指定したURIの情報を取得します。

WEBページの閲覧、画像の取得、映像の取得などの操作がGETを用いた操作になります。

サーバはGETリクエストに対して、指定されたURIに対応するデータをレスポンスとして返します。

GETメソッドはURLにパラメータが含まれます。

例えばああgoogle に検索キーワードを入れて入力すると検索語のURLは検索キーワードが含まれたものになります。(エンコードされたパラメータがURLに格納されます


POST

POSTはGETの次に利用頻度の高いメソッドです。


POSTメソッドを用いてリソースを作成することができます。
例えば、私が今書いているブログ記事の作成は「公開する」ボタンを押すとPOSTメソッドがはてなが管理しているサーバに送られ、WEBページが作成されます。
twitterinstagramの投稿もPOSTメソッドにあたります。

POSTメソッドではパラメータはヘッダのリクエストボディに含まれます。

curlコマンドの例

curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"name":"sample table"}' http://127.0.0.1:8000/api/tables/

PUT

PUTはリソースの更新と、リソースの作成機能をもちます。

リソースの更新は例えば、このブログを投稿した後、修正してアップデートする操作がそれにあたります。

また、PUTもリソースを作成することができます。

POSTとPUTの使い分け

POSTとPUTはどちらもリソースを作成することができます。

しかしPOSTメソッドを用いてリソースを作成した場合、リソースのURIはクライアント側で決めることはできません。一方PUTでリソースを作成した場合はクライアントがURIを決めることができます。

DELETE

DELETEメソッドはリソースを削除するメソッドです。
例えば記事を削除する操作などがそれにあたります。