一、短網址的定義
短網址,Short URL,可能也叫短鏈接、短URL,是指短網址服務器為某個鏈接生成的中間鏈接。短鏈接並不是絕對的就比原鏈接短。
二、短網址的作用
減少字節數:有些URL是很長的但URL本身往往不是用戶關注的,在微博和短信等場景中如果URL占了長長的篇幅這是很影響閱讀體驗的;使用短網址有效控制了URL的長度又能保證用過可通過URL到達設定頁面。如下圖所示:

隱藏真實網站:長網址保存了真實域名,比如一條短信說點鏈接可領某寶紅包,如果使用長網址域名根本就不是淘寶的用戶可能就不會點。使用短連接就能將真實域名隱藏起來,單從短網址上看用戶不能知道是不是指向淘寶頁面。如下圖所示:

減少字節數是短網址出現的初始原因(更直接點是隨微博140字限制興起),隱藏真實網站是黑產在短網址出來后對短網址的利用。另外有些文章說好記也是短鏈接的一個好處,但其實短並不就代表好記就比如上圖這個你真覺得短鏈接有比原鏈接好記嗎。
三、短網址的實現
短網址不是無中生有的,短網址機制根本上是通過“短網址服務器+302重定向實現”。
3.1 短網址服務器
要生成短網址就需要有一台服務器,常見的短網址服務器有http://t.cn/和https://dwz.cn,可以看到很多短網址都是這兩個服務器的。
當然短網址服務器這種東西,本質就只是將短網址還原為原網址,建個數據庫一列短網址一列原網址再幾條查詢代碼也就差不多了,完全可以自己搭一個。
其中關鍵點是在生成機制中保證不同原網址不會生成同樣的短網址,可行的方法是對請求生成短鏈接的URL進行類似sha256之類的猜要算法,短網址服務器+hash值就可以構成短網址。
3.2 302重定向
不管點所謂長網址還是短網址,瀏覽器都一樣用DNS協議去解析;所以點擊短網址必須是去訪問短域名服務器而不是原URL的服務器。
下面舉個例子就很明白了,原網址是我博客的主頁,短網址是其對應的短網址
原網址:http://www.cnblogs.com/lsdb/
下圖是點擊請求短網址的數據包及其返回結果(302重定向):

四、短網址生成
百度一下短網址,就有很多提供短網址生成服務的網站
谷歌收集:https://code.google.com/archive/p/shortenurl/wikis/URLShorteningServices.wiki
提供這服務的網站也不完全算公益,通過各短網址的解析數量可以獲取各原網址的訪問數量等信息。
另外我們點擊百度搜索結果的鏈接,稍微觀察地址欄就會發現,地址先是百度的網址后面才是轉向目標頁面的URL。這種操作的目的正是獲取用戶喜歡那些頁面等信息。當然這並不是短網址也不是302重定向,只是順便提一下。

https://dwz.cn/YzhlXOQZhttps://dwz.cn/YzhlXOQZhttps://dwz.cn/YzhlXOQZ
