最近研究了下长短链的生成与访问,发现这其中有不少的可以仔细研究的点,现在写下这篇文章记录下
短链的生成
首先是长链和短链的定义,以及应用的场景。
我们经常可以看到有些链接很长例如:https://www.google.com.hk/search?q=%E6%B7%98%E5%AE%9D%E6%B4%BB%E5%8A%A8+%E9%95%BF%E9%93%BE&oq=%E6%B7%98%E5%AE%9D%E6%B4%BB%E5%8A%A8+%E9%95%BF%E9%93%BE&aqs=chrome..69i57j33i160l2.9434j0j7&sourceid=chrome&ie=UTF-8
这样的链接如果是在微博这种有字数限制或者短信这种超过一个长度额外收费的服务来说就很不友好,短链的优势在这里就很明显,例如刚才的长串如果是https://www.google.com.hk/jhd351dfs,
那么这个问题就被轻松解决了。还有另一个应用场景, 在一个销售业务部门可能会根据每个不同的销售分享不同的链接来对不同的销售绩效进行考核,或者类似的是用户点击别人分享的链接,分享者有收益。这种场景有一种处理方案就是在链接上拼接分享人的信息,点击之后再解析这个参数,那么用短链来隐藏这个信息就很重要。
理解这个应用场景其实我们大致也能知道所谓的短链其实就是将原先的长链进行处理,点击短链访问的时候本质上还是在访问长链。也就是我们的短链服务其实是一个中转映射,现将长链按照我们设定好的转成一个新的地址,
当用户访问这个短链的时候其实是先访问了短链的服务,短链服务要先根据之前的规则重定向到原来的长链地址
那我们先来看下这个生成短链的方式
目前查阅网上的资料来看核心的思路都是先将长链分配一个在我们的系统中唯一的序号,将这个序