【资料图】
最近在做一套推广系统,将其中涉及的长短链接问题在这里分享一下。推广方式主要是以短信方式慰问客户并推送宣传链接(非广告),但链接真的是太长了,先不说短信按字数收费问题,就是看到就想立刻删除。所以组织就安排研究如何让链接变短,精简干练。。。
关于长短链接长链接:顾名思义,就是网页的完整URL地址,点击即可跳转至网页,进行内容浏览。短链接:就是将长链接进行处理后转换成长度较小的URL地址,如 https://sourl.cn/upNbxj 则是长链接https://blog.csdn.net/qq_39486758/article/details/126602389处理之后的结果。短链接相较于长链接,会更简短,便于一些第三方平台的字符长度限制等问题处理,当然对于小编来说,可以省下不少短信费用,能不能“升官发财”就靠它了~~长短链接原理当我们在网站输入短链接后,DNS会解析链接的ip地址(即短链接服务器),然后DNS转发请求(HTTP GET)至短链接服务器,通过短链接码换取对应的完整URL地址,最后短链接服务器通过请求(HTTP 301)重定向到完整URL地址,至此完成解析。可以参考时序图:注:短链接跳转长链接可以采用301(永久重定向),也可以采用302(临时重定向),区别就是对资源的管理,301会将旧资源永久移除,替换为重定向的新资源;而302还是会保留旧资源,只是重定向到新资源,并不会发生替换,也不会保存新资源。
演示案例免费的在线工具:站长之家:https://tool.chinaz.com/tools/dwz.aspx,需要注册才能使用,毕竟是白嫖的,还是得尊重下~~
短网址:https://www.dwz.lc/,其中提供了设置有效期,访问密码等非常完善的功能,使用便捷
自研短链接服务:由于开源项目存在不确定性,不得不自己搭建一套短链接服务,满足使用需求。一是便于维护,二是可以灵活扩展。接下来结合代码进行分析。首先是生成短链接码的算法工具类,算法不是固定的,可以根据自己习惯或工作要求使用其它的算法生成,最主要是保证短链接码的唯一性。然后就是维护短链接的关系映射,此处小编采用的是集合变量,建议采用Mysql等数据库将关系数据持久化,避免数据丢失,导致访问失败。
/** * 解码重定向 * * @param url 原始链接的编码 * @return 重定向 */ @GetMapping("/redirect/{url}") public ModelAndView redirect(@PathVariable String url) { long id = BasetUtil.encode62to10(smartUrl); String originUrl = urlMap.get(id); RedirectView redirectView=new RedirectView(originUrl); // 301永久重定向,避免网络劫持 redirectView.setStatusCode(HttpStatus.MOVED_PERMANENTLY); return new ModelAndView(redirectView); }
模拟操作过程:本地启动短链接服务,再启动一个业务服务作为长链接服务,将长链接生成短链接,然后访问短链接并成功跳转至长链接地址。演示结果
总结以上就是本文所分享的全部内容,当然不止这一种实现方式,有想法的小伙伴可以私信探讨。
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?