Reverse domain name notation における eTLD の順序

2021-06-18

アプリケーションの Bundle ID や java の package 名などで使われる com.example.some.app のような表記を Reverse domain name notation (reverse-DNS) というらしい。

タイトルにある "eTLD の順序" というのは、 example.co.jp という suffix 付きドメインを持つ組織の app というリソースがあるとして、それを特定する Reverse domain name notation は jp.co.example.app なのか co.jp.example.app なのかという話。

結論から書くと、単純に全てを逆順にするのが正しいと思われる。

個人的に eTLD は崩さずに並べてもいいんじゃないかと勝手に思っていたけど、細かいルールが言語化されているものは見当たらなかった。 冷静に考えれば以下のような理由から、先の結論になることは自明っぽいので、わざわざ何かに書き起こす必要がなかったのかもしれない。

  • DNS そのものは階層的な構造を持つのだから、逆に並べる時も広い方から順番に狭まっていく方が自然
  • Public Suffix の目的は、ブラウザに適切なスコープで cookie を持たせるためにあるので単に記法とは無関係

以下は見てみたもののメモ

ドキュメント類

  • CFBundleIdentifier に関するもの

The bundle ID string must contain only alphanumeric characters (A-Z, a-z, and 0-9),hyphens (-), and periods (.). The string should be in reverse-DNS format. Bundle IDs are case sensitive.

https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleidentifier

  • Android の アプリケーションID に関するもの

アプリケーション ID は従来の Java パッケージ名に似ていますが、アプリケーション ID の命名規則はもう少し厳密になっています。

  • 2つ以上のセグメント(1つ以上のドット)が必要
  • 各セグメントは文字で始まる必要がある
  • 使用できる文字は英数字とアンダースコアのみ(a~z、A~Z、0~9、_)

https://developer.android.com/studio/build/application-id

  • Java の Package の命名に関するもの

Companies use their reversed Internet domain name to begin their package names—for example, com.example.mypackage for a package named mypackage created by a programmer at example.com.

https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html

Bundle ID の例

co.jp site:play.google.com とかでググってみてもヒットせず、どれも jp 始まりだった。

  • COCOA - COVID-19 Contact App
    • jp.go.mhlw.covid19radar
  • 東京都防災アプリ
    • jp.tokyo.metro.tokyotobousaiapp
  • みずほ銀行 J-Coin Pay
    • jp.co.bluelab.jcoin.user

See Also