Theory
- 当我们在浏览器里输入 http://abc.com/RlB2d2 时,DNS首先解析获得 http://abc.com 的 IP 地址 111.125.123.72;
- 当 DNS 获得 IP 地址以后,会向这个地址发送 HTTP GET 请求,查询短码 RlB2d2 对应的长 URL;
- 请求通过 HTTP 301 转到对应的长 URL https://m.domain.com。
301 与 302 的区别
301 是永久重定向,302 是临时重定向。短地址一经生成就不会变化,所以用 301 是符合 http 语义的,同时对服务器压力也会有一定减少。但是如果使用了 301,我们就无法统计到短地址被点击的次数了。而这个点击次数是一个非常有意思的大数据分析数据源。能够分析出的东西非常非常多。所以选择302虽然会增加服务器压力,但是我想是一个更好的选择。
URL Shortener
YOURLS
How to add plugin?
default plugin directory: /var/www/html/user/plugins
Example: https://github.com/YOURLS/random-keywords
短地址生成书序
短地址默认是是按照顺序生成,从1开始,有可能我们想不按照这样顺序,可以推荐用时间戳来生成
只需要修改 includes/functions.php 272行附近
1 | 将 $id = yourls_get_next_decimal(); 改为 $id = time(); |
Reference
- [短网址(short URL)系统的原理及其实现]https://segmentfault.com/a/1190000012088345