短网址

(Short URL),顾名思义就是在形式上比较短的网址。借助短网址您可以用简短的网址替代原来冗长的网址,让使用者可以更容易的分享链接。 短网址服务,在微博应用中十分普遍,比如,当我们在腾讯、新浪微博发微博时有时发很长的网址连接,但由于微博只限制140个字,所以微博就自动把您发的长网址给转换成短网址了。

以下参考了:短网址(short URL)系统的原理及其实现 其中知乎上的短 URL 系统是怎么设计的?提问中的iammutex的回答很受启发,所以在此记录。 在这里贴几个关键的点了解下:

原理及解析

当我们在浏览器里输入 http://t.cn/RlB2PdD 时

  1. DNS首先解析获得 http://t.cn 的 IP 地址
  2. 当 DNS 获得 IP 地址以后(比如:74.125.225.72),会向这个地址发送 HTTP GET 请求,查询短码 RlB2PdD
  3. http://t.cn 服务器会通过短码 RlB2PdD 获取对应的长 URL
  4. 请求通过 HTTP 301 转到对应的长 URL https://m.helijia.com 。
  5. 这里有个小的知识点,为什么要用 301 跳转而不是 302 呐?

算法实现

  1. 自增算法(比较简单,iammutex也给出了自己处理的几个策略)
  2. MD5方式,不过存在碰撞问题