YouTube で REST API のビデオを聞いていました。以下のリンクは次のとおりです。
GET、PUT、DELETE、HEAD はべき等操作であると言われています。つまり、これらを複数回呼び出して、サーバー上で同じ状態を取得できます。
誰かこの行を詳しく説明してくれませんか?
まったく同じ URL で何度Resource
リクエストされても、サーバーの状態がリクエストによって副作用として変わることはありません。
冪等:
それ自体で乗算またはその他の操作を行った場合に値が変更されないセットの要素を示す
したがって、サーバーから同じ URLで 1000 回画像をリクエストしても、サーバー上の何も変更されません。
同じリソースで複数回呼び出し
DELETE
ても、サーバー上の状態は変わりません。これにより、リソースが削除されますが、副作用はありません。そして、リソースがそこにない場合、それは私たちが望んでいたことであり、サーバーに影響を与えるものは何もありません.
それらVerbs
には副作用があってはなりません。
この正確な URL が何GET
回要求されても、サーバーの状態を変更する副作用が発生することはありません。
例:
リソースの呼び出し
GET
は、データベース レコードを変更したり、何らかの変更を引き起こしたりしてはなりません。もしそうなら、ルールを守っていません。
リソースを 1000 回連続して呼び出しHEAD
ても、サーバーの状態は変化しません。一部のリソースが個別に削除されたため、異なるデータが返される可能性がありますが、サーバー上で呼び出しを繰り返しても、何も変わらないはずです。
例:
複数回呼び出す
GET
と、まったく同じ URL でリクエストを行うたびに、そのリソースを追跡するカウンターが増加します。これはべき等ではありません。副作用があり、リクエストが原因でサーバーの状態が変化しています。
冪等GET
性とは、そのメソッド (例: )を何回呼び出しても、副作用が発生しないことを意味します。たとえばGET
、URL にリクエストを発行する (http://www.google.com
ブラウザーで に移動する) 場合、理論的にはGET
、サーバーに発行したリクエストの数に関係なく、Web サーバーの状態は変更されません。
DELETE
実際の例として、一部のデータベース/INSERT
操作に HTTP 経由でアクセスできないようにする必要がありますGET
。GET
ウェブサイトのクロール (つまり ting)中に、Google クローラーが誤ってデータベースからエンティティを削除してしまうという事故が数多く発生しています。