功能介绍:
利用mongodb生成短网址,用户输入短网址即可登录
![](https://img.haomeiwen.com/i13091615/2de0778ed0433d90.png)
原理解析:
当我们在浏览器里输入 http://dwz.cn/de3rp2FI 时
DNS首先解析获得 http://dwz.cn 的 IP 地址。当 DNS 获得 IP 地址以后,会向这个地址发送 HTTP GET 请求,查询短码 dwz.cn
http://dwz.cn 服务器会通过短码 RlB2PdD 获取对应的长 URL
请求通过 HTTP 301 转到对应的长 URL https://www.baidu.com
算法一:
自增序列算法也叫永不重复算法
设置 id 自增,一个 10进制 id 对应一个 62进制的数值,1对1,也就不会出现重复的情况。这个利用的就是低进制转化为高进制时,字符数会减少的特性。
![](https://img.haomeiwen.com/i13091615/190310cff5c04990.png)
算法二:
将长网址 md5 生成 32 位签名串,分为 4 段, 每段 8 个字节。对这四段循环处理, 取 8 个字节, 将他看成 16 进制串与 0x3fffffff(30位1) 与操作, 即超过 30 位的忽略处理。这 30 位分成 6 段, 每 5 位的数字作为字母表的索引取得特定字符, 依次进行获得 6 位字符串。总的 md5 串可以获得 4 个 6 位串,取里面的任意一个就可作为这个长 url 的短 url 地址。这种算法,虽然会生成4个,但是仍然存在重复几率
![](https://img.haomeiwen.com/i13091615/0aee2035d6276023.png)
网友评论