良いURIやきれいなURIのことを「クールURI」 (Cool URI) と呼ぶのですが。この言葉の起源ははっきりしています。Webの発明者Tim Berners-Leeが1998年に発表した「Cool URIs don't change」 (クールなURIは変わらない) というWebページが発祥です。 (p.120)
・URIにプログラミング言語依存の拡張子を利用しない (.pl, .rb, .do, .jsp など)
・URIに実装依存のパス名を利用しない (cgi-bin, servlet など)
・URIにプログラミング言語のメソッド名を利用しない
・URIにセッションIDを含めない
・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は不透明 (Opaque) である: ex. フランス語版のページが存在するかはアクセスするまでわからない
(割愛)