REST
操作をHTTPメソッド、リソースをURLパス名で表現
特徴
ステートレスなクライアント/サーバプロトコル
HTTPメッセージの一つ一つが、そのリクエスト(メッセージ)を理解するために必要な全ての情報を含む。そのため、クライアントもサーバも、メッセージ間におけるセッションの状態を記憶しておく必要がない
ただし実際には、多くのHTTPベースのアプリケーションはクッキーやその他の仕掛けを使ってセッションの状態を管理している(URLリライティングのような一部のセッション管理手法を使うシステムは、RESTfulではない)
すべての情報(リソース)に適用できる「よく定義された操作」のセット
HTTP では操作(メソッド)の小さなセットが定義されている
最も重要なのは "GET"、"POST"、"PUT"、"DELETE"
これらはデータ永続化に要求されるCRUDと比較されることがある もっとも "POST" に関してはCRUDにはぴったり対応していない
リソースを一意に識別する「汎用的な構文」
RESTfulなシステムでは、すべてのリソースはUniform Resource Identifier (URI) で表される一意的な(ユニークな)アドレスを持つ アプリケーションの情報と状態遷移の両方を扱うことができる「ハイパーメディアの使用」
RESTシステムでは、多くの場合、HTML文書またはXML文書を使う
こうした文書に情報およびその他のリソースへのリンクを含める
こうすることにより、あるRESTリソースから他のRESTリソースを参照したい場合は単にリンクを辿るだけでよい。レジストリなどの他の基盤的な機能を使う必要はない リソースに対する操作は次のようにして行われる
ネットワークの「コンポーネント」(クライアントやサーバ) が、標準化されたインタフェース (HTTP) により通信する
ネットワークを介してリソースの「表現」(英: representation)を交換する(実際にはファイルがアップロード・ダウンロードされる)