Webの歴史
1965年 「ハイパーメディア」という概念の誕生
ハイパーメディアとはテキスト、音声や動画など多様なメディアを相互にリンクさせた概念
最も普及したハイパーメディアの実装がWeb
・必要最低限のリンク機能だけを備えている
・Web以前のハイパーメディアと比べてシンプル
1970年
コンピューター小型化性能向上、複数のコンピュータを組み合わせて処理を分散させ、全体として性能向上させる手法分散型システムが生まれる。
1980年
インターネットが登場し、複数のコンピュータを接続した分散システムが普及。
以下の理由によりウェブが普及した。
特定多数の情報をリンクさせあうことができる。
システムを大規模化させやすい(オープンである)
情報の集中的な管理が難しくリンク切れを起こしやすい欠点も。
ウェブのリンクはシンプルな単方向リンクだけ 実装が簡単。
2000年 Roy Fieling(アメリカの大学院生)
なぜめぐがこんなに成功したのか考え、これを「REST」と名付け、まとめた。
アーキテクチャスタイル「REST」
アーキテクチャスタイル…(NVCモデル)とか実際のシステムは具体的なアーキテクチャを持っているその設計時の指針、作法、流儀のこと。
リソース…ウェブ上に存在する名前を持つありとあらゆる情報
「Rest」とは複数のアーキテクチャスタイルを以下の組み合わせて構築し、複合したもの。
-
クライアント/サーバー…クライアントとサーバに分離して処理
クライアントマルチフォームにできる
複数のサーバを組み合わせて冗長化可用性をあげれる -
ステートレスサーバ…クライアントのアプリケーションの状態をサーバーで管理しないこと
サーバーを簡易化
リクエストに応じたあとすぐサーバーの計算機リソースを解放できる
↔︎ステートフル
クッキーを使ったセッション管理。
REST視点から見るとクッキーを使ったセッション管理は間違ったhttpの拡張であり、クッキーは必要最低限の利用にとどめる。 -
キャッシュ…リソースの鮮度に基づいて、一度取得したリソースをクライアント側で使います方式。
クライアントサーバ間の通信を減らす効率化
古いキャッシュを利用してしまい情報の信頼性が下がる -
統一インターフェイス…URIで示すリソースに対する操作を統一した限定的なインターフェースで行う
Http 1.1 8つのメソッドのみ定義
全体のアーキテクチャがシンプルに
サーバークライアントの独立性が高まる -
階層化システム…いくつかの階層に分離するアーキテクチャスタイルのこと
-
コードオンデマンド…プログラムコードをサーバーからダンロードしクライアント側でそれを実行する
EX JS,Javaアプレット
この1~6を取捨選択するのが設計作業(理想はRESTに近づける(これをRESTfulという)のか、妥協するか考える)
無理やりRESTfulにする必要は無い