【Webを支える技術】第2部 URI 学習メモ
目次
はじめに
「Webを支える技術」を読んで自分なりにまとめた学習メモです。
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
- 作者: 山本陽平
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 143人 クリック: 4,320回
- この商品を含むブログ (183件) を見る
第2部 URI
第4章 URIの仕様
URIとは
URI(Uniform Resource Identifier)とは、リソースを統一的に識別するIDのことです。
- 統一的:全てが同じルールに従っているということ
- 識別子:あるものをほかのものと区別して指し示すための名前/ID
URIの構文
例:http://yohei:pass@blog.example.jp:8000/search?q=test&debug=true#n10
- URIスキーム(URI Scheme):http
- ユーザ情報:yohei:pass
- ホスト名(DNS: Domain Name System):blog.example.jp
- ポート番号:8000
- パス(Path):/search
- クエリパラメータ:q=test&debug=true
- URIフラグメント:#n10
※ ポート番号を省略した場合は各プロトコルのデフォルト値が使われます。HTTPのデフォルト値は80番です。
絶対URIと相対URI
絶対URI(Absolute Path):ルートから記述したパス
http://example.jp/foo/bar
相対URI(Relative Path):カレント(現在)ディレクトリから記述したパス
/foo/bar
ベースURI(Base URI、基底URI):相対URIの起点となるパス
URIの長さ制限
仕様上はURIの長さ制限はありません。しかし、実装上は制限が存在します。特に Internet Explorer はバージョンに問わず2,038バイトまでという制限があり、事実上この長さに合わせて実装することが多くなります。
さまざまなスキーム
- URIスキームの公式一覧:Uniform Resource Identifier (URI) Schemes
- 非公式を含めたURIスキーム一覧:Uniform Resource Identifier - Wikipedia
第5章 URIの設計
クールなURIは変わらない
クールURI(Cool URI):良いURIやきれいなURI
URIの設計指針
- URIにプログラミング言語依存の拡張子を利用しない(.pl、.rb、.do、.jspなど)
- URIに実装依存のパス名を利用しない(cgi-bin、servletなど)
- URIはセッションIDを含めない
- URIはそのリソースを表現する名詞である
URIのユーザビリティ
複雑なURI
http://example.jp/servlet/LoginServlet
シンプルなURI
http://example.jp/login
覚えやすく、開発者ではない普通の人にも使いやすい。それがクールURIの良い点です。
URIを変更したいとき
現在運用しているシステムのURIを変更したいときは、できる限りリダイレクト(Redirect)するようにしましょう。リダイレクトとは、古いURIを新しいURIに転送するHTTPのしくみのことです。
URI設計のテクニック
コンテントネゴシエーション(Content Negotiation):言語やファイルタイプなど複数の表現形式のファイルをサーバ上に用意しておき、ブラウザからのリクエストに応じてサーバが最適なファイルを自動的に判断してレスポンスを返す仕組みです。
マトリクスURI:複数のパラメータの組み合わせを表現するリソースの場合に用いる。例:「Google Map」
URIを強く意識する
これらの観点から、URIはWebサービスやWeb APIの設計において最も重視すべきパーツであると言えるでしょう。