要約
<base href>は、HTML文書内の相対URLを解釈するときの基点を定める。リンクに書かれたchapter.htmlは同じでも、到着先の完全なURLは変わりうる。- HTML 2.0は文書が元の場所を離れた場合の道しるべとして記録した。後の標準は優先順位、最初の要素の扱い、
base-uriによる制限を整えた。
道しるべには「次の通り」と書いてある。文字は読めるし、矢印も曲がっていない。ただし地図を別の街へ持っていけば、次の通りは別の道だ。HTMLの<base href>は、ページに並ぶ相対URLの地図を決める。リンクを一つずつ書き換えず、どこから数えるかだけを変えられる。
もともとの仕事は実用的だった。1995年11月のRFC 1866、HTML 2.0は、文書が本来の場所とは違う文脈で読まれるとき、任意のBASE要素で相対URLの基準を示せると説明した。ページをメールに入れたり別の場所へ渡したりしても、images/logo.gifという短い指定は残る。問題はどこのimagesなのか。文書自身に絶対の基準住所を持たせれば、持ち運ばれたページにも帰り道が残る。RFCには画像参照を組み立てる例がある。
1999年12月のHTML 4.01は、基準を選ぶ順番を明らかにした。BASEは文書のHEADに置き、外部資源を参照する要素より先に書く。文書内の宣言は、通信時のメタデータや文書自身の所在より優先する。リンク、画像、スタイルシート、フォームの処理先には相対URLが現れる。標準の../cages/birds.gifという例では、基準の違いによって同じ文字列が別の完全な道筋になる。ページの上の小さなタグが、後に続く多くの標識の起点を引き受けた。
2005年1月のRFC 3986は、相対参照を解決する一般的な階層を定めた。内容に埋め込まれた基準URIは、その内容を包む媒体や取得時のURLより優先する。メールや保存ファイルに移った文書が元の経路を伝えられる理由がここにある。RFCはURI全般の仕組みを語り、HTMLはbaseという具体的な道具を用意した。ページが置かれた住所と、ページ内の短い道案内を読む起点は別々に持てる。ページ自体を移動させず、道案内の意味だけを動かせるわけだ。
WHATWGが維持する現行HTML標準の例なら、<base href="/book/">を置くと、href="chapter.html"は/book/chapter.htmlとして解釈される。基準がなければ文書の代替基準URLから計算する。hrefを持つbaseが複数あれば、文書ツリーで最初のものが使われる。targetはリンクやフォームを開く場所の初期値を別に決め、こちらにも最初のものを使う規則がある。二つの仕事を一つの「先着順」に雑にまとめると、肝心な違いを見失う。
ブラウザーは起点として渡された文字列を検査する。無効なURLやdata:、javascript:を基準にしようとした場合は、文書の代替基準へ戻る。文書のセキュリティーポリシーも候補を拒める。W3CのCSP Level 2が導入したbase-uriは、基準になれるURLを制限するための指定だ。default-srcから自動で引き継がれる指定ではない。ページには共通の出発点が必要でも、どこでも出発点にしてよいわけではない。
編集者にとって、この仕掛けはありがたい。文書群が移転しても、各リンクを直す代わりに共通の住所を直せば済む。ひとつ間違えれば、多数のリンクが一緒に別方向を向くことにもなる。読者が見たchapter.htmlだけでは、どの街の章へ行くか分からない。ブラウザーはその短い文句に、文書の基準と許可条件を付け足して旅先を決める。
1995年には、持ち運ばれる文書の住所録だった。1999年には、文書内の宣言がどの情報より先に立つかが明確になった。現在は最初の宣言とその制限が細かく決まっている。短い道案内の便利さは、同じ地図を共有することから生まれる。地図を動かせば、標識に触れずに街を変えられる。
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加





