2012-11-04 23 views
5

「セッション」というリソースがあるとします。クライアントはPUTを呼び出して、新しいセッションを作成して開始します。クライアントがセッションを終了すると、クライアントはアクセスできなくなりますが、履歴/アカウンタビリティ上の理由から存続する必要があります。HTTPメソッド:DELETEとPOST

セッションを終了するには、意味的に望ましい効果に近いDELETE要求を発行する方が適切でしょうか、またはリソースが実際に永久に削除されないのを見て、POSTしますか?

答えて

5

質問はここにあります:リクエストはidempotentですか?同じリクエストを2回実行すると、副作用がありますか?記事を注文するときと同じように、注文リクエストを2回実行すると、記事が2度表示されます。

その場合は、POSTが必要な方法です。そうでない場合は、PUTまたはDELETEのいずれかを指定します。

セッションを削除しているようには見えないので、状態が変更された場合にのみ、PUTが良い方法になります。これは、リソースが変更され、削除されないことを意味します。

編集:DELETEがより適切と思われる

、リソースがクライアントから削除されるように表示された場合。物事が背中にどのように実装されているかは、クライアントにとって重要ではありません。

+0

クライアントの観点からリソースが「表示される」場合はどうなりますか?私の例では、2回目の呼び出しで副作用が発生せず、セッションでGETリクエストを発行できないため、リクエストは偶発的になります。 –

0

実際にはsessionを削除しないので、POSTリクエストはここでより良いでしょう。 POST要求は、オブジェクトの状態を変更するためによく使用されます。私が思うのはあなたのケースです。

関連する問題