- HTTPメソッドとは
- 8つのメソッドと意味
- HTTPメソッドとCRUDの関連
- GET メソッド
- POST メソッド
- PUT メソッド
- DELETE メソッド
- HEAD メソッド
- OPTIONS メソッド
- GETとPOSTだけで実装する場合
- べき等性と安全性
- HTTPメソッド、URIとサーバー側処理の整合性をとる
HTTPメソッドとは
- クライアントからサーバーへリソースに対してどのような処理を行うかを伝達する
8つのメソッドと意味
- GET
- 子リソースの取得
- POST 子リソースの作成
- リソースへのデータ追加
- どのほかの処理
- PUT
- リソースの更新
- リソースの作成
- DELETE
- リソースの作事
- HEAD
- リソースのヘッダ取得
- OPTIONS
- リソースがサポートするメソッドの取得
- TRACE
- 自分宛てにリクエスメッセージを返すテスト
- CONNECT
- プロキシ動作のトンネル接続への変更
HTTPメソッドとCRUDの関連
CRUD | 意味 | HTTPメソッド |
---|---|---|
Create | 作成 | POST / PUT |
Read | 読込 | GET |
Update | 更新 | PUT |
Delete | 削除 | DELETE |
GET メソッド
- リソースの取得
- 例)WEBページの取得、画像の取得、映像の取得など
POST メソッド
PUT メソッド
- リソースの更新
- リソースの作成
- POSTとPUTの使い分け
DELETE メソッド
- リソースの削除
HEAD メソッド
- リソースのヘッダを取得
- Content-Type、文字コードタイプなど
OPTIONS メソッド
- リソースのサポートするHTTPメソッドを取得
- Webアプリケーションに実装
- Apacheに挙動を設定
GETとPOSTだけで実装する場合
- HTMLのフォームはGETとPOSTだけ使用可能
- HTMLの制限でGETとPOSTだけを利用する時代が長かった
- AjaxのXMLHttpRequestモジュールで解消
- 携帯電話(ガラケー)ではサポートしていないので、GETとPOSTのみ
_methodパラメータで解決する方法
- inputタグにパラメータとして含め、サーバー側で受け取る
- 例)'< input type="hidden" id="_method" value=PUT">'
X-HTTP-Method-Overrideで解決する方法
- リクエストボディにパラメータとして含め、サーバー側で受け取る
- 例)X-HTTP-Method-Override:PUT
べき等性と安全性
- べき等性
- ある操作を何度実行しても結果が同じであること
- 安全性
- 操作対象のリソースの状態を変化させないこと
- GET
- べき等、安全
- POST
- べき等でない、安全でない
- PUT
- べき等、安全でない
- DELETE
- べき等、安全でない
HTTPメソッド、URIとサーバー側処理の整合性をとる
- GETでリソース作成、リソースの削除を行ってはならない
- 例)GETメソッド http://example/test/delete
- PUTで相対的な更新を行わない
- 例)PUTメソッド http://example/test
requestBody +50
- 例)PUTメソッド http://example/test
【WEBを支える技術】URI設計編~良いURI設計とは~ - WEB道楽
【WEBを支える技術】HTTP基礎編~シンプルさが標準化~ - WEB道楽