URL Shortener

What?

This is a URL Shortener. The URL shortening path can be a single unicode character like https://i.ross.gg/ά or a string of 4+ ASCII characters like https://i.ross.gg/Uo6c. If you are not in a browser, you'll get just the redirect target as a response using the 'dst' query parameter.

$ curl 'https://i.ross.gg/?dst=https://example.com&onechar=false'
https://i.ross.gg/V9Z1
$ curl 'https://i.ross.gg/?dst=https://example.com'
https://i.ross.gg/ꆞ

Clicking on "↩ 302" will take the current redirect source and use the hashing algorithm to treat it instead as the redirect destination, creating redirect chains. Chrome will error on 20 redirects. You can see this with https://i.ross.gg/SsoX with (redirect flow) which redirects 19 times, but https://i.ross.gg/7fiX with (redirect flow) which redirects to https://i.ross.gg/7NNb for a count of 20 will fail (initially) before Chrome tries again.

We can see this in curl:

$ curl -vsL https://i.ross.gg/SsoX 2>&1 -o /dev/null | grep location
< location: https://i.ross.gg/7fiX
< location: https://i.ross.gg/7NNb
< location: https://i.ross.gg/TVIb
< location: https://i.ross.gg/TAyY
< location: https://i.ross.gg/B00Y
< location: https://i.ross.gg/9Txf
< location: https://i.ross.gg/xjUd
< location: https://i.ross.gg/eSwX
< location: https://i.ross.gg/9GTd
< location: https://i.ross.gg/eNZd
< location: https://i.ross.gg/egJd
< location: https://i.ross.gg/cfQd
< location: https://i.ross.gg/eDOb
< location: https://i.ross.gg/SxUd
< location: https://i.ross.gg/eTsX
< location: https://i.ross.gg/987d
< location: https://i.ross.gg/c4Jd
< location: https://i.ross.gg/dDbb
< location: https://i.ross.gg/Uo6c
< location: https://i.ross.gg/
$ curl -vsL https://i.ross.gg/SsoX 2>&1 -o /dev/null | grep location | wc -l
20

This tool currently uses UNICODE 12.1 characters and below.

Why?

I wanted to create a URL shortener for a project which autogenerates a shorter hash. After seeing how it could work in the forward direction, I wanted to see how far back in the backwards direction it could go and how that interacted with curl and Chrome.

Shorten


Redirects

↩ 302        https://i.ross.gg/eQzf
    ↪ 302    https://i.ross.gg/xqod
    ↪ 302    https://i.ross.gg/gffX
    ↪ 302    https://i.ross.gg/7Anf
    ↪ 302    https://i.ross.gg/xANb
    ↪ 302    https://i.ross.gg/SsoX
    ↪ 302    https://i.ross.gg/7fiX
    ↪ 302    https://i.ross.gg/7NNb
    ↪ 302    https://i.ross.gg/TVIb
    ↪ 302    https://i.ross.gg/TAyY
    ↪ 302    https://i.ross.gg/B00Y
    ↪ 302    https://i.ross.gg/9Txf
    ↪ 302    https://i.ross.gg/xjUd
    ↪ 302    https://i.ross.gg/eSwX
    ↪ 302    https://i.ross.gg/9GTd
    ↪ 302    https://i.ross.gg/eNZd
    ↪ 302    https://i.ross.gg/egJd
    ↪ 302    https://i.ross.gg/cfQd
    ↪ 302    https://i.ross.gg/eDOb
    ↪ 302    https://i.ross.gg/SxUd
    ↪ 302    https://i.ross.gg/eTsX
    ↪ 302    https://i.ross.gg/987d
    ↪ 302    https://i.ross.gg/c4Jd
    ↪ 302    https://i.ross.gg/dDbb
    ↪ 302    https://i.ross.gg/Uo6c
    ↪ 200    https://i.ross.gg/