RESTの定義
Roy Fieldingの博士論文はWebサービスに関するREST構造を、以下の6個の特徴を定義して説明している。
Client-Server
クライアントとサーバーの明確な区別がなされていなければならない。
Stateless
クライアントのリクエストはその達成に必要なすべての情報を含んでいなければならない。 サーバーはリクエストを繰り返すクライアントにのいかなる状態も保持してはいけない。
Cache
サーバからのレスポンスはcacheableかnoncacheableとしてラベル付けされることで、クライアント(またはクライアントとサーバ間の仲介)は最適な目的に対してキャッシュを使用できる。
Uniform Interface
クライアントがサーバ資源にアクセスする際のプロトコルは一貫性があり、well-definedで、標準化させていなければならない。一般的に使われるWebサービスの同型インターフェースはHTTPプロトコルである。
Layered System
プロキシサーバやキャッシュ、ゲートウェイはクライアントとサーバ間において、性能や信頼性、拡張性を改善するために不可欠なものとして配置される。
Code-on-Demand
クライアントは自らの環境で実行するために選択的にコードをダウンロードできる。