美文网首页
短网址实现原理

短网址实现原理

作者: 小怪兽狂殴奥特曼 | 来源:发表于2020-06-16 16:38 被阅读0次

请求流程

1.系统根据长网址,例如http://abc.com/ddd/xxx/a.html?dsada ,根据短网址算法,得到http://abc.com/sdjffd,并将sdjffd跟长网址http://abc.com/ddd/xxx/a.html?dsada的影身保存起来,然后将该短网址http://abc.com/sdjffd返回给用户。
2.用户浏览器中请求http://abc.com/sdjffd,会先解析abc.com的IP地址,得到1.2.3.4。然后客户端用sdjffd发起GET请求
3.服务器收到get请求,返回sdjffd映射的长网址。
4.客户端收到长网址后,使用301重定向到长网址。

短网址的特点

1.短。一般为6个字符。
2.容量大。要能容纳足够多的信息。
3.乱。让别人猜不到规律。

思路

1.在mysql中建立一张表tbl_link,分别有id(bigint),url(长连接)字段。让id自增。
2.简历一个码表,使用0~9A-Za-z 62个字符,可以简历一个最长为62进制的码表。6个字符长度,最大容量为568亿,完全满足我们容量大和字符少的要求。这个码表是保密的,这样子生成出来的短网址别人就猜不到。
3.生成一个短网址时,先用长连接到tbl_link表,查询url字段是否存在。如果不存在,则插入,然后取出id,使用码表将其转换为我们对应的进制。转换之后的进制表达就是我们的短链接的关键词。当客户端用这个关键词来服务器查询时,我们将关键词用码表转换成对应的id,然后去tbl_link表中查出对应的长连接返回即可。
4.存长连接,为了加快查找速度,可以考虑将长连接哈希(MD5)一遍,然后将哈希值一同存起来,这样子查询的时候会快一些。

相关文章

网友评论

      本文标题:短网址实现原理

      本文链接:https://www.haomeiwen.com/subject/kosrxktx.html