0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

たまに見る日本語のドメイン。Punycode(ピュニコード)ってなに?

Posted at

たまに見る日本語のドメイン

image.png
image.png
image.png

https://日本語.jp/
https://あなたの知らないドメインの.世界/

なにこれ。ドメインは『google.com』など英字しか使用できないはずでは……?
これはPunycode(ピュニコード) と呼ばれる変換方法で実現されています。

イラストにしてみました。

本来は英字と数字、-しか利用できません。
image.png

しかしここで諦めずに考えました。
ブラウザ上では日本語などで表示し、サーバに名前解決する際に英字だけに変換するようなデコード方式を開発すれば見かけ上は実現可能なのではないか?と…
image.png

そして遂に完成しました。
ドメインの入力は日本語で行います。
そしてエンターを押して『熟年.jp』にアクセスしようとした瞬間、ブラウザは『熟年』という文字列をドメインで認識できる文字列だけで構成された英字『xn--hwtp04b.jp』に変換して名前解決の送信します。
xn-- 以降が変換された文字です。『あ→a』のような対応表がある訳ではなく、この英字に意味はありません。
image.png

サーバは命名ルールに則ったドメインへのアクセスリクエストのため、対応せざるを得ません。
ブラウザがページの情報を受け取ると、このドメイン名をピュニコードの変換ルールに則り『熟年.jp』に表示を戻して表示します。
お爺さんには、ずっと『熟年.jp』でアクセスしているように見える訳です。
そんなドメイン存在しないのに。本当の姿は『xn--hwtp04b.jp』なのに……
『熟年.jp』はお爺さんだけがブラウザに見せられている幻のドメインなのに……
image.png

因みに『熟年.jp』は存在します。動作が気になる人は確認してみてね。(責任は負いかねます)
URLをコピーし、どこかに張り付けて見てください。
確かに『熟年.jp』という文字をコピーしたはずなのに、『hxxps://xn--hwtp04b[.]jp/』になっているはずです。
image.png

余談

ここで記号や特殊文字をASCIIコードの英字のみに変換することができます。
この変換こそがピュニコードであり、ブラウザはこの変換を内部で行いアクセスしているのですね。
https://www.punycoder.com/

そしてなんとピュニコードを利用すれば絵文字でもドメイン取得可能らしい
https://qiita.com/tappie/items/89ba75e2613c49720348

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?