RESTful とは
kenta.ky.yamamoto
REST とは

REST は Web の設計思想で Web におけるアーキ
テクチャスタイルのこと

アーキテクチャスタイルって…?
いろいろなアーキテクチャスタイル

ソフトウェア                   MVC (Model-View-Controller)

UNIX                     Pipe and Filter

GUI, JavaScript on the   Event System
browser
Web                      REST <- HERE!
具体的な位置づけ


アーキテクチャスタイル   REST

アーキテクチャ       ブラウザ、サーバ、プロキシ、
              HTTP, URI, HTML
実装            Apache, Firefox, Internet
              Explorer
簡単に言うと、

REST≒Webアーキテクチャスタイル

RESTful とは、"Webっぽさ"
どうすれば RESTful になるの?

"Webっぽい" 実装の6つの原則を表す呪文

"ULCODC$SS"
REST = ULCODC$SS
Uniform Layered Code on Demand Client ($)
Cache Stateless Server
REST = ULCODC$SS
Uniform Layered Code on Demand Client ($)
Cache Stateless Server

1.   クライアント/サーバ: Server
2.   ステートレスサーバ: Stateless
3.   キャッシュ: $
4.   統一インターフェース: Uniform
5.   階層化システム: Layered
6.   コードオンデマンド: Code on Demand
REST = ULCODC$SS
1. クライアント/サーバ
● ユーザインタフェースと処理を分離する
REST = ULCODC$SS
2. ステートレスサーバ
● サーバ側でアプリケーション状態を持たない


※ Cookie は?
このステートレスの原則に逆らうため必要最低限に使う
REST = ULCODC$SS
3. キャッシュ
● クライアントとサーバの通信回数と量を減らす
REST = ULCODC$SS
4. 統一インターフェース
● インタフェースを固定する
● HTTP に GET, POST など8つしかメソッドがないのも REST
   に則っていると言える
REST = ULCODC$SS
5. 階層化システム
● システムを階層に分離する
● Load Balancer での負荷分散や Proxy によるアクセス制限
   が行えるのは REST のお陰
REST = ULCODC$SS
6. コードオンデマンド
● プログラムをクライアントにダウンロードして実行する
● JavaScript, Flash, Javaアプレット が使えるのが REST の
   お陰
まとめ: REST = ULCODC$SS

Uniform Layered Code on Demand Client ($)
Cache Stateless Server




                                       以上

ありがとうございました。

私たちは何を Web っぽいと感じているのか