999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

短網址服務系統的實現及相關技術研究

2017-02-27 03:11:15郭一華
軟件 2017年1期
關鍵詞:數據庫服務系統

郭一華

(北京郵電大學網絡技術研究院,北京 100876)

短網址服務系統的實現及相關技術研究

郭一華

(北京郵電大學網絡技術研究院,北京 100876)

隨著微博等網絡社交產品的火爆發展,普通網址由于過長,在網絡上傳播很不方便,容易出錯,在一些限制字數的場合還會嚴重影響正常的語言表達。因此,短網址服務逐漸興起了。短網址網絡社交平臺幾乎是不可或缺的,因而無論新浪微博、人人網等國內社交網絡及Facebook, twitter等國外社交網絡都有自己的短網址服務。同時,一批開源短網址服務項目如Phurl等也紛紛出現。短網址服務一般依附于社交網絡等其他服務存在,由于使用方便,獨立的短網址服務系統也有存在的價值。本文主要研究了短網址及相關技術,總結了主要的短網址轉換算法,并用PHP+Apache+MySQL實現了一個局域網短網址系統。

計算機網絡;短網址;重定向;長短網址轉換

本文著錄格式:郭一華. 短網址服務系統的實現及相關技術研究[J]. 軟件,2017,38(1):81-85

0 引言

短網址服務最早出現在2002年左右[1],隨著微博等限制發言字數的社交網絡的興起,短網址服務開始變得越來越重要。在微博中,連接分享是一項不可或缺的功能,而140字的長度限制對大多數URL來說都顯得過短,例如要在微博中插入一個很常見的淘寶商品鏈接:http://item.taobao.com/item. htm?id=38689623244&ali_refid=a3_420961_1006:110 3100473:6:%C6%BB%B9%FB%B1%CA%BC%C7% B1%BEmacbook+pro:f99d0515d2ff6bdea953fd4f1-f6879f0&ali_trackid=1_f99d0515d2ff6bdea953fd4f1f 6879f0&spm=a310c.2169929.5642913.1.eScQ3n就占去近100個字符,而真正有作用的文字內容被大量減少。這一大段字符對于讀者幾乎起不到任何作用,反而會讓人產生陌生排斥的情緒,不愿意去點擊鏈接,這樣就降低了微博分享擴散的能力[2]。而文字內容減少還會使用戶不得不大幅減少需要表達的內容,使微博的信息量大打折扣。非核心內容占據了大部分篇幅,核心內容只能精簡再精簡,在當下提倡信息簡短而高效的網絡環境下,不得不說這是一種效率很低的做法,需要有一種解決方法,使得用戶能夠在用微博分享鏈接的同時,盡可能地提高一條微博中的信息含量,并且不影響核心內容的表達,短網址的興起正契合了這一需求。

通過短網址服務,用戶可以將很長的URL縮至幾個字符,即使在惜字如金的微博中也絲毫不會影響信息表達。除此之外,短網址還可以作為網址別名,以便于記憶和推廣。而移動互聯網近年來的快速發展,也加快了短網址的推廣與應用的速度。因此,國內外各主流社交網絡平臺都推出了自己的短網址服務。此外,許多開源短網址項目如Phurl[3]等也都各具特色,不但程序短小精悍,功能也很齊全,為個人博客、小型網站等搭建自己的短網址服務提供了很大便利。

總之,短網址已經成為社交網絡平臺上不可或缺的一項技術,其核心長短網址轉換及相關技術也成為一項很有意義的研究課題。

本文研究了常見的的各種長短網址轉換算法和各自優缺點,使用PHP+Apache+Myspl技術實現了一個局域網短網址服務系統。

1 長短網址轉換算法

長短網址轉換在本質上是一個映射函數f:x -> y。由于要做到每個長網址與一個短網址一一對應,則這個映射函數必須同時具有兩個特點:

1. x1!=x2,則f(x1)!=f(x2);

2. 任意給出一個y,總會有唯一的x與之相對應

則對于任意給出的線性函數,都符合這兩個條件。出于對x(長網址)特點的考慮,以及快速得到y的要求,轉換算法一般有以下兩種[4]:

1. 通過高進制數轉換,得到短網址。

2. 利用MD5、CRC32等hash方法得到短網址。

2.1 通過高進制數轉換得到短網址

短網址字符集共有n個字符,則短網址可以視作一個n進制數,本文中所使用的短網址字符集均由62個字符組成(大小寫英文字母以及數字0-9),則每一個短網址都是一個62進制數。在數據庫中增添一列ID,設為自增長型整數,對于每一個長地址,將數據庫中記錄的十進制ID轉換為62進制數,再作為字符集索引得到短網址。PHP代碼如下:

轉換為高進制可以得到短網址,同理,由短網址轉換為十進制數可以得到長網址ID,這樣進一步加快了數據庫訪問速度,PHP代碼如下:

得到結果后作為ID在數據庫中查找即可得到長網址,由于有序整數的查找速度很快,所以用這種方法可以很快完成短變長。

利用高進制的轉換,可以很快從長網址得到短網址,或者從短網址得到長網址,尤其是通過短網址查找長網址時,通過一個進制轉換函數得到長網址在數據庫中的ID,避免了對字符串的查找操作,大大加速了對數據庫的訪問。而且也不會造成短網址的沖突,由于這些明顯的優點,實際應用中許多短網址服務都采用了這轉換算法。

由于這種方法生成短網址之前需要先得到數據庫中的ID,因此轉換之前需要先訪問一次數據庫。為避免并發性沖突,需要對數據庫加鎖,當同時訪問的用戶較多時,可能對數據庫造成較大壓力,因此大型短網址服務需要尤其注意負載均衡問題。

2.2 利用hash方法得到短網址

通過對轉換算法要求的分析,很容易想到使用hash算法進行轉換,MD5就是一種實用而且成熟的hash算法。其優點在于得到校驗碼長度固定,幾乎沒有沖突,缺點在于得到字符串長度為32字符,遠遠長于目前大多數短網址長度。因此,想要進行短網址轉換,必須在MD5算法基礎上縮短其字符串長度,具體算法可以總結為:

輸入:長網址URL。

輸出:短網址URL后綴。

1. 利用MD5加密算法將長網址加密長網址URL,得到長度為32個字符的字符串M,將M分為M1,M2,M3,M4四部分,每部分長度為8個字符。

2. 將Mi(1≤i≤4)與0x3fffffff做按位與操作,截取低30位,得到M′i。

3. 將M′i分成6段,每段長5位,作為索引在62個字符的字符集中取得字符,可以得到一個長度為6個字符的字符串Si。

4. 得到4個字符串S1,S2,S3,S4,隨機取其中一個,作為短網址URL后綴。

雖然MD5加密已經被破解,但日常使用中幾乎不會遇到沖突的情況,因此除非制造大量MD5沖突惡意攻擊,實際應用中遇到MD5沖突導致無法使用的情況基本不存在。使用該算法得到的短網址字符串幾乎是隨機的,由于MD5算法應用廣泛,函數調用方便,代碼書寫簡便,短地址生成速度也較快,因此這個方法還是比較實用的。

由于算法中對MD5加密得到的字符串進行了截取,最終得到的短網址長度固定為6個字符,則數據庫中共有n條記錄時,沖突概率可視為n/626,即n/56800235584,當記錄數能夠達到與1011相比較時,會出現較多沖突,而當記錄數遠遠小于這個數量級時,出現沖突概率極小[5]。

與MD5類似,其他hash算法也可以用來實現短網址轉換,如循環冗余檢驗算法CRC32,會生成32位校驗碼(MD5為128位),經過索引得到短網址,但由于CRC32算法本身沖突概率較大,所以只適合規模較小的短網址服務使用。

2 需求分析與總體設計

短網址服務一般附帶在社交網絡等其他服務中,用戶需要使用該服務時,輸入長網址,生成短網址。而出于安全性等方面的考慮,管理員需要能夠對已生成的短網址做查找、刪除、禁用等操作。綜合分析,系統應該包括管理員登錄,長短網址轉換,短網址管理等模塊。

2.1 管理員登錄模塊

普通用戶只需要長網址轉換為短網址的功能,因此不需要登錄。而管理員需要管理短網址,需要登錄功能以驗證其權限,登陸后顯示管理功能界面,并可以注銷登錄。管理員輸入用戶名和密碼后,登陸系統,可以管理一生成的短網址,并能夠注銷登陸。

圖1 管理員登錄流程圖Fig.1 Administrator login flowchart

圖2 管理員注銷登錄流程圖Fig.2 Administrator logout flowchart

2.2 長短網址轉換模塊

用戶直接輸入長網址,通過轉換算法生成短網址,展示給用戶,并且可以點擊短網址直接跳轉。用戶輸入長網址URL后,系統先在數據庫中查詢,如果該URL已經轉換過,就直接給出轉換后的短網址,否則進行長短網址轉換,得到短網址,存入數據庫中。

2.3 短網址管理模塊

管理員登錄后,進入短網址管理界面,管理員可以查找某一短網址是否存在,查找到的短網址可以進行刪除、禁用操作。

刪除操作刪掉數據庫中該條短網址的記錄,禁用操作不刪除記錄,將該條短網址標記,點擊該URL無法跳轉。

圖3 長短網址轉換流程圖Fig.3 Conversion from long URL to short flowchart

圖4 短網址管理流程圖Fig.4 Short URLs management flowchart

3 系統實現

在充分研究短網址服務的實現過程及相關技術的基礎上,可以實現一個局域網短網址系統。整個系統采用windows環境及Eclipes平臺下MySQL+Apache+ PHP開發,DNS服務器采用windows server 2003。長短網址轉換算法采用MD5加密實現,重定向過程采用Apache的偽靜態及PHP的301重定向實現。

3.1 數據庫設計

數據庫包含兩張表,表user_admin記錄管理員相關信息,包括管理員ID、用戶名、密碼等。

表long_to_short記錄了長短網址對應關系包括ID、長網址、短網址、禁用標志等。

表1 管理員信息表Tab.1 Administrator information table

表2 長短網址對應表Tab.2 Long URLs to short URLs table

3.2 長短網址轉換模塊

由于管理員登錄與短網址管理模塊實現比較簡單,這里主要介紹長短網址轉換模塊。其中包含主要函數有:

urlExists($longurl):檢查數據庫中記錄是否存在,參數為長網址;

selectByLong($longurl):通過長網址查找短網址后綴,參數為長網址;

selectByShort($shorturl):通過短網址后綴查找長網址,參數為短網址后綴;

insert($longurl,$shorturl):將記錄插入數據庫,參數分別為長網址和短網址后綴;

shorten($input):短網址轉換函數,參數為長網址,得到短網址后綴。函數主要實現了2.2中所述算法,PHP實現代碼如下:

3.3 重定向過程

點擊短網址鏈接后,首先發出DNS查詢請求,得到域名www.short.t對應ip后,訪問到web服務器根目錄,再進行URL跳轉,這個過程由Apache偽靜態+PHP301重定向完成。

1. DNS服務器設置

DNS服務器搭建在虛擬機中的windows server 2003系統下,設置正向查找區域short.t,主機為www,對應ip地址為局域網短網址服務主機的ip。

2. Apache偽靜態設置

在Apache設置中開啟mod_rewrite功能,并在站點目錄下添加文件.htaccess,其中內容為:

即:當訪問短網址無法找到文件時,將重定向至redirect.php文件。

在redirect.php中,通過提取短網址的后綴,可以在數據庫中找到對應的長網址,跳轉至該URL完成訪問,其中關鍵代碼為:

4 系統測試

采用黑盒測試方法,設計用例測試系統各功能。例如長短網址轉換功能測試結果如下:

圖5 長短網址轉換測試結果Fig.5 Test result of conversion from a long URL to a short URL

長網址被成功轉換為短網址,點擊短網址超鏈接可以跳轉至長網址指向網頁。

其他功能可以參照進行測試,結果證明系統功能完善,驗證了其可用性。

5 結語

本文從短網址服務在實際中的應用出發,研究了長短網址轉換的算法,對比了不同方法的優缺點,并用MySQL+Apache+PHP實現了一個局域網短網址系統,實現了長短網址轉換,短網址管理等功能。短網址服務在實際應用中還有很多實用的擴展功能,比如點擊量統計,自定義網址等[6],另外短網址在安全性上也存在一些值得研究的問題[7],這些都是下一步工作中需要解決的問題。

[1] Demetris Antoniades, Iasonas Polakis, Georgios Kontaxis, Elias Athanasopoulos, Sotiris Ioannidis, Evangelos P. Markatos, Thomas Karagiannis. we.b: The web of short URLs[A]. Proceedings of the 20th international conference on World Wide Web[C]. NY, US: ACM New York, 2011: 715-724

[2] Chris Grier, Kurt Thomas, Vern Paxson, Michael Zhang. @spam The Underground on 140 Characters or less [A]. Proceedings of the 17th ACM conference on Computer and communications security[C]. NY, US: ACM New York, 2010: 27-37.

[3] hcuk94. Phurl[OL]. https://github.com/hcuk94/phurl.

[4] 茅思雨. 短鏈接的秘密[J], 環球企業家, 2012, 12: 52-53

[5] Beiyeqingteng. 短址(short URL)原理及其實現[OL]. http:// blog.csdn.net/beiyeqingteng/article/details/7706010, 2012-07-01.

[6] 蔡岳峰. 網易短網址服務系統的設計與實現[D], 北京:北京交通大學, 2012.

[7] 成亦陳, 黃淑華. 惡意短鏈接欺騙的防護對策研究[J], 信息網絡安全, 2013, 7: 32-35

The Implementation of Short URL Service System and Research of The Related Techniques

GUO Yi-hua

(Institute of Network Technology, Beijing University of Posts and Telecommunications, Beijing, 100876)

With the development of social networking products such as weibo, ordinary web URLs seem too long to spread on the Internet, and error-prone. In some situation that the max number of the words are limited, long URLs even impede language expression. Therefore, the short URL service gradually rise. For many social networking platform, short URLs are almost indispensable. So whether domestic social networking such as sina weibo, renren, or social networks abroad such as Facebook, twitter all has their own short URL service. At the same time, a number of open source short URL service projects such as Phurl have also appeared. Generally, short URL service depends on other web service such as social network. However, for it is convenience, independent short URL service systems also have value. This paper mainly studied the short URL and related technology, summarizes the common long to short URL conversion algorithms. Then use PHP + MySQL + Apache to implement a short URL service system under LAN.

Computer network; Short URLs; Redirection; Conversion from long URLs to short URLs

TP393

A

10.3969/j.issn.1003-6970.2017.01.0017

郭一華(1991-),男,碩士研究生,主要研究方向:寬帶網技術。

猜你喜歡
數據庫服務系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
主站蜘蛛池模板: 人人澡人人爽欧美一区| 亚洲精品在线91| 亚洲香蕉久久| 伊人久久大香线蕉成人综合网| 亚洲国产成人自拍| 亚洲精品在线观看91| 本亚洲精品网站| 狼友视频一区二区三区| 55夜色66夜色国产精品视频| 国产精品区网红主播在线观看| 91欧美亚洲国产五月天| 国产精品极品美女自在线网站| 欧洲亚洲欧美国产日本高清| 欧美在线视频a| 亚洲综合中文字幕国产精品欧美| 高清久久精品亚洲日韩Av| 亚洲永久视频| 爆乳熟妇一区二区三区| a网站在线观看| 亚洲天堂久久| 国产精品2| 69av免费视频| 精品人妻一区无码视频| 中国一级特黄大片在线观看| 国产真实自在自线免费精品| 中文无码精品a∨在线观看| WWW丫丫国产成人精品| 国产JIZzJIzz视频全部免费| 免费99精品国产自在现线| 高潮爽到爆的喷水女主播视频| 国产免费人成视频网| 91精品国产综合久久不国产大片| 久久久久免费精品国产| 青青青亚洲精品国产| 青青青草国产| 国产人人射| 久久五月天综合| 国产精品久久久久婷婷五月| 黄色成年视频| av无码一区二区三区在线| 国产精品入口麻豆| 99在线视频精品| 热99精品视频| 国产一级毛片网站| 91蝌蚪视频在线观看| 亚洲日本一本dvd高清| 国产亚洲欧美另类一区二区| 五月天在线网站| 超清无码一区二区三区| 国产迷奸在线看| 久久久久人妻一区精品色奶水 | 女人18毛片一级毛片在线 | 激情乱人伦| 免费在线色| 99re这里只有国产中文精品国产精品 | 99免费视频观看| 亚洲最大福利视频网| 99人妻碰碰碰久久久久禁片| 亚洲国产精品日韩专区AV| 秋霞一区二区三区| 欧美怡红院视频一区二区三区| 国产精品漂亮美女在线观看| 午夜爽爽视频| 欧美全免费aaaaaa特黄在线| a亚洲天堂| 成人年鲁鲁在线观看视频| 久久中文字幕2021精品| 亚洲欧洲日产国产无码AV| 扒开粉嫩的小缝隙喷白浆视频| 国产一区二区在线视频观看| 国产精品毛片一区| 99青青青精品视频在线| 国产精品偷伦视频免费观看国产| 日韩精品资源| 亚洲综合久久成人AV| 69av在线| 亚洲精品视频网| 欧美va亚洲va香蕉在线| 国产乱人免费视频| 天天摸夜夜操| 99精品伊人久久久大香线蕉| 亚洲日本中文字幕乱码中文 |