[10] [[既知HSTSホスト]]の[[ドメイン名]]の[[一致]]は、[[ラベル]]ごとの比較により、
[[合同一致]]、[[超ドメイン一致]]、[[一致]]なしのいずれかに決まります。

* 仕様書

[REFS[
- [1] [CITE@en[RFC 6797 - HTTP Strict Transport Security (HSTS)]] ([TIME[2014-06-02 05:16:10 +09:00]] 版) <http://tools.ietf.org/html/rfc6797#section-8.2>
]REFS]

* 演算

[2] ある与えられた[[ドメイン名]]が、[[利用者エージェント]]が保持している[[既知HSTSホスト]]のいずれかと[[一致]]するかどうかを調べる演算です。
処理全体としては、[[ドメイン名]]1つと[[既知HSTSホスト]]群全体との比較になりますが、
実際には次の通り2つの[[ドメイン名]]同士の比較として定義されています。

[3] 前提として、[[IDNA]] による[[正規化]]が行われているものとします。

[4] 両[[ドメイン名]]に含まれる[[ラベル]]を、[[右]] ([[文字列]]として後の方)
から[[左]]に向かって順に比較していきます。

[5] 与えられた[[ドメイン名]]と既知の[[ドメイン名]]の[[ラベル]]がすべて[[一致]]するなら、
これを[DFN[[RUBYB[[[合同一致]]]@en[congruent match]]]]といいます。

[6] 与えられた[[ドメイン名]]の右側のいくつかの[[ラベル]]と既知の[[ドメイン名]]の[[ラベル]]のすべてが[[一致]]するなら、
これを[DFN[[RUBYB[超ドメイン一致]@en[superdomain match]]]]といいます。

;; [7] 複数の[[既知HSTSホスト]]が[[超ドメイン一致]]することもあります。

[EG[
[8] 例えば [CODE[foo.bar.baz.example]] は [CODE[foo.bar.baz.example]]
と[[合同一致]]し、 [CODE[bar.baz.example]] や
[CODE[baz.example]] に[[超ドメイン一致]]します。
]EG]

[9] [[超ドメイン一致]]でも[[合同一致]]でもなければ、[RUBYB[一致しない]@en[no match]]ということになります。

* 文脈

[11] [[HSTS]] ([[fetch]] からの呼び出し[DEL[および [[WebSocketコンストラクター]]]])
と [[PKP]] で使われます。
