背景:在我给别人发我的简书地址的时候以及在别的个人网站上写我的简书地址的时候就遇到了一个烦恼。。。 https://www.jianshu.com/u/643a6b684d57 这地址着实有点长啊~~,不美观,然后第一想法我把它映射到我之前买的阿里云域名下做二级域名就ok了,几秒后意识到由于前不久阿里域名续费太贵,我没续费。。。于是乎就想到用到了短连接
刚刚对短连接的思路探索了一下,其实很简单,给大家就介绍下得了。
当我们在浏览器里输入 http://v1wev.cn/kzf4C 时
- DNS首先解析获得http://v1wev.cn 的
IP
地址 (这步跟短链无关是多余的废话,大家应该都知道域名到ip的dns解析吧)
- DNS首先解析获得http://v1wev.cn 的
- 当
DNS
获得IP
地址以后(比如:12.101.225.72),会向这个地址发送HTTP
GET
请求,- 查询短码zf4C
获取其对应的长链接
- 当
- http://v1wev.cn务器会通过短码 zf4C 获取对应的长 URL,也就是我们简书的首页(关于长短连接的映射关系存储方式就太多了,用本地缓存或者redis或者mysql都ok的)
- 最后请求通过
HTTP
301
转到对应的长 URLhttps://www.jianshu.com/u/643a6b684d57 。
- 最后请求通过
这里有个小的知识点,为什么要用 301 跳转而不是 302 ?
他们之间也是有共同点的,就是用户都可以看到url替换为了一个新的,然后发出请求,区别是: 301 是永久重定向,302 是临时重定向。
短地址一经生成就不会变化
,所以用 301 是符合http
语义的。同时对服务器压力也会有一定减少。 但是如果使用了301
,我们就无法统计到短地址被点击的次数了。而这个点击次数是一个非常有意思的大数据分析数据源。能够分析出的东西非常非常多。所以选择302虽然会增加服务器压力,但是我想是一个更好的选择。 301和302区别详细解释