HTML//基底URI

HTML//基底URI

[1] HTML 文書中の相対URIは、 <IW:HTML4:"struct/links.html#resolving-relative-uris"> によりますと、次の優先順序で決定される基底URI によって解決します。

  1. base 要素があれば、 その href 属性の値
  2. HTTP頭欄などのプロトコルの解釈で得られる値があれば、それ
  3. 現在の文書の URI
  4. 以上で基底 URI が決定できない場合には、 その HTML 文書は誤っていると考えられる

なお、 base 属性の href 属性は絶対URI とすることになっています。

[2] 例外的に、 codebase 属性がある要素の特定の属性では、 URI 参照を解決する際には、 codebase 属性があればそれを、なければ文書の基底 URI を使います。

codebase 属性の影響する属性:

[3] base 要素は head 要素内の他の参照を持つ要素より前に来ないといけないことになっています。ところが、 head 要素には profile 属性にはあって、その中に URI を入れることができます。 profile 属性には相対 URI 参照は使わない方が安全です。

[3] XHTMLbase 要素を使ったときに、 XHTML 以外の語彙にどのような影響が出るのかは分かりません。危険ですから使わないほうがいいでしょう。

また、 xml:base 属性は、対応している XHTML1 UA はどれだけあるか分かりませんし、 base 要素がどう影響するか分かりませんから、使わないほうがいいでしょう。 (名無しさん)