ドメイン名スロット

ドメイン名スロット

[28] ドメイン名を記述するプロトコル要素のことを一般にドメイン名スロット (domain name slot) といいます。

[29] ドメイン名スロットの例としては、DNS 照会QNAME gethostbyname() 関数name 引数電子メール・アドレスドメイン名部分などがあります。

[30] ドメイン名がたまたま含まれるに過ぎない時、そのドメイン名の部分はドメイン名スロットではありません。 例えば電子メール本文中にドメイン名を書いていても、それはドメイン名スロットとはいいません。

仕様書

定義

[1]

この文書では、ドメイン (domain) (めい) (name) スロット (slot) は、 ドメイン名を伝播すると陽に指定されたプロトコル要素関数引数返し値、その他と定義します。 ドメイン名スロットの例: DNS 照会QNAME gethostbyname() ライブラリ関数name 引数電子メイルメッセージ頭部From: 電子メイル・アドレス単価記号 (@) に続く部分、 HTML img タグsrc 属性URIhost 部分。 ドメイン名をたまたま含む普通の文章はドメイン名スロットではありません。 例えば、電子メイル・メッセージ平文本体に含まれるドメイン名は、 ドメイン名スロットに現れたものではありません。 >>2, >>27

IDNA の適用

[34] IDNA は、明示的に除外されている場合を除き、 LDHラベルの構文を使ったドメイン名スロットに適用されます。 >>33

[35] 旧来のプロトコルドメイン名スロットでは、そのプロトコルや実装が更新されていない限り、 IDNAラベルによって表さなければなりません。 特に DNS照会応答ではAラベル形を使わなければなりません>>33

処理モデル

IDN 未対応ドメイン名スロットで利用する

[23] ドメイン名IDN未対応ドメイン名スロットに入れられる時には、 ASCII文字のみを含まなければなりません。そのために、 IDN と等価な ASCII文字のみのドメイン名を、

... 必要があります >>17

ドメイン名スロットから取り出す

[24] ドメイン名スロットACEラベルが用いられている場合には、次のようにします >>17

  • ACE 形を扱えると分かっている時は、明示的に ACE 形を要求された場合を除き、ACEラベルを隠すべきです。
  • ACE 形を扱えるかわからないときは、非 ACE 形のままとしても構いませんし、 ACE 形にしても構いません
    • ACE 形のままだと正常に処理されないかもしれません。
    • ACE 形にすると利用者には変に見えるかもしれません。

IDN から ACEラベルを含まない等価ドメイン名へは、各ラベルToUnicode 演算を適用することで変換できます。 >>17

>>18 もまた適用される場合においては、 >>18 が優先されます >>17

利用者インターフェイスでの扱い

[36] IDNA2003 でも IDNA2008 でも、IETF の原則に倣って利用者インターフェイスは規定の範囲外としています。

[37] ただ、Aラベルは人間にはわかりにくいので、 基本的にはUラベルを使ってレンダリングするべきだとされています。

正規化と case folding

[45] IDNA2003 では Nameprep などによりプロトコル内部で文字正規化case folding を行っていました。 (ToASCII の項を参照してください。)

[38] 一方 IDNA2008プロトコル内部において正規化case folding のような写像 (mapping) を行っておらず、 アプリケーションの範疇とされています。これは言語による違いが大きく、 大文字小文字の対応付けが使う人によっては不自然になってしまうこと、 大文字化したものを小文字化しても元に戻らなかったり正規化によって変更されたりで UラベルAラベルの完全な対応関係が崩れてしまうことを避けるという意図があるようです。 >>39

[40] あるアプリケーションでは扱えるものが他のアプリケーションでは扱えないことを防ぐため、 正規化case folding はできるだけ避けるべきである、ともされています >>39正規化case folding をアプリケーション依存とする、 というのと同じ節でそんなことを言われても困るのですが・・・。

[43] GREEK SMALL LETTER FINAL SIGMA などいくつかの文字case folding正規化によって IDNA2003 では他の文字に変換されてしまい、 IDN では表現できませんでした。 IDNA2008 はこれを廃したために表現できるようになっています。 >>42

[46] IDNA2008 は、 IDNA2003 の方法は利用者IM による入力の際の鍵盤などの入力から Unicode 符号位置への変換と、プロトコル内の Nameprep による変換で2回変換が行われ、 利用者にとって自明でない結果になってしまうことがあると指摘しています >>44

[47] IM レベルでの文字の操作とドメイン名固有の正規化操作を同列に議論するのはさすがに無理がある気がしますが・・・。 ドメイン名専用の入力モードがあるならともかく、そんな状況はすごく限定的なような。

関連

[3] ドメイン名スロットには、IDN対応ドメイン名スロットIDN未対応ドメイン名スロットがあります。