<DAY66>WEBを支える技術を読んで 第4章
#学習時間と累計時間
●学習日数 66日
●学習時間(本日) 3.0時間
●累計学習時間 173.0時間
●一日あたりの平均学習時間 2.62時間
URIの設計と実装について(第4章始まり)
URIは日本語で言い換えると、リソースを統一的に認識するID。つまりURLさえあれば、WEB上にあるリソースを全て指し示す事が出来る。
URIを構成するパーツの例(簡単な構成バージョン)
http://blog.example.jp/entries/1
まずリソースにhttpでアクセスすると宣言。://をつけるのがルール。 ホスト名は必ず被らない名前かIPアドレスを使う。そのホストの中でリソースが被らないように階層パスが続く。
・URIスキーム:http ・ホスト名:blog.example.jp ・パス:/entries/1
URIを構成するパーツの例(複雑バージョン)
http://yohei:pass@blog.example.jp:8000/search?q=test&debug=true#n10
ユーザー名とパスワードは<:>で区切ります。 HTTPのポート番号のデェフォルト値は80番です。 クエリパラメーターはクライアントから動的にURLを生成します。(いまいちわからん) URIフラグメントはクエリパラメメーターで指定したURLのさらに細かいリソースを指定するときに使用する。 例えば、それがHTML文だった場合はid属性値がn10である要素となる。
・URIスキーム:http ・ユーザ情報:yohei:pass ・ホスト名:blog.example.jp ・ポート番号:8000・パス:/search ・クエリパラメータ:q=test&debug=true ・URIフラグメント:#n10
相対URIと絶対URI
絶対URIは階層全て記載するイメージ。
http://example.jp/foo/bar
相対URI URIスキームやホスト名を除く。
/foo/bar
見てわかるように、相対URIだけではクライアントが場所を認識できない。 相対URIでもURIを認識するようにしなければならない。 その為に絶対から相対にURIを変える事を相対URIを解決するという。
%エンコーティング
URIで対応していない文字列を変換し表示する。
URI長さ制限
IEが2038バイトまでしか対応していないので、それ以下の容量とする。
URI実装で気をつける事
相対URIを解決する事。 %エンコーティングの扱いでUTF-8を使用する事。
URIとURLの違い簡単に説明
URIはURLとURNの総称。 URLはドメインを更新しない時やサーバーが何かしらの障害で変更になったときにアクセス出来なくなる仕組み。 その保険的なイメージでURNとはドメイン名とは独立してリソースに恒久的にID(名前)をつける事。 但し、URNは取得ができない。WEBの価値が向上し、URLで十分永続的に接続出来るようになっている。