6

PUTMVC 2のリリース後、新機能の確認と操作を開始しましたが、DELETE動詞の使用法が理解できませんでした。

私はそれについて検索し、いくつかの記事を読みましたが、私はそれを得ることができませんでした。

DELETEとの主な目的は何PUTですか?GET代わりにorメソッドを使用するよりも利点がありますかPOST(GETとPOSTですべてのリクエストを処理できますが)?

4

5 に答える 5

13
  • GET:機能はクライアントに情報を送り返すことだけです。副作用のない反復可能な操作である必要があります。

  • POST:副作用のある操作を行います。再現性はありません(POSTを2回実行すると、サーバーは2回動作します)。操作後、別のページにリダイレクトして、GETを使用して結果を表示する必要があります。

  • DELETE:その唯一の機能は破壊的な操作を行うことであり、繰り返しはできません(オブジェクトが削除されると、他に削除するものはありません)。

  • PUT:その機能は、単一のオブジェクトを変更し、POST(のような)方法で送信された値で更新することです。繰り返し可能。

POSTを使用してDELETEとPUTを偽造することができます(一部のWebブラウザーはDELETEとPUTを認識しないため)。

GETは、副作用のある操作ではなく、情報を表示するためにのみ使用してください。

于 2010-03-22T15:54:25.433 に答える
4

RESTfulアーキテクチャでDELETEは、データを削除するリクエストに使用され、PUTデータを挿入するリクエストに使用されることになっています。

于 2010-03-22T15:43:34.417 に答える
2

基本的には、アクション/特権をより適切に区別するために使用されます。

べき等の方法とWebアプリケーション

メソッドPUTとDELETEはべき等であると定義されています。つまり、複数の同一の要求が単一の要求と同じ効果を持つ必要があります。HTTPはステートレスプロトコルであるため、安全であると規定されているメソッドGET、HEAD、OPTIONS、およびTRACEもべき等である必要があります。対照的に、POSTメソッドは必ずしもべき等ではないため、同一のPOSTリクエストを複数回送信すると、状態にさらに影響を与えたり、さらなる副作用(金融取引など)を引き起こしたりする可能性があります。これが望ましい場合もありますが、事故が原因である場合もあります。たとえば、ユーザーが自分のアクションによって別のリクエストが送信されることに気付いていない場合や、最初のリクエストが成功。Webブラウザは、ページのリロードによってPOSTリクエストが再送信される場合にユーザーに警告するアラートダイアログボックスを表示する場合がありますが、POSTリクエストを複数回送信してはならない場合を処理するのは、通常、Webアプリケーション次第です。メソッドがべき等であるかどうかは、プロトコルまたはWebサーバーによって強制されないことに注意してください。(たとえば)データベースの挿入またはその他のべき等でないアクションがGETまたはその他の要求によってトリガーされるWebアプリケーションを作成することは完全に可能です。ただし、この推奨事項を無視すると、ユーザーエージェントが同じ要求を繰り返しても安全でないと判断した場合、望ましくない結果が生じる可能性があります。POSTリクエストを複数回送信してはならない場合を処理するのは、通常、Webアプリケーション次第です。メソッドがべき等であるかどうかは、プロトコルまたはWebサーバーによって強制されないことに注意してください。(たとえば)データベースの挿入またはその他のべき等でないアクションがGETまたはその他の要求によってトリガーされるWebアプリケーションを作成することは完全に可能です。ただし、この推奨事項を無視すると、ユーザーエージェントが同じ要求を繰り返しても安全でないと判断した場合、望ましくない結果が生じる可能性があります。POSTリクエストを複数回送信してはならない場合を処理するのは、通常、Webアプリケーション次第です。メソッドがべき等であるかどうかは、プロトコルまたはWebサーバーによって強制されないことに注意してください。(たとえば)データベースの挿入またはその他のべき等でないアクションがGETまたはその他の要求によってトリガーされるWebアプリケーションを作成することは完全に可能です。ただし、この推奨事項を無視すると、ユーザーエージェントが同じ要求を繰り返しても安全でないと判断した場合、望ましくない結果が生じる可能性があります。

ウィキペディア経由
http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods

于 2010-03-22T15:54:41.093 に答える
0

まず、この(重複?)質問に対するBlaMの非常に良い答えを確認する必要があります。

明らかに、RESTの原則を使用せずに、技術的にリソースを作成/更新/削除することができますが、要点を見逃しています。それでもRESTの背後にある概念を実際に理解していない場合は、RyanTomaykoのブログエントリから始めるのがよいでしょう。

于 2010-03-22T15:57:07.180 に答える
-3

元々の目的は、これらの動詞を使用してWebページを編集することでした(RESTfulシステムの詳細)。その後、 WebDAV拡張機能によって非推奨になりました。実際には、PUTとDELETEは使用されません(またはカスタムビルドのアプリケーションではほとんど使用されません)。

于 2010-03-22T15:42:57.797 に答える