Web Framework
Menu MenuWeb Framework
ユーザはブラウザ(IE/Safari/Chrome)からHTTPでアクセスする。
HTTPには get/put がある。
get/put は、Web server から、Web framework に渡される。(どこの誰にいつ?)
Web framework は、必要に応じて Database にアクセスする。
RESTful Architecture
HTTP で渡す情報には以下のものがある
get/put の区別URI
URI は以下の構造を持っている
http://hostname/filename?optionこのうち、hostname はIP addressに対応するので変更できない。
Resource
filename 部分は Web service の resource (資源) を表している。資源に対して、
get database のread put database へのwriteという対応を取る。そうすると URI が Database の情報と一対一に対応することになる。
これを Representational State Transfer(REST) といい、それを採用した Web service を RESTful という。
正確には、get/put の他に post/delete がある。
RESTful でないもの
http://hostname/filename?option の filename?option 部分に、オブジェクトへのメソッド名を 当てる手法もある。これは、RPC (remote procedure call) と呼ばれる。この手法だと、URI と database は直接には対応しない。
Session
RESTful architecture は、Stateless と呼ばれるが、状態をサービスから完全になくすことは難しい。例えば、
空席を調べて 予約するの二つを関係ないサービスとして実装するよりも、調べた空席を覚えておく方が良い。特に、Web framework が状態を覚えていると、複数の http get/put が一つの状態を持つ Session で構成される。
Session を作るにはいくつかの方法がある。
Web framework 内部で覚えておく (状態) URI の一部に session id を入れる Cookie を使うSession のような状態を作ることは REST とは両立しないが、状態が悪いというわけではない。実際、login しているかしていないかの状態を持つのは一般的に行われている。
これらは un-RESTful なアプローチになる。
Routing
Web Server に来る入力は URI である。したがって、URI を Web framework の script の適切な部分に適切な引数で送る必要がある。
Rendering
Web Browser に表示されるのは HTML (XML) である。XML のノードは、HTMLの内容を表すべきである。さらに、CSS (Cascading style sheets) という表示のための情報が別に存在する。Web frame work は HTML と CSS を生成することになる。
また、Browser 上で処理を行うために JavaScript が使われることが多い。
これらの生成は主にマクロ置換で行われる。特別なパターン(macro)が実行時にデータベースの値などで置換されて、Web Browser に送られる。
問題1
Ruby on Rails 上に自分で作成したデータベースを作る。Debugging
Debugging Rails application% sudo gem install ruby-debug19 % rails server --debugger