Webを支える技術(URIなど)


20181114

やったこと

Webを支える技術を読む。はじめからURIまで。

以下、読書メモ✍

Webの用途

  • Webサイト
  • ユーザーインターフェイスとして
  • APIとして(プログラム用インターフェイス)

Webを支える技術

  • HTTP URI HTML
  • ハイパーメディア(任意の情報に任意のタイミングでアクセスできる)
  • 分散システム(世界中のサーバにアクセス)

リソース

  • Web 上の情報
  • URIで一意の名前を持つ
  • URIを利用しプログラムはリソースへアクセス可能に(=Addressability)

ステートレス、アプリケーションの状態を"サーバ"で管理しないこと(ステートレスサーバ)

キャッシュ、一度取得したデータのクライアント側での使い回し

RESTとは下記の6つを組み合わせたもの

・クライアント/ サーバ :ユーザ インタフェース と 処理 を 分離 する

・ステートレスサーバ :サーバ 側 で アプリケーション 状態 を 持た ない

・キャッシュ :クライアント と サーバ の 通信 回数 と 量 を 減らす

・統一 インタフェース :インタフェース を 固定 する (HTTPメソッド縛り)

・階層 化 システム :システム を 階層 に 分離 する

・コードオンデマンド :プログラム を クライアント に ダウンロード し て 実行 する(JS)

URI

絶対URIと相対URI

相対URIはHTMLの

内の要素にベースURIを記述する
<base href="http://www.example.com/page.html">

URIに使えない文字をURIに使うときは%エンコーディングされて転送される

http:// ja. wikipedia. org/ wiki/ あ
         👇に展開される
http:// ja. wikipedia. org/ wiki/% E 3% 81% 82

URI実装ポイント

👉なるべく絶対URIにする

👉エンコーディングはUTF-8にする

URIを変わりにくくする

目的

リンク切れ防止。
Webのハイパーメディアシステムとしての機能が成り立たなくなる。

コツ

  • 実装に依存した拡張子やパスを含まない
  • メソッド名やセッションIDを含めない
  • リソースを表現する名詞にする

初期のRailsの悪いURI例(showメソッドが含まれている)

http:// example. jp/ sample/ people/ show/ 123

マトリクスURI

複数のパラメ−タをセミコロン(;)で区切ってリソースを表現する。
経度と緯度を表したURIの例
http:// example. jp/ map/ lat = 35. 705471; lng = 139. 751898

下記の点がとても重要。URIをしっかりと意識する必要がある

  • URI は リソース の 名前 で ある
  • URI は 寿命 が 長い
  • URI は ブラウザ が アドレス 欄 に 表示 する

所感

Railsのフレームのお陰で普段あまりURIを意識していなかった事に気づく。
URI奥深いなぁ。