6. Serializing Origins (生成元のシリアライズ)
6. Serializing Origins (生成元のシリアライズ)
このセクションでは, 生成元 (origin) をUnicode [Unicode6] 文字列とASCII [RFC20] 文字列にシリアライズする方法を定義します。
6.1 Unicode Serialization of an Origin (生成元のUnicodeシリアライズ)
生成元のUnicodeシリアライズ (unicode-serialization) は, 次のアルゴリズムによって返される値です:
-
生成元がスキーム/ホスト/ポート (scheme/host/port) 3つ組でない場合, 文字列を返します
null(つまり, コードポイントシーケンス U+006E, U+0075, U+006C, U+006C) これらのステップを中止します。
-
それ以外の場合,
resultを生成元3つ組のスキーム (scheme) 部分とします。 -
文字列 "://" を
resultに追加します。 -
生成元3つ組のホスト (host) 部分の各コンポーネント (次のように変換) を
resultに追加します, U+002E FULL STOP コードポイント (".") で区切ります:-
コンポーネントがAラベル (A-label) の場合, 代わりに対応するUラベル (U-label) を使用します ([RFC5890] および [RFC5891] を参照)。
-
それ以外の場合, コンポーネントをそのまま使用します。
-
-
生成元3つ組のポート (port) 部分が, 生成元3つ組のスキーム部分で指定されたプロトコルのデフォルトポートと異なる場合:
- U+003A COLON コードポイント (":") と指定されたポート (10進数) を
resultに追加します。
- U+003A COLON コードポイント (":") と指定されたポート (10進数) を
-
resultを返します。
6.2 ASCII Serialization of an Origin (生成元のASCIIシリアライズ)
生成元のASCIIシリアライズ (ascii-serialization) は, 次のアルゴリズムによって返される値です:
-
生成元がスキーム/ホスト/ポート (scheme/host/port) 3つ組でない場合, 文字列を返します
null(つまり, コードポイントシーケンス U+006E, U+0075, U+006C, U+006C) これらのステップを中止します。
-
それ以外の場合,
resultを生成元3つ組のスキーム (scheme) 部分とします。 -
文字列 "://" を
resultに追加します。 -
生成元3つ組のホスト (host) 部分を
resultに追加します。 -
生成元3つ組のポート (port) 部分が, 生成元3つ組のスキーム部分で指定されたプロトコルのデフォルトポートと異なる場合:
- U+003A COLON コードポイント (":") と指定されたポート (10進数) を
resultに追加します。
- U+003A COLON コードポイント (":") と指定されたポート (10進数) を
-
resultを返します。