HTML5.2の見出し毎の内容を雑にまとめる、2.5. URLs
2. Common infrastructure (共通基盤) の中の 2.5. URLs について
知っているようで知らない URLs
知らないならWHATWGのURL Living Standardを読むべきですが、私は読めていません
内容についてはあくまで初学者の覚書ですので、正式な仕様はW3CのHTML5.2を確認してください
また、勉強のため、各仕様の邦訳文書、解説文書を読まずに自分で翻訳して覚書を書き終わってから答え合わせとして邦訳文書を参照するようにしています
このため、多くの訳語が一般的な訳と異なっていますのでご注意ください
- 2.5. URLs (URLsはURLの複数形; Uniform/Universal Resource Locator)
-
- 2.5.1. Terminology (用語)
-
- 妥当なURL (valid URL)
- 妥当な空文字列ではないURL (valid non-empty URL)
- 空文字列ではない妥当なURLの文字列
- 空白文字で囲まれているが、潜在的には妥当なURL (valid URL potentially surrounded by spaces)
- 先頭と末尾の空白文字を取り除く (strip leading and trailing white space) 処理をすると妥当なURLになる文字列
- valid non-empty URL potentially surrounded by spaces
- 空文字列ではない先頭と末尾の空白文字を取り除く (strip leading and trailing white space) 処理をすると妥当なURLになる文字列
この仕様では、XMLツールとの互換性のためにHTML文書のDOCTYPEで使用するのでURL "about:legacy-compat" を予約済みの、解決できない、"about:" URLとして定義する
この仕様は、メディアトラックの識別子で使用するのでURL "about:html-kind" を予約済みの、解決できない、"about:" URLとして定義する
この仕様は、iframe srcdoc文書の文書のURLで使用するのでURL "about:srcdoc" を予約済みの、解決できない、"about:" URLとして定義する
他に、"fallback base URL" (絶対URL) と "document base URL" (絶対URL) の取得処理についての定義について
文書オブジェクトのフォールバック基礎的URL (fallback base URL) は、次の処置を実行することで得られる絶対URLである
- 文書がiframe srcdoc文書の場合、文書のブラウジング文脈 (browsing context) のブラウジング文脈格納容器 (browsing context container) のノードドキュメント (node document) の文書基礎的URL (document base URL) を返す
- もし、文書URL (document’s URL) が
about:blank
で、ブラウジング文脈 (browsing context) がクリエーターブラウジング文脈 (creator browsing context) を持つならクリエイター基礎的URL (creator base URL) を返す - (上記の条件でないなら) 文書URL (document’s URL) を返す
文書オブジェクトの文書基礎的URL (document base URL) は次の処置を実行することで得られる絶対URLである
- もし文書にhref属性を持つbase要素がなければ、文書基礎的URLはフォールバック基礎的URL (fallback base URL) になり、処理を中断する
- そうでなければ (ドキュメントにhref属性を持つbase要素があれば)、文書基礎的URLは文書内の (木構造の順で) 最初のhref属性を持つbase要素の固定された基礎的URL (frozen base URL) です
フォールバック基礎的URLとか、文書基礎的URLは、自分で書いた説明が知識不足で我ながら何を言っているのかさっぱり分からないのだが、内容からするとHTML文書内で相対パスを解決する場合の基となるURLを取得する際に、iframeの中かどうか、href属性を持つbase要素があるか判定して取得している処理と思われる
- 2.5.2. Parsing URLs (URLsの解析)
-
URLの解析は、URL文字列を取得し、それが示す URL レコードを取得する手続きである
この手続きはWHATWG URL仕様で定められており、本仕様では便宜的にラッパーを定義している
ラッパーの手続きについての説明は本文参照
- 2.5.3. Dynamic changes to base URLs (基礎的URLsの動的変更)
-
文書の文書基礎的URLが変更されると、その文書すべての要素は基礎的URL変更の影響を受ける
具体的な影響を受ける内容は以下の通り
- 要素によって生成されるハイパーリンク
-
ハイパーリンクによって識別されたURLがユーザーに示されていたり、派生して生成されたデータがユーザーに影響を与えている場合、新しいURLで再解析して更新する
- q、blockquote、ins、del要素のcite属性
-
cite属性で識別されたURLがユーザーに示されていたり、派生して生成されたデータがユーザーに影響を与えている場合、新しいURLで再解析して更新する
- その他
-
影響を受けない
img要素のscr属性なども影響を受けない
ただし、基礎的URL変更後にスクリプトからアクセスすると新しい絶対URLが得られる (結果として表示されているイメージと不一致の値となる)