1.アプリケーションが HTTP リクエストを受け取る。 2.リクエストの内容(URL + HTTP メソッド)から、あらかじめ紐づけしておいたメソッドが特定される。 紐づけというのは例えば「GET で /profile がリクエストされた時は ProfileController クラスの show メソッドを呼ぶ」という設定のこと。 このリクエストの内容とメソッドの紐づけ設定を「ルーティング」と呼ぶ。 3.リクエスト URL ごとの処理が実行される前に認証チェックなどの共通処理が実行される。 この処理はたいてい「ミドルウェア」と呼ばれる。 4.ミドルウェアの処理を通過するとルーティングによって設定されていたメソッドが呼ばれる。 このメソッドは特定の意味のまとまりごとにクラスにまとめられることが多く、この「ルーティング先のメソッドをまとめたクラス」を「コントローラー」と呼ぶ。 5.上記で呼ばれたメソッド内の処理は要件次第だが、データベースを操作する際はたいてい「Object-Relational マッパー(ORM)」が用いられる。 6.レスポンスを返却する際、コンテンツが HTML であれば HTML 生成のために「テンプレート(エンジン)」が用いられる。