devdevdevReports

dev系開発開発者の開発日記

【WEBを支える技術】REST編

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

  • 作者:山本 陽平
  • 発売日: 2010/04/08
  • メディア: 単行本(ソフトカバー)

RESTとはなにか

1.アーキテクチャスタイル

2.リソース

  • URIによるリソースの命名
    → プログラムでリソースが扱えるようになった。
  • URIによるアドレス可能性
    → プログラムでリソースを扱いやすくなった。

3.RESTの構成

3-1.クライアント/サーバ

概要

  • クライアントとサーバーを分離

利点

3-2.ステートレスサーバ

概要

  • アプリケーションの状態を管理しない

利点

  • サーバーの実装が簡略化
  • リクエストを返却後はすぐにリソース開放可能で、パフォーマンスが向上

懸念点

  • セッション管理、認証するために「Cookie」を使用する場合が多い。
    →REST的には間違っているが、すべてを満たしていなければならないわけではない。

3-3.キャッシュ

概要

  • 一度使用したリソースをクライアント側で保持して、使いまわす

利点

  • サーバーとクライアント間の通信料を減らせることでネットワーク帯域の利用、処理時間を短縮し、パフォーマンス向上

懸念点

  • 古いキャッシュデータによる情報の信頼性の低下

3-4. 統一インターフェース

概要

  • URIでリソースに対する操作(GET、POSTなど)を限定する(RESTの代表格)

利点

3-5.階層化システム

概要

  • システムを階層的に分離(プロキシサーバを介するなど)

利点

3-6.コードオンデマンド

概要

  • サーバーからプログラムをダウンロードし、クライアント側で実行する。(JavaScriptFlashなど)

利点

  • クライアントにあらかじめなくても、クライアント機能を後から拡張できる

懸念点

4.ハイパーメディアとしてのREST

  • URIによるアプリケーションのリソース化によって、他アプリケーションリソースへのアクセスが可能(再利用可能)になった。
  • URIリンクなどが代表例

5.分散システムとしてのREST

  • 負荷軽減
    リンクによるアプリケーション状態が遷移するため、負荷が軽減される。
    RPCなどはネットワーク越しの関数呼び出しが多く、1回のオーバーヘッドが大きい。

  • バージョン管理
    HTTP通信のため、分散オブジェクトのバージョンアップによるインターフェースの互換性に影響がない。HTTPのバージョンアップは下位互換性を保証

【WEBを支える技術】を読む理由 - devdevdevReports

【WEBを支える技術】REST編 - devdevdevReports

【WEBを支える技術】URI仕様編 - devdevdevReports

【WEBを支える技術】URI設計編~良いURI設計とは~ - devdevdevReports

【WEBを支える技術】HTTP基礎編~シンプルさが標準化~ - devdevdevReports

【WEBを支える技術】HTTPメソッド編~名は体を表す~ - devdevdevReports

【WEBを支える技術】HTTPステータス編~名は体を表す~ - devdevdevReports