Skip to content

Latest commit

 

History

History
40 lines (24 loc) · 1.66 KB

README.md

File metadata and controls

40 lines (24 loc) · 1.66 KB

短链技术

什么是短链技术

如果留心,会注意到分享链接的 url 非常短,例如,下面是淘宝上 apple 旗舰店的商品:

https://m.tb.cn/h.4CUT6CW?sm=e7bb6d

当你打开之后,会发现其 url 为:

链接全长

至此,可以意识到:分享的链接是一个短链,它是上图链接的一个缩写,二者成双射关系。

短链作用

由上例可以看到,短链减少了无用的字符,保证分享时信息的简洁;

短链技术的原理

首先,将长链接映射成短地址属于短链生成技术,一般有:

  1. 哈希算法,分割长链接的字符,将 n 个字符映射为一个字符,其算法包括 md5, sha, murmurhash 等等(像 md5 属于加密算法,而短链与长链的映射并不关注安全特性,加密反而会影响性能)。同时,hash 算法也有一定的缺陷,即可能存在哈希冲突,导致短链重复,解决该问题的方法是存储当前已经生成的所有短链,每次生成新的短链时确保不重复。
  2. 自增序列,维护一个自增的 ID.

至此,短链接生成完毕。

随后,当你访问一条短链时候会发生什么?

比如访问:https://m.tb.cn/h.4CUT6CW?sm=e7bb6d.

首先 m.tb.cn 对应的服务器收到请求,根据 h.4CUT6CW?sm=e7bb6d 来从数据库中查询对应长链接,随后,重定向到长链接。

本文只是从大体上介绍下短链技术,还有很多内容值得思考:

  1. 双射算法设计、优化的细节。
  2. 短链有效时间、安全性等。
  3. 数据库读写优化。
  4. 重定向选择 301 or 302?
  5. ....