第3章 REST
アーキテクチャスタイルとしてのREST
RESTにとって重要な「リソース」の概念
- リソースとはWeb上に存在する、名前を持ったありとあらゆる情報
例:東京の天気予報、東京駅の写真、このブログ
RESTを構成する特徴
- 下記6つの特徴を持つ
- クライアント/サーバ(ここに下記5つの制約を付加したものがREST)
:UI(クライアント)と処理(サーバ)を分離することで、マルチプラットフォーム(PCやスマホ、ゲーム機・・)が実現できるなどの利点
- ステートレスサーバ
:サーバ側でアプリケーションの状態を持たないことで、サーバの実装を簡略化できる
※例外としてHTTPをステートフルにする要素:Cookieを使ったセッション管理
- キャッシュ
:一度取得したリソースをクライアント側で使いまわすことで、サーバとの通信を減らし処理を効率化する
- 統一インタフェース
:インタフェースを固定。たとえばGETやPOSTなど8個のメソッドしか定義しないことで、実装の独立性が向上する
- 階層化システム
:ロードバランサやプロキシをCL/SV間に設置できるが、CL側はそのことを意識せずSVを利用できる(統一インタフェースを採用することで階層化が可能になる)
- コードオンデマンド
:プログラムをクライアントにダウンロードして実行する 例)JavaScript