首先,系统把一个长的地址,用一个算法转换成一个短码(或者系统生成一个唯一的id号),然后系统将这个短码和url的映射关系存储到数据库或者缓存中
当用户访问生成的短网址的时候,系统从数据库或者缓存中查询到的对应的长url地址,
请求通过http 301(或者302)跳转到对应的长url
301 是永久重定向,302 是临时重定向。短地址一经生成就不会变化,所以用 301 是符合 http 语义的。同时对服务器压力也会有一定减少。 但是如果使用了301,我们就无法统计到短地址被点击的次数了。而这个点击次数是一个非常有意思的大数据分析数据源。能够分析出的东西非常非常多。所以选择302虽然会增加服务器压力,但是我想是一个更好的选择。
对长url的转换算法可以自定义,主要目的就是将长字符串变短,并且要求算法不可逆
简单来讲md5都可以,其他复杂或者更优算法都可以自行实现
但是推荐使用分布式自增算法,系统生成一个id,将这个id与长url对应存储
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有