ぼちぼちクラウド

クラウド系SEのぼちぼち技術ブログ

【読書記録】Webを支える技術 第1部②

第3章 REST

アーキテクチャスタイルとしてのREST

RESTにとって重要な「リソース」の概念

  • リソースとはWeb上に存在する、名前を持ったありとあらゆる情報

 例:東京の天気予報、東京駅の写真、このブログ

  • リソースはURIで識別でき、それによりプログラムは情報にアクセスできる
  • URIの登場前は、ディレクトリ名やファイル名、ログイン情報を伝える必要があった
  • 1つのリソースに複数のURIをつけることもできる

RESTを構成する特徴

  • 下記6つの特徴を持つ
  • クライアント/サーバ(ここに下記5つの制約を付加したものがREST)

 :UI(クライアント)と処理(サーバ)を分離することで、マルチプラットフォーム(PCやスマホ、ゲーム機・・)が実現できるなどの利点

  • ステートレスサーバ

 :サーバ側でアプリケーションの状態を持たないことで、サーバの実装を簡略化できる
  ※例外としてHTTPをステートフルにする要素:Cookieを使ったセッション管理

  • キャッシュ

 :一度取得したリソースをクライアント側で使いまわすことで、サーバとの通信を減らし処理を効率化する

  • 統一インタフェース

 :インタフェースを固定。たとえばGETやPOSTなど8個のメソッドしか定義しないことで、実装の独立性が向上する

  • 階層化システム

 :ロードバランサやプロキシをCL/SV間に設置できるが、CL側はそのことを意識せずSVを利用できる(統一インタフェースを採用することで階層化が可能になる)

  • コードオンデマンド

 :プログラムをクライアントにダウンロードして実行する 例)JavaScript