吐糟一下:微信总是被骚扰,这个帮忙点一下,那个帮忙点一下,不胜其烦;
短连接: `https://w.url.cn/s/AjDlgGg`;
完整URL:`https://www.bxpaouufa.cn/apprehend_igneous.html?is_editor=1&ub_id=iwjwyo3k&szoid=8236&is_orange=1&277E5EDDD=N83w5OR5UwRU`
那这是怎么对应起来实现的呢?
1、什么是短连接
短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串。便于用户记忆和在互联网上的传播。
现在很多公司都提供了短链接服务,比如百度,新浪微博,草料二维码等等,以供用户自由方便的生成短链接.
2、对应过程
2.1 如何生成短链
- Hash实现
- 自增序列算法(永不重复算法)
2.2 如何把短链还原为原链接进行跳转
1. 当我们在浏览器里输入 http://t.cn/RlB2PdD 时
2. DNS首先解析获得 http://t.cn 的 IP 地址
3. 当 DNS 获得 IP 地址以后(比如:74.125.225.72),会向这个地址发送 HTTP GET 请求,查询短码 RlB2PdD
4. http://t.cn 服务器会通过短码 RlB2PdD 获取对应的长 URL
5. 请求通过 HTTP 301 转到对应的长 URL https://m.helijia.com。
摘自:胡方运博客-短网址(short URL)系统的原理及其实现
2.3 短链接重定向301 OR 302
301是永久重定向,而302是临时重定向.
301是永久重定向,短链接生成以后就不会变化,所以用301符合http语义,这样对服务器的压力会有所减少.但是这样一来,我们就无法统计短地址被点击的次数了.
302是临时重定向, 会增加服务器的压力,但是我们可以统计短链接被点击的次数,这些数据可能对于公司的发展规划非常重要.
2.4 如何实现的重定向 响应头location
Location响应报头域用于重定向接受者到一个新的位置。
例如:客户端所请求的页面已不存在原先的位置,为了让客户端重定向到这个页面新的位置,
服务器端可以发回Location响应报头后使用重定向语句,让客户端去访问新的域名所对应的服务器上的资源。
那么2.3中第五步获取的location值就可以设置为 原URL的完整链接,从而实现跳转