(相關(guān)資料圖)
最近在做一套推廣系統(tǒng),將其中涉及的長短鏈接問題在這里分享一下。推廣方式主要是以短信方式慰問客戶并推送宣傳鏈接(非廣告),但鏈接真的是太長了,先不說短信按字?jǐn)?shù)收費(fèi)問題,就是看到就想立刻刪除。所以組織就安排研究如何讓鏈接變短,精簡干練。。。
關(guān)于長短鏈接長鏈接:顧名思義,就是網(wǎng)頁的完整URL地址,點(diǎn)擊即可跳轉(zhuǎn)至網(wǎng)頁,進(jìn)行內(nèi)容瀏覽。短鏈接:就是將長鏈接進(jìn)行處理后轉(zhuǎn)換成長度較小的URL地址,如 https://sourl.cn/upNbxj 則是長鏈接https://blog.csdn.net/qq_39486758/article/details/126602389處理之后的結(jié)果。短鏈接相較于長鏈接,會(huì)更簡短,便于一些第三方平臺(tái)的字符長度限制等問題處理,當(dāng)然對于小編來說,可以省下不少短信費(fèi)用,能不能“升官發(fā)財(cái)”就靠它了~~長短鏈接原理當(dāng)我們在網(wǎng)站輸入短鏈接后,DNS會(huì)解析鏈接的ip地址(即短鏈接服務(wù)器),然后DNS轉(zhuǎn)發(fā)請求(HTTP GET)至短鏈接服務(wù)器,通過短鏈接碼換取對應(yīng)的完整URL地址,最后短鏈接服務(wù)器通過請求(HTTP 301)重定向到完整URL地址,至此完成解析。可以參考時(shí)序圖:注:短鏈接跳轉(zhuǎn)長鏈接可以采用301(永久重定向),也可以采用302(臨時(shí)重定向),區(qū)別就是對資源的管理,301會(huì)將舊資源永久移除,替換為重定向的新資源;而302還是會(huì)保留舊資源,只是重定向到新資源,并不會(huì)發(fā)生替換,也不會(huì)保存新資源。
演示案例免費(fèi)的在線工具:站長之家:https://tool.chinaz.com/tools/dwz.aspx,需要注冊才能使用,畢竟是白嫖的,還是得尊重下~~
短網(wǎng)址:https://www.dwz.lc/,其中提供了設(shè)置有效期,訪問密碼等非常完善的功能,使用便捷
自研短鏈接服務(wù):由于開源項(xiàng)目存在不確定性,不得不自己搭建一套短鏈接服務(wù),滿足使用需求。一是便于維護(hù),二是可以靈活擴(kuò)展。接下來結(jié)合代碼進(jìn)行分析。首先是生成短鏈接碼的算法工具類,算法不是固定的,可以根據(jù)自己習(xí)慣或工作要求使用其它的算法生成,最主要是保證短鏈接碼的唯一性。然后就是維護(hù)短鏈接的關(guān)系映射,此處小編采用的是集合變量,建議采用Mysql等數(shù)據(jù)庫將關(guān)系數(shù)據(jù)持久化,避免數(shù)據(jù)丟失,導(dǎo)致訪問失敗。
/** * 解碼重定向 * * @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永久重定向,避免網(wǎng)絡(luò)劫持 redirectView.setStatusCode(HttpStatus.MOVED_PERMANENTLY); return new ModelAndView(redirectView); }
模擬操作過程:本地啟動(dòng)短鏈接服務(wù),再啟動(dòng)一個(gè)業(yè)務(wù)服務(wù)作為長鏈接服務(wù),將長鏈接生成短鏈接,然后訪問短鏈接并成功跳轉(zhuǎn)至長鏈接地址。演示結(jié)果
總結(jié)以上就是本文所分享的全部內(nèi)容,當(dāng)然不止這一種實(shí)現(xiàn)方式,有想法的小伙伴可以私信探討。
標(biāo)簽:
- 世界即時(shí):聊聊關(guān)于短鏈接那些事
- 天天即時(shí):5G 精確計(jì)時(shí)如何改變我們的自動(dòng)化世界
- 焦點(diǎn)熱門:全球5G物聯(lián)網(wǎng)市場預(yù)計(jì)將迎來高速增長
- 全球今日訊!CC2530開發(fā)環(huán)境搭建,你學(xué)會(huì)了嗎?
- 每日關(guān)注!報(bào)告:全球 5G 移動(dòng)數(shù)據(jù)流量爆炸式增長
- 華碩a豆14Pro星際銀海版京東促銷 外觀采用了3D納米噴印工藝
- 世界今頭條!5G網(wǎng)絡(luò)將如何增強(qiáng)智慧城市解決方案?
- 世界速讀:前端人應(yīng)該掌握的抓包技能
- 環(huán)球今日報(bào)丨2022年無線網(wǎng)絡(luò)市場將如何發(fā)展
- 世界速訊:一文帶你了解什么是光網(wǎng)絡(luò)?