generated at
REST アーキテクチャスタイル
アーキテクチャスタイルを指して、単に 「REST」 と呼ばれることもある。

HTTP リクエストを送ることでいろいろな web サービスを利用するための仕組み (1)
nobuoka 本当に??
最も重要なのは 「リソース」 の概念 : 鍵となる情報の抽象
このアーキテクチャスタイルは、HTTP/1.1 に取り組んでいる最中に開発された
もともとは、World Wide Web (WWW) と HTTP の説明を捕捉するものとして作られた
目的は、効率的で、スケーラブルで、信頼性の高い分散システムの構築を促進すること
RESTful という言葉で表現される
実現のためにソフトウェアアーキテクチャが従うべき 6 つの制約
クライアントとサーバーの分離
ステートレス性 : クライアントのコンテキストがサーバーに格納されないように
キャッシュ可能性
階層化システム : クライアントからは 1 つの層が見えるだけで、その背後の階層は見えない
コードオンデマンド (オプション) : サーバーは実行可能コードをクライアントに送る
統一インターフェイス
リソース間のリンク関係なども統一的に表現される
以下の文献がおすすめ
Reflections on the REST Architectural Style and Principled Design of the Modern Web Architecture」 ← REST の歴史、進化、欠点に加えて、REST から派生した様々なアーキテクチャスタイルにも言及
REST のアーキテクチャ要素
データ要素
リソース (resource)
リソース R は、経時変化するメンバーシップ関数 M_R(t)
時刻 t をエンティティあるいは値の集合に写像する
名前が付けられるものはなんでもリソースになりうる
一時的なサービスも含む
例えば 「あるソフトウェアの最新バージョン」 も 「あるソフトウェアのバージョン 2.0」 もリソース
ある時点でどちらも同じ値だとしても、それらは異なるリソース
リソース識別子 (resource identifier) : URLURN
nobuoka 今だと URI かな?
表現 (representation) : HTML 文書、JPEG 画像
表現メタデータ (representation metadata) : media type, last-modified time
リソースメタデータ (resource metadata) : source link, alternates, vary
制御データ (control data) : if-modified-since cache-control
接続子 (コネクタ; connector)
クライアント (client) : libwww, libwww-perl
サーバー (server) : libwww, Apache API, NSAPI
キャッシュ (cache) : ブラウザキャッシュ、Akamai キャッシュネットワーク
リゾルバ : bind (DNS ルックアップライブラリ)
トンネル (tunnel) : SOCKS, SSL after HTTP CONNECT

参考文献