當前位置:首頁 » 操作系統 » 短網址的生成演算法

短網址的生成演算法

發布時間: 2023-02-28 21:54:58

Ⅰ 短鏈接服務搭建

關鍵詞:長鏈接;短鏈接;重定向;

長鏈接問題:

        復制容易出錯,長鏈接URL較長,有時參數不止一個,復制容易遺漏或在粘貼時被編輯器截斷;

        容易被屏蔽,絕大部分長鏈接暴露了資源來源及分配策略,在投放第三方時容易被屏蔽,比如被簡訊屏蔽,(淘寶寶貝長鏈接)被微信屏蔽......;

反例:

因此,我們考慮短鏈接服務對長鏈接進行壓縮,跳轉替代!

        1、用戶訪問短鏈接: https://0x9.me/QvjlI ;

        2、短鏈接伺服器0x9.me收到請求,根據路徑參數QvjlI獲取到原始鏈接:

http://www.dazhongkanche.com/gou/20200914/64294.html

        3、伺服器返回301/302狀態碼,將響應頭中的Location設置為 原始鏈接;

        4、瀏覽器重定向到原始鏈接;

        5、返回響應;

短鏈接生成:

1、庫表設計:id、code(短鏈碼)、url(原鏈接),採用Key-Value方式對應存儲

2、短鏈碼

1)、存儲方式:62進制,每位 可選 a-z、A-Z 和 0-9  等62個字元,比通常的數字方式存儲量大。註:

        4位就可以表徵 62^4 = 1477,6336 約 1500萬條數據;

        5位可以表徵 62^5 = 9,16132832 約 9億條數據;

        6位可以表徵 62^6 = 568,00235584 約 560億條數據;

例子:

        通過短鏈碼的長度,可以判斷得出各平台服務板塊的歷史業務量,如上:

        【菜鳥驛站】同【拼多多】,採用了8位短鏈碼,62^8 = 218,3401,05584896,業務量都累積到了多少萬億級別。

        另,值得關注,點擊拼多多的鏈接直接打開APP(具體技術方案參考: 如何從推廣簡訊鏈接喚起 App ),優於絕大部分應用的推廣。

2)、生成方式:可以按ID自增序列(自增後10到62進制轉換)、哈希演算法方式生成,可參考: 如果教你設計一個 短 鏈接 系統,你會從那些方面來提高性能呢?

重定向性能考慮:

1、301、302跳轉區別:

1)、301跳轉,永久重定向,默認被瀏覽器緩存,只要訪問過一次短鏈,後續都會直接跳轉原鏈地址,不經過伺服器;

2)、302跳轉,臨時重定向,不被瀏覽器緩存,每次都經過短鏈接伺服器;

所以,要想實現短鏈更靈活的資源跳轉配置,採用302跳轉就比較合適,缺點是:對搜索引擎不友好+性能問題(每次都要過短鏈服務);考慮到SEO+訪問性能(瀏覽器緩存解決),建議採用301跳轉方式。

2、通過Redis做查詢表,短鏈Code 映射長鏈接Url;

3、防機器人腳本訪問,結合白名單等機制;

註:作為對外開放的短鏈服務對設計要求更高,完全作為一個獨立系統進行設計。

註:本當章節下所有內容的撰寫思路與方式:

1、針對指定資源手動生成短鏈接,進行投放;

2、針對指定資源,批量生成短鏈接,並形成記錄,以便進行投放;

3、在一些環節(如:簡訊投放、微信分享時),自動生成短鏈接(用戶無感)完成投放;

介紹如何應用場景:

1、朋友圈消息:

2、微信/QQ群插件自動發送鏈接

微信,空間節約效果良好:

常用的QQ群自動回復插件:

3、簡訊營銷

優點:

1、在鏈接投放時,方便復制粘貼;

2、短網址使排版變的美觀,簡潔,用戶關注的重點在文案上面;

3、防止屏蔽,如簡訊屏蔽、微信屏蔽....;

4、訪問資源有效期控制,添加密碼等:

        原則上可以在跳轉之前做任何後端想做的事情,比如訪問統計,比如後續訪問鏈接的切換,所以對訪問資源的可控性就比較強,

        舉例:跳轉資源不穩定,今天是A,明天是B,就可以通過修改原鏈接實現跳轉資源的切換。

關聯技術的延展介紹

1、301對重定向的影響: https://www.batmanit.com/p/457.html

2、有投放就必然涉及到投放資源、渠道、及效果的管理:

        資源管理,比如說文章;

        渠道管理,比如:微信渠道(公號、朋友圈、運營人員個人私聊)、QQ、微博、簡訊、頭條.....

        投放效果統計,針對文章的效果統計(各文章的效果如何?),針對渠道的效果統計(各渠道的效果如何?),針對文章&渠道的效果統計(即不同文章在不同渠道的效果如何?)

3、 一切為了營收!如何從推廣簡訊鏈接喚起 App ?

4、 如果教你設計一個 短 鏈接 系統,你會從那些方面來提高性能呢?

Ⅱ 怎麼做一個短網址縮短網站,網址縮短後要以自己的頂級域名顯示的,不是顯示現在網上流行的url、t等。

現在網址縮短網站有很多了,就分析一下做得比較好的六度短網址6.in短網址生成服務平台:
(1)將長網址md5生成32位簽名串,分為4段,每段4個位元組
對這4段循環處理,取4個位元組(32位),將它看成16進制串與0x3fffffff(30位1)(2)與操作,即超過30位的忽略處理
(3)這30位分成6段,每5位的數字作為字母表的索引取得特定字元,依次進行獲得6位字元串
(4)總的md5串可以獲得4個6位串,取裡面的任意一個就可作為這個長url地址
(5)把數字和字元組合做一定的映射,就可以產生唯一的字元串,如第62個組合就是sssss9,第63個組合就是ssssba,再利用洗牌的演算法,把原字元打亂後保存,那麼對應位置的組合字元串就會是無序的組合。
(6)把長網址存入資料庫,取返回的id,找出對應的字元串,例如返回id為1,那麼對應上面的字元串組合就是aaa,同理id為2時,字元串組合為aaa,依次類推,直至到達62種組合後才會出現重復的可能,所以如果用上面的62個字元,任意取6個字元組合成字元串的話,你的數據存量達到500多億後才會出現重復的可能。

Ⅲ 微博上是如何把一個長URL變成一個短小的URL的這是一種加密方式嗎

那是新浪針對新浪微博推出的一種功能。不用用戶自己轉換,這個步驟由新浪來代勞。
他不是加密方式,簡單的說就是換了一種表現形式

為什麼要這樣做的,原因我想有這
樣幾點:
1、微博限制字數為140字一條,那
么如果我們需要發一些連接上去,
但是這個連接非常的長,以至於將
近要佔用我們內容的一半篇幅,這
肯定是不能被允許的,所以短網址
應運而生了。
2、短網址可以在我們項目里可以
很好的對開放級URL進行管理。有
一部分網址可以會涵蓋XX,暴力,
廣告等信息,這樣我們可以通過用
戶的舉報,完全管理這個連接將不
出現在我們的應用中,應為同樣的
URL通過加密演算法之後,得到的地
址是一樣的。
3、我們可以對一系列的網址進行
流量,點擊等統計,挖掘出大多數
用戶的關注點,這樣有利於我們對
項目的後續工作更好的作出決策。
其實以上三點純屬個人觀點,因為
在我接下來的部分項目中會應用
到,所以就了解了一下,下面先來
看看短網址映射演算法的理論(網上
找到的資料)
1)將長網址md5生成32位簽名串,分
為4段, 每段8個位元組;
2)對這四段循環處理, 取8個位元組, 將
他看成16進制串與0x3fffffff(30位1)
與操作, 即超過30位的忽略處理;
3)這30位分成6段, 每5位的數字作
為字母表的索引取得特定字元, 依
次進行獲得6位字元串;
4)總的md5串可以獲得4個6位串; 取
裡面的任意一個就可作為這個長url
的短url地址;
很簡單的理論,我們並不一定說得
到的URL是唯一的,但是我們能夠
取出4組URL,這樣幾乎不會出現太
大的重復。

熱點內容
ipad的設置默認密碼是什麼 發布:2025-08-16 15:36:43 瀏覽:981
uid卡加密 發布:2025-08-16 15:34:31 瀏覽:701
資料庫連接eclipse 發布:2025-08-16 15:34:27 瀏覽:302
如何設置迅雷上傳速度 發布:2025-08-16 15:16:20 瀏覽:600
php發微信 發布:2025-08-16 15:16:17 瀏覽:884
啟用usb存儲設備 發布:2025-08-16 15:10:27 瀏覽:877
windows加入linux域 發布:2025-08-16 15:10:14 瀏覽:604
od過資料庫 發布:2025-08-16 15:08:56 瀏覽:604
python的mysql驅動 發布:2025-08-16 14:53:37 瀏覽:611
什麼是雲伺服器eps 發布:2025-08-16 14:33:07 瀏覽:15