短链服务

示例(不可用)
长链:http://wqigdsk.sq.com?id=2011&name=china
短链:http://cq.cn/Rb2IDs数据库

原理

将长链存入数据库并返回自增Id,而后把Id转换成62进制
假设短码为6位,每一位由[a-z,A-Z,0-9]共62个字母组成,则共有62^6=568亿种组合,已经够用。浏览器

在浏览器中输入上面的地址,会向http://cq.cn发送HTTP GET请求,并传短码。
此时,在数据库中查询短码记录,结果存在重定向到长链;结果不存在,返回HTTP Status Code 404或不跳转缓存

301永久重定向,302临时重定向
短地址一经生成就不会变化,因此用 301 是符合 http 语义的。同时对服务器压力也会有必定减小。
可是若是使用了 301,咱们就没法统计到短地址被点击的次数了。而这个点击次数是一个很是有意思的大数据分析数据源。可以分析出的东西很是很是多。因此选择302虽然会增长服务器压力,可是我想是一个更好的选择。安全

相关问题

1. 被恶意攻击,消耗自增Id
同一长链返回同一短码,IP限制服务器

2. 短码安全问题
在自增Id从1开始时,短码能够被推断出,能够扩展短码,增长一位随机码大数据

3. 同一长链短码是否应该相同
应该相同,将长链和短码对应缓存,在转换成短码以前进行缓存匹配数据分析

相关文章
相关标签/搜索