短链生成

好处

消息长度缩短,安全隐藏参数,可以统计点击次数

原理

  • 用户访问短链,请求到达服务器
  • 服务器将短链转换为长链,给浏览器返回301/302重定向码

      301永久重定向,浏览器会缓存,短链访问次数统计会不正确
      302临时重定向,每次都要到短链系统转换,访问压力大
  • 浏览器拿到状态码和长链接,重定向到长链接

设计

  • 给每个长链接一个唯一id。

    • 数字
      单机唯一id可以用原子类,分布式的可以用redis、数据库自增、zookeeper。
      数字大了还是很长,递增的数字太有规律性不安全
    • 数字结合大小写字母,转换为62进制数字,为了减少计算时间,这个字段也存起来
      62进制还是很容易被猜出来
    • 用某种规则加上随机值,eg.奇数位用62进制,偶数位用随机字符
    • 再加个字段存过期时间
    • 流量大就搞一层缓存
    • id用完了就重用已经失效的id号
    • 如果疯狂被人请求不存在的短链怎么办?布隆过滤器。

你可能感兴趣的:(短链接)