意味
Representational State Transfer(REST)は、アーキテクチャ設計の標準です。RESTは、一連のアーキテクチャ設計制約を指定します。これらの各制約に完全に準拠するソフトウェアを実装する場合、それは「RESTful」と呼ばれる可能性があります。
制約
上記の制約は次のとおりです。
クライアントサーバー
統一されたインターフェースは、クライアントをサーバーから分離します。サーバーがクライアントが適用する可能性のあるユーザーインターフェイスに関係していないのと同様に、クライアントはデータの保存と取得に関係していません。したがって、サーバーとクライアントは、双方の間のインターフェース契約が有効である限り、互いに完全に独立して実装できます。その結果、クライアントの移植性が高くなり、サーバーをよりシンプルかつスケーラブルに設計できます。
ステートレス
サーバーは、クライアント呼び出しの合間に、サーバー側のクライアントの状態情報を保持しません。結果として、クライアントからのすべての要求には、RESTサーバーによる処理に必要なすべての情報が含まれている必要があります。セッション状態が必要な場合は、その情報をクライアント側に保持する必要があります。
統一されたインターフェース
クライアントとサーバー間の統一されたインターフェースにより、両方のアーキテクチャーの分離が簡素化され、各部分が互いに独立して進化できるようになります。
キャッシュ可能性
クライアントはサーバーからの応答をキャッシュできます。これが機能するためには、サーバーからの応答をキャッシュ可能として定義するか、クライアントが受信して以降の要求に使用される可能性のある応答からの古いデータや不適切なデータを再利用できないようにする必要があります。キャッシュ可能性は、スケーラビリティとパフォーマンスの向上につながります。
レイヤリング
クライアントは、クライアントがエンドサーバーに直接接続されているのか、アクセス方法に沿って仲介者に接続されているのかを知りません。中間サーバーは、負荷分散を有効にし、共有キャッシュを提供することにより、システムのスケーラビリティを向上させることができます。また、セキュリティポリシーを適用する場合もあります。