Files
knowledge-kit/Chapter7 - Geek Talk/7.6.md
2020-02-25 17:46:51 +08:00

27 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 短网址(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 的答案