血統の森+はてな このページをアンテナに追加 RSSフィード

 | 

2010-05-23

HTML5メモ(1) href属性/URIとIRI の覚え書き HTML5メモ(1) href属性/URIとIRI の覚え書きを含むブックマーク

  • 唐突に何かが始まるのはいつものこと。
  • いつまで続くのかは不明
  • 当然間違いがあるかもしれない。もしあれば遠慮無くつっこんでくれ。

HTML4ではhref属性でURI(RFC 2396)が扱えるという規定。おおざっぱに言えば、URIに使える文字列は、アルファベットと数字、決められた記号*1。つまり、日本語のドメイン名、パス名、ファイル名等はURIで扱えない。

HTML4での規定は過去ログ参照。

HTMLデータ形式メモ2 - 血統の森+はてな
http://d.hatena.ne.jp/momdo/20090611/p1

一方WHATWGのDraftにあるHTML5(18 May 2010)によると、

A Web address is a valid Web address if at least one of the following conditions holds:

  • The URL is a valid URI reference [RFC3986].
  • The URL is a valid IRI reference and it has no query component. [RFC3987]
  • The URL is a valid IRI reference and its query component contains no unescaped non-ASCII characters. [RFC3987]
  • The URL is a valid IRI reference and the character encoding of the URL's Document is UTF-8 or UTF-16. [RFC3987]

2.5 URLs — HTML5 (including next generation additions still in development)

という具合にIRIも扱えるようになっている。つまり、日本語ドメインや日本語パス名をそのままで扱える、ということ。

言い換えるなら、http://例え.テスト/メインページはIRI。で、Punycode*2UTF-8でのURIパーセントエンコーディングを用いて

http://xn--r8jz45g.xn--zckzah/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8

と書くことができる。このようにIRIをURIとして記述することで、HTML4の範囲でも妥当に取り扱うことができる。



URNについて

URNについては次の文章を参照。

URN (Uniform Resource Name) について-- ごく簡単なHTMLの説明
http://www.kanzaki.com/docs/html/urn.html

URIの範囲にあるので、a要素href属性にURNを記述することで、適当なwebページが参照できそうに思えるが、この文章を書いている時点ではWindows版のIEFirefoxOperaSafariChromeといったwebブラウザでは扱うことができない。つまり、

urn:ietf:rfc:2141

といったURN

http://www.ietf.org/rfc/rfc2141.txt

というURLに変換されて表示されることはない、ということ。FirefoxSafariでは次のように怒られる。Operaはサポートされていないからといって、この文言はどうかとは思う。しかし、の言い回しだと、MacSafariではurnが解決できると言うことなの…?macユーザの方でコメントできる方は是非。mac版も一緒だそうな*3

f:id:momdo:20100509132306p:image

f:id:momdo:20100509132307p:image

f:id:momdo:20100523105751p:image

以下のJavaScriptやアドオンを用いて、ある程度は解決できる。

urn:isbn:とJavaScript - 徒書
http://www.akatsukinishisu.net/itazuragaki/id/urn_isbn_and_javascript
URNサポート (URN Support) :: Add-ons for Firefox
https://addons.mozilla.org/ja/firefox/addon/1940/
ぷろじぇくと、みすじら。 - URN Handler for Internet Explorer
http://www.fastwave.gr.jp/diarysrv/misuzilla/200205a.html#20020501-1

webサーバが解決すべきものなのか、それともwebクライアントが解決すべきものなのか?という問題もありそう。

IANAに登録されているURNスキームは以下の通り。

Uniform Resource Names (URN) Namespaces
http://www.iana.org/assignments/urn-namespaces/urn-namespaces.xml

*1:正確なURIについては、[Studying HTTP] URI - Uniform Resource Identifiers:http://www.studyinghttp.net/uri を参照

*2Punycodeの変換は 日本語JPドメイン名のPunycode変換・逆変換 - 日本語.jp:http://punycode.jp/ を使用した。

*3http://delicious.com/e_luck/urn

 | 
プロフィール

momdo

momdo

Presto Operaは死んだ。

時間のないサイト運営者リング Operaをダウンロード