Orang lain telah menjawab cara kerja pengalihan, tetapi Anda juga harus tahu bagaimana mereka menghasilkan url kecil mereka. Anda akan keliru mendengar bahwa mereka membuat hash dari URL untuk menghasilkan kode unik untuk URL yang dipersingkat. Ini tidak benar dalam banyak kasus, mereka tidak menggunakan algoritme hashing (di mana Anda berpotensi mengalami benturan).
Sebagian besar layanan pemendekan URL yang populer cukup mengambil ID dalam database URL dan kemudian mengubahnya menjadi Base 36 [a-z0-9] (case insensitive) atau Base 62 (case sensitive).
Contoh sederhana dari Tabel Database TinyURL:
ID URL VisitCount
1 www.google.com 26
2 www.stackoverflow.com 2048
3 www.reddit.com 64
...
20103 www.digg.com 201
20104 www.4chan.com 20
Kerangka Web yang memungkinkan perutean fleksibel membuat penanganan URL masuk menjadi sangat mudah (Ruby, ASP.NET MVC, dll).
Jadi, di server web Anda, Anda mungkin memiliki tindakan rute yang terlihat seperti (kode pseudo):
Route: www.mytinyurl.com/{UrlID}
Route Action: RouteURL(UrlID);
Yang merutekan permintaan apa pun yang masuk ke server Anda yang memiliki teks apa pun setelah domain Anda www.mytinyurl.com ke metode terkait Anda, RouteURL. Ini memasok teks yang diteruskan setelah garis miring di URL Anda ke metode itu.
Jadi, katakanlah Anda meminta: www.mytinyurl.com/fif
"fif" kemudian akan diteruskan ke metode Anda, RouteURL (String UrlID). RouteURL kemudian akan mengubah "fif" menjadi base10 yang setara, 20103, dan permintaan database akan dibuat untuk mengarahkan ke URL apa pun yang disimpan di bawah ID 20103 (dalam hal ini, www.digg.com). Anda juga dapat meningkatkan jumlah kunjungan untuk Digg satu per satu sebelum mengarahkan ke URL yang benar.
Ini adalah contoh yang sangat sederhana tetapi Anda harus bisa mendapatkan gambaran umumnya.