短域名生成的算法?短域名生成的優勢
分類:域名資訊
編輯:
瀏覽量:100
2021-09-11 11:50:15
??在職場中,我們越來越發現短域名生成成為了很多人都需要知道的內容和知識,這主要還是因為短域名本身的優勢和好處所導致的,因此很多應用場景對于短域名都有很多的需求,接下來我們就一起來了解一下短域名生成的相關知識。
??什么是短域名
??短域名(Short URL) ,顧名思義就是在形式上比較短的域名。通常用的是asp或者php轉向,在Web 2.0的今天,不得不說,這是一個潮流。目前已經有許多類似服務,借助短網址您可以用簡短的網址替代原來冗長的網址,讓使用者可以更容易的分享鏈接。
??短域名生成的優勢
??通過新網,我們了解到,現在的很多鏈接由于需要帶上很多參數來提供業務所需的數據,所以往往非常冗長,而相應地轉換成短網址后能帶來很多益處:
??在分發和使用的時候更方便、清爽
??更好地適應微博、短信等有字數限制的場景
??降低生成二維碼的復雜度,提升掃碼識別率
??可以一定程度上隱藏部分參數,比如 aff 等
??能夠實現鏈接跳轉的跟蹤和各維度數據統計
??原網址失效后可以不改變短網址,只修改跳轉關系
??個性短網址更有利于品牌建設和營銷
??短域名生成的算法
??這個算法就是把長網址,用MD5進行哈希得到一個128位的16進制字符串,然后把128位的MD分成4組,對應的4組候選短鏈接;把每一組的32位的數,將它與0x3FFFFFFF進行位與運算,取其低30位的數據。把得到的值與0x0000003D進行位與運算,再把得到的結果當成下標在定義的隨機字符串列表里面獲取真正的字符串,再把原數字右移5位進行相同操作,重復進行6次得到6個字符,即組成一個候選短鏈接地址, 然后根據自己的業務返回4個后選中的某一個即可。
??由于MD5的哈希,可能會hash沖突的,我采用的的就是利用一個存了a-z,A-Z,0-1的字符串的數組,再把hash值做與運算,把得到的值當下標去數組去獲取字符串組成短鏈接。
??開放定址法
??①:線性探查法:
??線性探查發會查找發生沖突周圍+1,-1,+2,-2…地址的儲存空間直到找到地址為止。但線性探測法可能會導致數組內相鄰單元中的數據元素會趨近形成聚類,從而使后續單元探查時間變長且效率更低。
??②:平方探查法:
??和上面的線性探查法相同發生沖突會不過是在加上1的平方,減去1的平方…一直查找直到找到儲存的地址為止。
??拉鏈法
??每次發生沖突時,用鏈表來儲存數據,不過缺點是假如很多哈希值相同的數據時會儲存到同一個鏈表中,會使查找變成線性。
??再哈希法
??發生沖突就再次使用另一個哈希函數計算地址直到找到地址為止。
??建立一個公共溢出區
??當發生哈希沖突之后將沖突的值都放在另一個地方(數組等)。
??分布式發號器
??分布式系統中,產生唯一流水號的服務系統
??通過以上的介紹,相信大家對于短域名生成的相關內容都有了一定的了解,對于短域名其本身確實存在很多合理和優勢的地方,大家如何還想繼續了解短域名的相關內容,可以登錄新網進行學習和了解。
??什么是短域名
??短域名(Short URL) ,顧名思義就是在形式上比較短的域名。通常用的是asp或者php轉向,在Web 2.0的今天,不得不說,這是一個潮流。目前已經有許多類似服務,借助短網址您可以用簡短的網址替代原來冗長的網址,讓使用者可以更容易的分享鏈接。
??短域名生成的優勢
??通過新網,我們了解到,現在的很多鏈接由于需要帶上很多參數來提供業務所需的數據,所以往往非常冗長,而相應地轉換成短網址后能帶來很多益處:
??在分發和使用的時候更方便、清爽
??更好地適應微博、短信等有字數限制的場景
??降低生成二維碼的復雜度,提升掃碼識別率
??可以一定程度上隱藏部分參數,比如 aff 等
??能夠實現鏈接跳轉的跟蹤和各維度數據統計
??原網址失效后可以不改變短網址,只修改跳轉關系
??個性短網址更有利于品牌建設和營銷
??短域名生成的算法
??這個算法就是把長網址,用MD5進行哈希得到一個128位的16進制字符串,然后把128位的MD分成4組,對應的4組候選短鏈接;把每一組的32位的數,將它與0x3FFFFFFF進行位與運算,取其低30位的數據。把得到的值與0x0000003D進行位與運算,再把得到的結果當成下標在定義的隨機字符串列表里面獲取真正的字符串,再把原數字右移5位進行相同操作,重復進行6次得到6個字符,即組成一個候選短鏈接地址, 然后根據自己的業務返回4個后選中的某一個即可。
??由于MD5的哈希,可能會hash沖突的,我采用的的就是利用一個存了a-z,A-Z,0-1的字符串的數組,再把hash值做與運算,把得到的值當下標去數組去獲取字符串組成短鏈接。
??開放定址法
??①:線性探查法:
??線性探查發會查找發生沖突周圍+1,-1,+2,-2…地址的儲存空間直到找到地址為止。但線性探測法可能會導致數組內相鄰單元中的數據元素會趨近形成聚類,從而使后續單元探查時間變長且效率更低。
??②:平方探查法:
??和上面的線性探查法相同發生沖突會不過是在加上1的平方,減去1的平方…一直查找直到找到儲存的地址為止。
??拉鏈法
??每次發生沖突時,用鏈表來儲存數據,不過缺點是假如很多哈希值相同的數據時會儲存到同一個鏈表中,會使查找變成線性。
??再哈希法
??發生沖突就再次使用另一個哈希函數計算地址直到找到地址為止。
??建立一個公共溢出區
??當發生哈希沖突之后將沖突的值都放在另一個地方(數組等)。
??分布式發號器
??分布式系統中,產生唯一流水號的服務系統
??通過以上的介紹,相信大家對于短域名生成的相關內容都有了一定的了解,對于短域名其本身確實存在很多合理和優勢的地方,大家如何還想繼續了解短域名的相關內容,可以登錄新網進行學習和了解。
聲明:免責聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發現本社區中有涉嫌抄襲的內容,請發
送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。本站原創內容未經允許不得轉載,或轉載時
需注明出處:新網idc知識百科