ジャンプ先:

ある HTTP メソッドがべき等であるとは、サーバーが同じ状況にあるとき、特定のリクエストに対して何回でも続けて同じ効果が起こることをいいます。 このことは、べき等なメソッドでは副作用が生じるはずではないと言うこともできます ( 記録などを除く ) 。 適切に実装された GET メソッド、HEAD メソッド 、PUT メソッド、 DELETE メソッドはべき等ですが、 POST メソッドはそうではありません。 安全なメソッドはすべてべき等です。

べき等であるためには、サーバーにおける裏側の実際の状態だけが考慮されるので、返される状態コードはリクエストごとに異なる場合があります。 例えば、最初に DELETE メソッドが呼び出された場合は、おそらく 200 を返しますが、それ以降は 404 を返すでしょう。 RESTful な API の設計において、最後の入力操作を削除する機能を DELETE メソッドを使って実装すべきでないとされるのも、DELETE メソッドがべき等であることを示唆しています。

なお、メソッドがべき等であっても、サーバーやアプリケーションによってべき等性の破壊が生じることがあります。

例えば、 GET /pageX HTTP/1.1 はべき等です。 連続して何度か呼び出しても、クライアントは同じ結果を得ます。

GET /pageX HTTP/1.1   
GET /pageX HTTP/1.1   
GET /pageX HTTP/1.1   
GET /pageX HTTP/1.1   

POST /add_row HTTP/1.1 はべき等ではありません。 何度か呼び出すと、その回数だけ列に追加されていきます。

POST /add_row HTTP/1.1
POST /add_row HTTP/1.1   -> 2行目に追加
POST /add_row HTTP/1.1   -> 3行目に追加

DELETE /idX/delete HTTP/1.1 はべき等ですが、状態コードは数回のリクエストの間に変化することがあります。

DELETE /idX/delete HTTP/1.1   -> Returns 200 if idX exists
DELETE /idX/delete HTTP/1.1   -> Returns 404 as it just got deleted
DELETE /idX/delete HTTP/1.1   -> Returns 404

詳細情報

一般知識

技術情報

ドキュメントのタグと貢献者

このページの貢献者: Wind1808, mfuji09, araigumaG
最終更新者: Wind1808,