自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊關(guān)于短鏈接那些事

網(wǎng)絡(luò) 通信技術(shù)
由于開(kāi)源項(xiàng)目存在不確定性,不得不自己搭建一套短鏈接服務(wù),滿(mǎn)足使用需求。一是便于維護(hù),二是可以靈活擴(kuò)展。接下來(lái)結(jié)合代碼進(jìn)行分析。

?前言

最近在做一套推廣系統(tǒng),將其中涉及的長(zhǎng)短鏈接問(wèn)題在這里分享一下。推廣方式主要是以短信方式慰問(wèn)客戶(hù)并推送宣傳鏈接(非廣告),但鏈接真的是太長(zhǎng)了,先不說(shuō)短信按字?jǐn)?shù)收費(fèi)問(wèn)題,就是看到就想立刻刪除。所以組織就安排研究如何讓鏈接變短,精簡(jiǎn)干練。。。

關(guān)于長(zhǎng)短鏈接

  • 長(zhǎng)鏈接:顧名思義,就是網(wǎng)頁(yè)的完整URL地址,點(diǎn)擊即可跳轉(zhuǎn)至網(wǎng)頁(yè),進(jìn)行內(nèi)容瀏覽。
  • 短鏈接:就是將長(zhǎng)鏈接進(jìn)行處理后轉(zhuǎn)換成長(zhǎng)度較小的URL地址,如 https://sourl.cn/upNbxj  則是長(zhǎng)鏈接 https://blog.csdn.net/qq_39486758/article/details/126602389 處理之后的結(jié)果。
  • 短鏈接相較于長(zhǎng)鏈接,會(huì)更簡(jiǎn)短,便于一些第三方平臺(tái)的字符長(zhǎng)度限制等問(wèn)題處理,當(dāng)然對(duì)于小編來(lái)說(shuō),可以省下不少短信費(fèi)用,能不能“升官發(fā)財(cái)”就靠它了~~

長(zhǎng)短鏈接原理

  • 當(dāng)我們?cè)诰W(wǎng)站輸入短鏈接后,DNS會(huì)解析鏈接的ip地址(即短鏈接服務(wù)器),然后DNS轉(zhuǎn)發(fā)請(qǐng)求(HTTP GET)至短鏈接服務(wù)器,通過(guò)短鏈接碼換取對(duì)應(yīng)的完整URL地址,最后短鏈接服務(wù)器通過(guò)請(qǐng)求(HTTP 301)重定向到完整URL地址,至此完成解析??梢詤⒖紩r(shí)序圖:

圖片

注:短鏈接跳轉(zhuǎn)長(zhǎng)鏈接可以采用301(永久重定向),也可以采用302(臨時(shí)重定向),區(qū)別就是對(duì)資源的管理,301會(huì)將舊資源永久移除,替換為重定向的新資源;而302還是會(huì)保留舊資源,只是重定向到新資源,并不會(huì)發(fā)生替換,也不會(huì)保存新資源。

演示案例

  • 免費(fèi)的在線工具:

站長(zhǎng)之家:https://tool.chinaz.com/tools/dwz.aspx,需要注冊(cè)才能使用,畢竟是白嫖的,還是得尊重下~~

短網(wǎng)址:https://www.dwz.lc/,其中提供了設(shè)置有效期,訪問(wèn)密碼等非常完善的功能,使用便捷

  • 自研短鏈接服務(wù):由于開(kāi)源項(xiàng)目存在不確定性,不得不自己搭建一套短鏈接服務(wù),滿(mǎn)足使用需求。一是便于維護(hù),二是可以靈活擴(kuò)展。接下來(lái)結(jié)合代碼進(jìn)行分析。

首先是生成短鏈接碼的算法工具類(lèi),算法不是固定的,可以根據(jù)自己習(xí)慣或工作要求使用其它的算法生成,最主要是保證短鏈接碼的唯一性。然后就是維護(hù)短鏈接的關(guān)系映射,此處小編采用的是集合變量,建議采用Mysql等數(shù)據(jù)庫(kù)將關(guān)系數(shù)據(jù)持久化,避免數(shù)據(jù)丟失,導(dǎo)致訪問(wèn)失敗。

/**
* 解碼重定向
*
* @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);
}

模擬操作過(guò)程:本地啟動(dòng)短鏈接服務(wù),再啟動(dòng)一個(gè)業(yè)務(wù)服務(wù)作為長(zhǎng)鏈接服務(wù),將長(zhǎng)鏈接生成短鏈接,然后訪問(wèn)短鏈接并成功跳轉(zhuǎn)至長(zhǎng)鏈接地址。演示結(jié)果

圖片

圖片

圖片

總結(jié)

以上就是本文所分享的全部?jī)?nèi)容,當(dāng)然不止這一種實(shí)現(xiàn)方式,有想法的小伙伴可以私信探討。

責(zé)任編輯:武曉燕 來(lái)源: Java技術(shù)指北
相關(guān)推薦

2012-05-01 08:06:49

手機(jī)

2012-01-02 19:30:22

iPad

2011-08-22 16:42:43

SqliteiPad

2023-07-31 08:21:22

語(yǔ)法校對(duì)器Pick

2020-11-30 13:10:39

MySQL安全服務(wù)器

2021-08-06 11:50:49

Linux 字節(jié)對(duì)齊Linux 系統(tǒng)

2012-07-13 00:03:08

WEB前端開(kāi)發(fā)WEB開(kāi)發(fā)

2011-07-04 13:51:02

QT 對(duì)象 模型

2011-08-01 17:31:25

Xcode開(kāi)發(fā) Cocoa

2019-12-10 08:00:46

Kata容器Linux

2021-03-18 16:05:20

SSD存儲(chǔ)故障

2011-06-30 10:59:43

2009-02-19 10:21:00

路由多WAN口

2011-07-19 15:33:57

iPhone

2015-09-14 09:28:47

2015-08-13 10:54:46

2019-01-07 12:02:02

TCP長(zhǎng)連接Java

2024-02-21 07:24:21

微服務(wù)單體架構(gòu)MVC

2024-03-18 00:00:05

Java服務(wù)JVM

2022-06-02 08:42:15

Redis數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)