Інші відповіли, як працюють переадресації, але ви також повинні знати, як вони генерують свої крихітні URL-адреси. Ви помилково почуєте, що вони створюють хеш URL-адреси, щоб генерувати той унікальний код для скороченої URL-адреси. Це в більшості випадків невірно, вони не використовують алгоритм хешування (де потенційно можуть виникнути зіткнення).
Більшість популярних служб скорочення URL-адрес просто беруть ідентифікатор у базі даних URL-адреси, а потім перетворюють його в Base 36 [a-z0-9] (нечутливий до регістру) або Base 62 (з урахуванням регістру).
Спрощений приклад таблиці бази даних 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
Веб-фрейми, які дозволяють гнучку маршрутизацію, роблять поводження з вхідною URL-адресою дуже просто (Ruby, ASP.NET MVC тощо).
Отже, на веб-сервері у вас може бути дія маршруту, яка має вигляд (псевдо-код):
Route: www.mytinyurl.com/{UrlID}
Route Action: RouteURL(UrlID);
Котрий спрямовує будь-який вхідний запит на ваш сервер, який містить будь-який текст після вашого домену www.mytinyurl.com, до вашого пов’язаного методу, RouteURL. Він доставляє текст, який передається після перекидання вперед у вашій URL-адресі до цього методу.
Отже, скажімо, що ви звернулися з проханням: www.mytinyurl.com/fif
Потім "п'ять" буде передана вашому методу, RouteURL (String UrlID). Потім RouteURL перетворить "п’ятірку" на його еквівалент base10, 20103, і буде зроблено запит бази даних для переадресації на будь-яку URL-адресу, що зберігається під ідентифікатором 20103 (у цьому випадку www.digg.com). Ви також збільшите кількість відвідувань Digg на один, перш ніж перенаправитись на правильну URL-адресу.
Це дійсно спрощений приклад, але ви повинні мати можливість отримати загальне уявлення.