short url短連結原理

來源:互聯網
上載者:User

標籤:位置   @param   ++   使用   變化   nbsp   ref   str   rpo   

一、什麼是短連結

  含義:就是把普通網址,轉換成比較短的網址。比如:http://t.cn/RlB2PdD 這種,比如:微博;這些限制字數的應用裡都用到這種技術。

  優點:短、字元少、美觀、便於發布、傳播。

  百度短網址:http://dwz.cn/

  google短網址: https://goo.gl/

二、原理分析

  當我們在瀏覽器裡輸入 http://t.cn/RlB2PdD 時會經曆以下及格步驟:

  1.瀏覽器解析DNS,擷取網域名稱對應的IP;

  2.當擷取到IP時,會往這個IP地址發送http的get請求以擷取到RlB2PdD對應的長連結地址;

  3.HTTP通過301轉到對應的長連結URL;

  注意:這裡為什麼使用301?301是永久性轉移(重新導向),也就是說,這個短地址一經產生就不會發生變化了,所以符合http中301的一個語義;

三、演算法實現

  短地址一般都是由0-9A-Za-z這62個字元隨機組合而成,所以我們可以產生一個62進位的串,可以根據10進位數轉成62進位數;比如咱們儲存資料庫的時候自增的id,就可以根據這個id來產生對應的62進位的短碼,作為短連結的碼數,最長6位、最短1位,以下是實現的方法僅供參考: 

/*** * 10進位轉為62進位 * @param $num * @return string */function from10_to62($num) {    $to = 62; // 0-9a-zA-Z總計62個字元    $dict = ‘0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‘; // 這個可以打亂順序    $ret = ‘‘;    do {        $ret = $dict[$num%$to] . $ret; // 模數        $num = floor($num/$to); // 取餘數    } while ($num > 0);    return $ret;}/*** * 62進位轉為10進位 * @param $num * @return int|string */function from62_to10($num){    $from = 62;    $num = strval($num);    $dict = ‘0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‘;    $len = strlen($num);    $dec = 0;    for ($i = 0; $i < $len; $i++) {        $pos = strpos($dict, $num[$i]); // 尋找字元出現得位置 16        $bcpow = bcpow($from, $len - $i - 1); // 取62得N次方(保留整數)        $bcmul = bcmul($bcpow, $pos); // 計算每個62進位字元得10進位值        $dec = bcadd($bcmul, $dec); // 計算的值累加    }    return $dec;}var_dump(from10_to62(1000));var_dump(from62_to10(‘g8‘));

  內容參考自:https://hufangyun.com/2017/short-url/

short url短連結原理

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.