「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

Punycode(ピュニコード)

pointこの用語のポイント

pointドメイン名にアルファベット以外を使うための仕組みだよ

pointアルファベット以外の文字を内部的にアルファベットに変換するよ

pointもしくは、その変換で使うアルファベット以外の文字とアルファベットの対応表だよ

スポンサーリンク

簡単に書くよ

Punycode(ピュニコード)とは

ドメイン名(IPアドレスに付けた人間様向けの名前)にアルファベット以外を使えるようにするための仕組み
であり

「ほげ.example.com」→「xn--18j4d.example.com」のように、ドメイン名に含まれるアルファベット以外の文字を内部的にアルファベットに変換する仕組み
です。
あるいは

ドメイン名に含まれるアルファベット以外の文字を内部的にアルファベットに変換するときに使う、アルファベット以外(日本語とか)の文字とアルファベットの対応表
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「ドメイン名」に関する あれやこれやについて説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

IPアドレスは「コンピュータさん向けのネットワーク上の住所」です。
インターネットっぽい通信において、送信先を特定するときとかに使う情報です。
「198.51.100.2」のような形式になっています。

Punycode

ドメイン名は「IPアドレスに付けた人間様向けの名前」です。
インターネットやメールなどで使われる住所です。
「i-3-i.info」のような形式になっています。

Punycode2

URLホームページの住所に相当する情報)においては「http://」や「https://」の後ろの部分がドメイン名です。
「https://i-3-i.info/index.html」であれば「i-3-i.info」の部分ですね。

Punycode3

メールアドレスにおいては「@」の後ろの部分がドメイン名です。
「hoge@example.com」であれば「example.com」の部分ですね。

Punycode4

ドメイン名は基本的にアルファベットのみで構成されています。
例えば「hoge.example.com」のような形です。

Punycode5

昔は、ドメイン名にはアルファベットしか使えませんでした。
技術の進歩と共に、今ではアルファベット以外も使えるようになっています。
例えば「ほげ.example.com」のような日本語を含むドメイン名も使えます。

Punycode6

以上を踏まえて

「ドメイン名にアルファベット以外を使う」を実現するための仕組み

のひとつが「Punycode(ピュニコード)」です。

実は、ですね。
コンピュータさんは、いまだにアルファベットしか分かりません。
日本語とかは「何これ?模様?」なのです。

Punycode7

例えば

http://hoge.example.com

は理解できます。
「『http://hoge.example.com』のホームページが見たいのね?」と理解して、ホームページのファイルをもらってきてくれます。

Punycode8

それに対して

http://ほげ.example.com

は理解できません。
「『http://??.example.com』のホームページが見たいのね?」と解釈します。

「ほげ」の部分が「??」になっていますね。
これでは、ホームページのファイルをもらいに行けません。

Punycode9

この問題を解決するためにコンピュータさんは、人間様の目に見えないところで、ドメイン名のアルファベット以外をアルファベットに変換しています。

例えば「ほげ」に対応するアルファベットが「xn--18j4d」だったとしましょう。

人間様が

http://ほげ.example.com

と入力しました。

Punycode10

これが内部的に

http://xn--18j4d.example.com

に変換されます。

Punycode11

変換された後のドメイン名はアルファベットだけで構成されています。
コンピュータさんが理解できます。

Punycode12

このような

内部的にアルファベットに変換することでドメイン名に半角英数字以外を使えるようにする仕組み

がPunycodeです。

あるいは

「ほげ」と「xn--18j4d」

のような、変換で使う対応表を指して「Punycode」と呼ぶ場合も あります。

もしくは

http://xn--18j4d.example.com

のような、アルファベットに変換済みの(アルファベット以外を使った)ドメイン名の書き方を指して「Punycode表記」と呼んだりもします。

なお、アルファベット以外を使ったドメイン名とPunycode表記のドメイン名は実質的に同じです。

http://ほげ.example.com



http://xn--18j4d.example.com

は、どちらを書いても同じ場所を見にいきます。
「ほげ」の部分が内部では「xn--18j4d」に変換されるからです。

昔のWebブラウザ(ホームページを見るときに使うソフトは、Punycodeの仕組みに対応していないものも(多分)ありました。
そのため、アルファベット以外のドメイン名を書く場合は、古いWebブラウザを使っている人を考慮して「ほげ」ではなく「xn--18j4d」と書く人も多かったようです。

最近のWebブラウザは内部で変換してくれるはずです。
あまり気にしなくて大丈夫だと思います。


image piyo2

一言でまとめるよ

まぁ「Punycode」って単語が出てきたら「ドメイン名(IPアドレスに付けた人間様向けの名前)にアルファベット以外を使うための仕組みなんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像019
書籍画像007


書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
マンガでわかるITパスポート
サイバーセキュリティお嬢様と学ぶ 情報セキュリティの基本