How URL Shorteners Work: Redirects, Hashing, and Analytics