第5章 URIの設計

クールなURIは変わらない

良いURIやきれいなURIのことを「クールURI」 (Cool URI) と呼ぶのですが。この言葉の起源ははっきりしています。Webの発明者Tim Berners-Leeが1998年に発表した「Cool URIs don't change」 (クールなURIは変わらない) というWebページが発祥です。 (p.120)

URIを変わりにくくするためには

・URIにプログラミング言語依存の拡張子を利用しない (.pl, .rb, .do, .jsp など)

・URIに実装依存のパス名を利用しない (cgi-bin, servlet など)

・URIにプログラミング言語のメソッド名を利用しない

・URIにセッションIDを含めない

・URIはリソースを表現する名詞にする

URIのユーザビリティ

(割愛)

URIを変更したいとき

・リダイレクトせよ

URI設計のテクニック

コンテントネゴシエーション (Content Negotiation): HTTPの仕組み。Accept-Languageヘッダを用いて、OSの言語によって返すリソースを変更できる

1つのリソースが複数の表現を持つとき、個々のリソース表現を示すURIに.jaのような拡張子を使うことは悪いことではありません。 (p.132)

複数パラメータの組み合わせで表現するリソースにはマトリクスURI (Matrix URI) を使います。マトリクスURIでは、階層構造を表現するスラッシュの代わりに、複数の軸のパラメータをそれぞれセミコロン (;) で区切ってリソースを表現します。 (p.133)

緯度 (Lat) と経度 (Lng) を使用するマトリクスURIの例

http://example.jp/map/lat=35.705471;lng=139.751898
マトリクスURIに用いられる記号
セミコロン (;)順序が意味を持たない
カンマ (,)順序が意味を持つ

URIの不透明性

URIは不透明 (Opaque) である: ex. フランス語版のページが存在するかはアクセスするまでわからない

URIを強く意識する

(割愛)