# 短网址(short URL)系统的原理及其实现

> 如果不想重复的造轮子，想开箱即用，可以使用基于 PHP 的开源软件 YOURLS。YOURLS 还可以和 WordPress 整合到一起，功能强大，可扩展性高。

##什么是短链接 ?
就是把普通网址，转换成比较短的网址。比如：http://t.cn/RlB2PdD 这种，在微博这些限制字数的应用里。好处不言而喻。短、字符少、美观、便于发布、传播。
百度短网址 http://dwz.cn/
谷歌短网址服务 https://goo.gl/ （需科学上网）号称是最快的 ?

##原理解析
当我们在浏览器里输入 http://t.cn/RlB2PdD 时

 * DNS首先解析获得 http://t.cn 的 IP 地址
 * 当 DNS 获得 IP 地址以后（比如：74.125.225.72），会向这个地址发送 HTTP GET 请求，查询短码 RlB2PdD
 * http://t.cn 服务器会通过短码 RlB2PdD 获取对应的长 URL
 * 请求通过 HTTP 301 转到对应的长 URL https://m.helijia.com 。
这里有个小的知识点，为什么要用 301 跳转而不是 302 呐？

> 301 是永久重定向，302 是临时重定向。短地址一经生成就不会变化，所以用 301 是符合 http 语义的。同时对服务器压力也会有一定减少。
但是如果使用了 301，我们就无法统计到短地址被点击的次数了。而这个点击次数是一个非常有意思的大数据分析数据源。能够分析出的东西非常非常多。所以选择302虽然会增加服务器压力，但是我想是一个更好的选择。

来自知乎 iammutex 的答案




