基礎RubyOnRails Chapter3-1 コントローラとビュー
基礎RubyOnRaisチャプター3−1、
Raisの基礎編、 コントローラとビューについて書いてきます。
改訂3版基礎 Ruby on Rails (KS IMPRESS KISO SERIES)
- 作者: 黒田努,佐藤和人,株式会社オイアクス
- 出版社/メーカー: インプレス
- 発売日: 2015/05/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
HTTPの基礎
HTTPとは、ブラウザとサーバーがHTMLや画像などのリソースをやり取りするときに使われるルールみたいなもので、
このルールにしたがったコードをサーバーに送信することで、サーバーからレスポンスをもらうことができるもの。
このプロトコルを使ってブラウザとサーバーで様々な種類の通信を行い、データのやり取りをする。
技術的な細かい話は別にして、ざっくばらんにいうとこんな感じ。
(よくわかってないだけだったり)
URLの基礎
普段から使っているURLも、細かく分けると幾つかの部分に分かれていて、それは以下のとおり。
ポート番号なんてないじゃないか!と一瞬思ったけど、Httpのデフォルトのポート番号(80)であれば省略可能というルールになっているので、ほとんどのWebサイトにはこのポート番号はありません。
イントラネットのWebアプリとかだと、このポート番号が丸見えなこともありますね。
大抵のWebサイトはトップページにアクセスすると、indexページが表示されますが、このindexが上記のパスという形になっています。
(ルートがインデックスページになっていることもあるので、その場合はindexというパスはありません。アクセスできるけどルートにリダイレクトされることが多いですね。)
HTTPのメソッド
HTTPのメソッドとは、HTTPがサーバに送信するリクエストの先頭にある文言です。
この文言を使い分けることで、リクエストに対するサーバーの動作が変わります。
たとえば、GETメソッドはサーバーのデータ(HTMLや画像など)を取得しますが、POSTメソッドはデータを送信(フォームに入力した情報など)を送り、サーバーにそのデータを保存するような機能になります。
RubyOnRailsも同様、これらのメソッドが送信された時の処理をルーティングすることでコントローラのアクションに割り当てることになります。
名称 | 機能 |
---|---|
GET | リソースの要求 |
POST | リソースの送信 |
HEAD | ヘッダー部分のみを要求 |
PUT | リソースの痴漢 |
PATCH | リソースの一分更新 |
DELETE | リソースの削除 |
このうち、 Railsで見るのはGET,POST,PUT,DELETEの4つだと思います。
バージョンによってはPATCHメソッドも準備されていますが、最新版だとPATCHは後方互換性のため残されている、
と解説されているので、新規開発では使わないほうがいいでしょう。
リダイレクトとは?
リダイレクトについて、自分は今まで「強制的に移動する」という曖昧なイメージでした。
結果としては間違っていなかったのですが、具体的な処理は以下の様に、一度送信したリクエストに対し別のページのURLをレスポンスとして返し、ブラウザがそのURLにアクセスする、というものです。
以下はメンバーページアクセスの例で、まずメンバーページ(メンバー1)のリクエストをサーバーに送信します。
リクエストを受け取ったサーバーはユーザーがログインしていないためアクセス出来ないと判断し、ログインページにリダイレクトするようレスポンスを返します。
レスポンスを受け取ったブラウザはサーバーにログインページのリクエストを送信し、サーバーはそのリクエストどおりログインページを送信する、というのが具体的な処理です。
最初のリクエストに対するレスポンスが別のページの表示、ではなく別のページにアクセスせよというレスポンスを送信するわけです。
ルーティングとは?
RubyOnRailsのルーティングという機能ですが、単純に言ってしまえば、URLを生成しそのURLに割り当てる動作を決める
というものです。
その記述方法がさまさまな方法があり、非常に柔軟なURLと動作の割当が可能となっています。
まとめ
WebはOSに依存する部分が少ない分、Webなりの作法やルールがたくさんあることを改めて認識。今までやってきたデスクトップアプリとはぜんぜん違う世界だなと日々考えさせられます。