URL短縮サービスの仕組み
URL短縮(リンク短縮とも呼ばれる)は、長くて扱いにくいURLをより読みやすく共有しやすいものに短縮するために使用されます。
その本質において、URL短縮サービスは新しい目的地へ301リダイレクトするリンクです。
リンク短縮のアルゴリズム
任意のリンク短縮サービス(Linkly、Bitly、その他多数のサービス)で短縮リンクを作成すると、新しいリンクがデータベースに挿入され、数値IDが返されます。
この数値は非常に長くなる可能性があり、数字だけではURLの末尾としてあまり魅力的ではありません。例えば:
shor.tr/2385162034
リンク短縮サービスは、数値の基数を変更することでこれを回避します。
10進数では、数字は0から9まで進み、次の桁(10)を追加して再び最初から始まります。
16進数(base 16)では、数字は0から15まで進みますが、10から15の数字はAからFの文字で表されます。
例えば、数値11はBになります。
上記のリンクの長い数値は8E2AAF32になります - 少し短くなりましたが、それほど短くはありません。
リンク短縮サービスは通常Base 62を使用します。これにより以下が得られます:
- 数字0-9(10個のシンボル)
- 小文字a - z(26個のシンボル)
- 大文字A - Z(26個のシンボル)
合計で10 + 26 + 26 = 62個のシンボルになります。
では、上記の数値をBase 62を使用してエンコードしてみましょう:
10進数の2385162034 = Base 62の2bPtb0
これで6文字(10文字ではなく)になりましたが、依然としてリンクを一意に識別します。
すべてのリンク短縮サービスは同様の原理で動作します。
短縮後の処理…
リンクのリクエストが来ると、拡張子は10進数に変換され、そのリンクIDでデータベースが照会され、ユーザーはそのリンクの目的地にリダイレクトされます。
リンク短縮サービスは、クリック追跡機能を提供するために、この時点でリクエストを記録することがあります。