違い、使い分けに関して、できるだけ簡単にまとめてみたいと思います。いう記事には結構アクセスがなされているようです。利用しても構いません。何れを使うべきかという指針は存在します。この指針は判りにくいのか、説明してもすぐには理解してもらえなかったり、プロジェクトの中でも誤った利用の仕方をされる場合が結構あるので、ここに書いてみます。含めたそれ以外のHTTPメソッドの大きな違い。とも書く元々は数学の用語で、『ある操作を何度行っても同じ結果になる場合、この操作はべき等』であるといいます。各HTTPメソッドのべき等性を以下に示します。副作用がないメソッドとして定義されており、あるURIに対して、何度GETを繰り返してもリソースの状態は変化しない事が保証されています。次いで判りやすいでしょう。Webサービスで作成する事を考えます。http://<サーバ名>/employee/<社員番号>社員リソースの作成には以下のXMLを利用するとします。)</employee>Webサービス側では、上記XMLをもとに山田太郎さんの社員リソースを作成します。この場合、以下のような二種類のシステムが考えられます。社員番号は含める事ができません。利用しても、作成のための処理が行われる度、社員番号が変わります。これはべき等ではありません。メソッドを利用するのが適当と言えます。している場合はこのケースになるでしょう。2回目以降は、同一データで上書きされる、あるいは、既にデータ作成済みとして処理がされない。これはべき等になります。メソッドの利用で問題ありません。※1の場合と異なり、新規作成を行うURIにも社員番号を含める事ができます。弊社Webサービスの場合には上記1の方式になっています。CRUD以外の処理ではどうか一般的なCRUD以外の処理ではどうでしょうか。簡単な口座振り込み処理を考えてみます。内部処理としては以下のような二種類の処理があったとします。)A口座からB口座へお金を移動する処理を行う。A口座、及び、B口座の金額を振込後の金額に設定する処理を行う。この処理の事前処理として、A口座、B口座の残高は確認しておく。1の処理の場合には、複数回実行されれば、そのたびお金が移動します。=べき等ではありません。2の処理の場合は、金額を設定する処理に関していえば、同じリクエストが何回発行されても、A口座、B口座の残高は同じになります。使い分けを行うにあたっては、上記のようにべき等性がどうであるかを考えて決めるべきとされているのですが、以下のようなケースはどうなるのでしょうか?リソース取得であるが、アクセスを記録しており、アクセスログレコードが新規作成される。同一データで更新リクエストがされた場合でも、最終更新日時を保存している。最終更新日時を保存しているシステムは結構多いと思います。)、POSTにすべきでしょうか?こういった場合、べき等性が崩れているからGETではない。全てのリソースのアクセスログとってたら、GETなんて使えないじゃん?利用者側からみたらべき等だからGETで問題ない。この場合も、ほぼ全てのリソースでPUTは利用できなくなる。関する宗教論争になってしまう可能性があります。『リソースの本質に変更がなければ、完全にはべき等でなくてもPOST以外のメソッドで構わない。いう考えで使い分ける事にしています。して構わないだろうという事です。まとめべき等に関しては、上述のとおり、『これが絶対正解!!』といったものにはお目にかかった事がありません。人によって考え方が異なり、面倒臭い論争に巻き込まれる可能性もあるかもしれません。これといった正解がないからといって、何も決められないわけではありません。サービスを構築/実装する場合には基本的な指針は決めておいた方がよい事は間違いないでしょう。利用するHTTPメソッド今回の話ステータスコード詳細なエラーコードをどうクライアントに伝えるか?リソースURIURIもちゃんと決めないと、後でもめたり、はまったりする等は、初めにきちんと設計するか、あるいは、ある程度しっかりした指針がないとカオスになる可能性があります。考えて利用者/開発者双方にやさしいサービスが作れるといいですね。