Inni odpowiedzieli, jak działają przekierowania, ale powinieneś także wiedzieć, jak generują swoje małe adresy URL. Pomyłkowo usłyszysz, że tworzą skrót adresu URL, aby wygenerować ten unikalny kod dla skróconego adresu URL. W większości przypadków jest to niepoprawne, ponieważ nie używają algorytmu haszującego (gdzie potencjalnie mogą wystąpić kolizje).
Większość popularnych usług skracania adresów URL po prostu pobiera identyfikator z bazy danych adresu URL, a następnie konwertuje go na Base 36 [a-z0-9] (bez rozróżniania wielkości liter) lub Base 62 (rozróżnianie wielkości liter).
Uproszczony przykład tabeli bazy danych 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
Struktury internetowe, które umożliwiają elastyczny routing, sprawiają, że obsługa przychodzących adresów URL jest naprawdę łatwa (Ruby, ASP.NET MVC itp.).
Tak więc na swoim serwerze internetowym możesz mieć akcję routingu, która wygląda jak (pseudo kod):
Route: www.mytinyurl.com/{UrlID}
Route Action: RouteURL(UrlID);
Który kieruje wszelkie przychodzące żądania do serwera, które zawierają tekst po Twojej domenie www.mytinyurl.com, do powiązanej metody RouteURL. Dostarcza tekst, który jest przekazywany po ukośniku w adresie URL do tej metody.
Powiedzmy, że prosiłeś o: www.mytinyurl.com/fif
Następnie do metody RouteURL (String UrlID) zostanie przekazana wartość „fif”. RouteURL zamieniłby wówczas „fif” na jego odpowiednik base10, 20103, i zostanie wysłane żądanie do bazy danych, aby przekierować do dowolnego adresu URL przechowywanego pod identyfikatorem 20103 (w tym przypadku www.digg.com). Możesz również zwiększyć liczbę odwiedzin Digg o jeden przed przekierowaniem do prawidłowego adresu URL.
To jest naprawdę uproszczony przykład, ale powinieneś być w stanie uzyskać ogólny pomysł.