專業(yè)的短鏈接生成工具
鏈接域名
短網(wǎng)址有效期
短鏈接生成原理介紹
更新時間:2025-4-4 12:33:06 作者:愛短鏈
首先短鏈接有幾個優(yōu)點,相信大家都了解:1、內(nèi)容需要;2、用戶友好;3、便于管理。那么短鏈接是怎么實現(xiàn)的呢,其實大概有三個步驟,下面一起來看看愛短鏈小編帶來的詳細(xì)介紹吧。
步驟介紹:
1、定義一個URL映射算法,可以將長的URL映射成短字符串;
2、使用一個存儲(數(shù)據(jù)庫?NoSQL?)來存儲完成的映射;
3、實現(xiàn)自己的URL映射算法;
這里面的第三個步驟相對來說比較難,如何將一個比較長的鏈接生成一個很短的短鏈接呢,下面有三個辦法:
第一個就是普通實現(xiàn)方法
相信大家以前學(xué)習(xí)過十進(jìn)制和二進(jìn)制的互相轉(zhuǎn)換,或者十進(jìn)制和十六進(jìn)制的互相轉(zhuǎn)換,那么為了更短,我們可以使用62進(jìn)制,對于一個數(shù)字ID進(jìn)行轉(zhuǎn)碼,轉(zhuǎn)換成一個短字符串。
這種做法的缺點是沒有辦法保證所有鏈接都是固定的位數(shù)的長度,而且在高并發(fā)的情況下,如何保證能夠快速分發(fā)是個問題。
具體實現(xiàn)方法:
文藝實現(xiàn)
算法描述:使用6個字符來表示短鏈接,我們使用ASCII字符中的'a'-'z','0'-'5',共計32個字符作為集合。每個字符有32種狀態(tài),六個字符就可以表示32^6(1073741824),那么如何得到這六個字符,描述如下:
對傳入的長URL進(jìn)行Md5,得到一個32位的字符串,這個字符串變化很多,是16的32次方,基本上可以保證唯一性。將這32位分成四份,每一份8個字符,這時機(jī)率變成了16的8次方,是4294967296,這個數(shù)字碰撞的機(jī)率也比較小啦,關(guān)鍵是后面的一次處理。我們將這個8位的字符認(rèn)為是16進(jìn)制整數(shù),也就是1*('0x'.$val),然后取0-30位,每5個一組,算出他的整數(shù)值,然后映射到我們準(zhǔn)備的32個字符中,最后就能夠得到一個6位的短鏈接地址。
PHP實現(xiàn)如下:
二逼實現(xiàn)
下面這個函數(shù)使用了純隨機(jī)的方式來生成一個短鏈接,雖然我們可以通過查詢操作來確保不重復(fù)使用短鏈接,可是... 這樣真的靠譜嗎~~
Technorati 標(biāo)簽: 短鏈接,Short Url,映射,哈希
參考資料:
1、微博短地址原理解析
2、微博短域名原理及作用
3、Yours.org
4、Free PHP URL Shorten script that kicks ass
5、PHP Short Url Algorithm Implementation
6、Implement your own short URL
7、短網(wǎng)址算法初步匯總
8、Short Url 實現(xiàn)方式
以上就是愛短鏈小編為大家?guī)淼年P(guān)于短鏈接生成的原理介紹,希望對你有所幫助,后續(xù)如果還有關(guān)于短鏈接、微信外鏈、活碼等一系列的問題的話可以關(guān)注愛短鏈(www.meetyule.com)平臺查閱哦。
愛短鏈平臺各工具使用方法及功能匯總 | |
短鏈接 | 活碼 |
微信外鏈 | 抖音卡片 |