How URL shorteners work
URL shortening, sometimes called link shortening, is used to shorten long and nasty URLs into something more readable and shareable.
At its very essence, an URL shortener is a link that 301 redirects into a new destination.
Algorithms for Link Shortening
When you create a short-link with any link shortening service (be it Linkly, Bitly, or any of a number of others), a new link is inserted into a database, which returns a numeric ID.
This number might be very long, and numbers certainly aren’t very attractive on the end of URLs: e.g.
shor.tr/2385162034
Link shorteners get around this by changing the base of the number.
In base 10, numbers go from 0 to 9 before you add another digit (10) and start all over again.
In base 16 (hexadecimal), numbers go from 0-15, however the numbers 10-15 are represented by the letters A through F.
So, for example, the number 11 would be B.
The long number in the link above would be 8E2AAF32 - a bit shorter, but not much shorter.
Link shorteners tend to use Base 62, which gives you:
- The numbers 0-9 (10 symbols)
- The lowercase letters a - z (26 symbols)
- The uppercase letters A - Z (26 symbols)
For a total of 10 + 26 + 26 = 62 symbols.
Now, let’s encode the number above using Base 62:
2385162034
in Base 10 = 2bPtb0
in Base 62
This is now six characters (as opposed to 10), yet still uniquely identifies the link.
All link shorteners work on similar principles.
After the shortening…
When a request comes for a link, the extension is converted back to Base 10, the database queried for that link ID, and the user is redirected to the destination for that link.
A link shortener might at this point record the request, in order to provide click tracking functionality.