[4] [DFN[IDNA2003]] は、[[IDN]] ([[国際化ドメイン名]]) の利用について定めた仕様 [[IDNA]] の2003年版です。 [12] [[IDNA2003]] ははじめて標準化された版であり、 はじめは単に「[[IDNA]]」と呼ばれていましたが、改訂版の [[IDNA2008]] の登場により区別のために 「2003」と付けられました。 ;; [11] [CITE@en[RFC 5890 - Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework]] [5] [[IDNA2008]] により [[IDNA2003]] は置き換えられ廃止されていますが、非互換な変更を含むため、 実際にはまだ [[IDNA2003]] が使われています。 [17] [[IDNA2003]] では、既存の[[プロトコル]]や実働しているシステムへの変更無しで [[IDN]] を扱うために、 [[IDN]] を [[ASCII文字]]に転写し、 [[IDN]] と [[ASCII]] の[[ドメイン名]]との変換を末端の[[アプリケーション]]内で行います。この [[ASCII文字]]への転写法としては [[Punycode]] が採用されています。また、似た[[文字]]の[[正規化]]の方法として [[Nameprep]] が規定されています。 [[IDNA]] を実装するには、 [[Punycode]] と [[Nameprep]] を実装しなければ[['''なりません''']] [SRC[[[RFC 3490]] 1.3]]。 *仕様書 - [1] [CITE@en[RFC 3490 - Internationalizing Domain Names in Applications (IDNA)]] - [2] [CITE@en[RFC 3491 - Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN)]] - [3] [CITE@en[RFC 3492 - Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)]] * IDNA2003 を構成するもの - [6] [[ToUnicode]] [[演算]] - [8] [[ToASCII]] [[演算]] - [7] [[Nameprep]] ([[Stringprep]] の[[プロファイル]]) - [9] [[Punycode]] ([[Bootstring]] の[[プロファイル]]) - [13] これらを用いた処理モデル ([[ドメイン名スロット]]での [[IDN]] に関する諸々の処理についての規定など) * 演算 ** ドメイン名に対する演算 [27] [[ドメイン名]]は次のように処理します。 = [21] まず、 [[ASCII]] や [[Unicode]] で[[符号化]]されていない文字列なら、 [[Unicode]] に変換します。 = [22] [[Stringprep]] でいうところの[[蓄積文字列]]と[[照合文字列]]のいずれかを決定します。 -- [[照合文字列]]であるなら、 [[AllowUnassigned]] [[フラグ]]を設定します。 = [23] [[ラベル分離子]]によって[[ドメイン名]]をそれぞれの[[ラベル]]に分割します。 = [24] 各[[ラベル]]に対して、 [[STD 3]] における[[ホスト名]]の [[ASCII文字]]に関する制限を適用するかどうかを決めます。 -- これは [[IDNA]] 以前から必要な作業であり、 [[IDNA]] 仕様はどちらにするか特に推奨するものではない、とされています。 -- この制限を適用するなら、 [[UseSTD3ASCIIRules]] [[フラグ]]を設定します。 = [25] [[ToASCII]] と [[ToUnicode]] のどちらか、適切な方を適用します。 = [26] [[ToASCII]] を適用したなら、[[ラベル分離子]]をすべて [CODE(char)[[[U+002E]]]] [CODE(charname)@en[[[FULL STOP]]]] に置き換えます。 ;; [28] [[RFC 3490]] ** ラベルに対する演算 [18] [[IDNA2003]] では[[ラベル]]に対して次の2つの[[演算]]が定義されています。 - [19] [[ToASCII]] - [20] [[ToUnicode]] * IDNA2008 との関係 [10] [[IDNA2008]] により [[RFC 3490]] と [[RFC 3491]] は廃止され、全面的に改訂されています。 [[RFC 3492]] は改訂されずにそのまま [[IDNA2008]] でも利用されています。