本發(fā)明涉及計算機和計算機軟件技術領域,特別地涉及一種在瀏覽器中處理短鏈接的方法和裝置。
背景技術:
在時下的互聯(lián)網(wǎng)開發(fā)中,在基于用戶原創(chuàng)內容UGC(User Generated Content)或基于位置服務LBS(Location Based Service)的web或移動端產(chǎn)品的內容中多見超鏈接(又叫長鏈接)。但是,大多數(shù)超鏈接的字符長度過長且明文顯示,不利于傳輸安全和數(shù)據(jù)存儲,同時也不利于搜索引擎的抓取,繼而影響到搜索引擎優(yōu)化SEO(Search Engine Optimization)。
為了解決上述的問題,大部分的開發(fā)團隊是通過使用命名規(guī)則以促使鏈接盡可能地縮短,但是鏈接的長度仍不能滿足最優(yōu)化要求。另外,以百度云盤等為代表的較多平臺,采用的多為服務端腳本實現(xiàn)的域名系統(tǒng)DNS(Domain Name System)重定向的方案,其對服務端的攔截和解析能力較為依賴。并且,現(xiàn)有的方案在對超鏈接進行重定向時,會直接跳轉至新請求的頁面,因此會有突兀感。
根據(jù)前述的描述可以看出,伴隨著超鏈接的逐步增多,為現(xiàn)有的web或移動端產(chǎn)品帶來了極大的不便,主要表現(xiàn)在:
1、鏈接在傳輸過程中明文,且過長;
2、過長的鏈接不利于搜索引擎抓?。?/p>
3、過長的鏈接不利于數(shù)據(jù)存儲和讀取的高效進行;
4、過于依賴服務端腳本及DNS重定向解析;
5、短鏈接在加載并重定向過程中,頁面會有突兀感。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明提供一種在瀏覽器中處理短鏈接的方法和裝置,能夠解決鏈接在傳輸過程因字符串過長造成的效率低下和在存儲環(huán)節(jié)中因過長造成的讀寫性能低下問題,提高了傳輸環(huán)節(jié)的安全性,避免了鏈接在變化跳轉時的過多等待和用戶體驗上的突兀感。
為實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種在瀏覽器中處理短鏈接的方法。
一種在瀏覽器中處理短鏈接的方法,包括:接收短鏈接;根據(jù)預定的映射關系確定所述短鏈接對應的長鏈接,當存在對應的長鏈接,則根據(jù)該長鏈接加載對應的頁面,其中,所述預定的映射關系定義了短鏈接和長鏈接的對應關系,并且短鏈接通過索引關聯(lián)到其對應的長鏈接。
可選地,當針對接收的短鏈接,不存在對應的長鏈接,則顯示報錯頁面或保持先前加載的頁面。
可選地,在根據(jù)預定的映射關系確定所述短鏈接對應的長鏈接的過程中向用戶發(fā)出提示。
可選地,對于一給定的長鏈接,其對應的短鏈接是該長鏈接的哈希值,所述哈希值通過給定的哈希函數(shù)獲得。
可選地,所述短鏈接和所述長鏈接及其映射關系被存儲到數(shù)據(jù)庫。
可選地,所述短鏈接和所述長鏈接及其映射關系被存儲到數(shù)據(jù)庫時,通過MD5進行加密處理。
根據(jù)本發(fā)明的另一方面,提供了一種在瀏覽器中處理短鏈接的裝置。
一種在瀏覽器中處理短鏈接的裝置,包括:短鏈接接收模塊,用于接收短鏈接;短鏈接處理模塊,用于根據(jù)預定的映射關系確定所述短鏈接對應的長鏈接,當存在對應的長鏈接,則根據(jù)該長鏈接加載對應的頁面,其中,所述預定的映射關系定義了短鏈接和長鏈接的對應關系,并且短鏈接通過索引關聯(lián)到其對應的長鏈接。
可選地,當針對接收的短鏈接,不存在對應的長鏈接,則顯示報錯頁面或保持先前加載的頁面。
可選地,還包括:提示模塊,用于在根據(jù)預定的映射關系確定所述短鏈接對應的長鏈接的過程中向用戶發(fā)出提示。
可選地,對于一給定的長鏈接,其對應的短鏈接是該長鏈接的哈希值,所述哈希值通過給定的哈希函數(shù)獲得。
可選地,所述短鏈接和所述長鏈接及其映射關系被存儲到數(shù)據(jù)庫。
可選地,所述短鏈接和所述長鏈接及其映射關系被存儲到數(shù)據(jù)庫時,通過MD5進行加密處理。
根據(jù)本發(fā)明的又一方面,提供了一種在瀏覽器中處理短鏈接的裝置。
一種在瀏覽器中處理短鏈接的裝置,包括:存儲器和處理器,其中,所述存儲器存儲指令;所述處理器執(zhí)行所述指令用于:接收短鏈接;根據(jù)預定的映射關系確定所述短鏈接對應的長鏈接,當存在對應的長鏈接,則根據(jù)該長鏈接加載對應的頁面,其中,所述預定的映射關系定義了短鏈接和長鏈接的對應關系,并且短鏈接通過索引關聯(lián)到其對應的長鏈接。
根據(jù)本發(fā)明的技術方案,通過將長鏈接加工處理成符合條件的短鏈接,并根據(jù)短鏈接查找并訪問對應的長鏈接,可以解決鏈接在傳輸過程因字符串過長造成的效率低下和在存儲環(huán)節(jié)中因過長而造成的讀寫性能低下問題。本發(fā)明中,根據(jù)預定的規(guī)則,通過哈希散列算法對任意目標長鏈接進行短鏈接的加工生產(chǎn),并將長鏈接、短鏈接及其映射關系存儲到數(shù)據(jù)存儲模塊中,并且在數(shù)據(jù)存儲時,還可以預先使用MD5算法進行加密處理,最后通過中間頁面進行鏈接的精準重定向,既提高了傳輸環(huán)節(jié)的安全性,同時利于搜索引擎抓取,并且避免了鏈接在變化跳轉時的過多等待和用戶體驗上的突兀感。
附圖說明
附圖用于更好地理解本發(fā)明,不構成對本發(fā)明的不當限定。其中:
圖1是根據(jù)本發(fā)明實施例的在瀏覽器中處理短鏈接的方法的主要步驟示意圖;
圖2是根據(jù)本發(fā)明實施例的系統(tǒng)架構圖;
圖3是根據(jù)本發(fā)明實施例的實現(xiàn)流程示意圖;
圖4是本發(fā)明一個具體實施例的實現(xiàn)過程示意圖;
圖5是根據(jù)本發(fā)明一個實施例的在瀏覽器中處理短鏈接的裝置的主要模塊示意圖;
圖6是根據(jù)本發(fā)明另一實施例的在瀏覽器中處理短鏈接的裝置的主要模塊示意圖。
具體實施方式
以下結合附圖對本發(fā)明的示范性實施例做出說明,其中包括本發(fā)明實施例的各種細節(jié)以助于理解,應當將它們認為僅僅是示范性的。因此,本領域普通技術人員應當認識到,可以對這里描述的實施例做出各種改變和修改,而不會背離本發(fā)明的范圍和精神。同樣,為了清楚和簡明,以下的描述中省略了對公知功能和結構的描述。
圖1是根據(jù)本發(fā)明實施例的在瀏覽器中處理短鏈接的方法的主要步驟示意圖。如圖1所示,本發(fā)明的在瀏覽器中處理短鏈接的方法主要包括如下的步驟S11至步驟S12。
步驟S11:接收短鏈接;
步驟S12:根據(jù)預定的映射關系確定短鏈接對應的長鏈接,當存在對應的長鏈接,則根據(jù)該長鏈接加載對應的頁面,其中,預定的映射關系定義了短鏈接和長鏈接的對應關系,并且短鏈接通過索引關聯(lián)到其對應的長鏈接。
根據(jù)本發(fā)明的技術方案,當針對接收的短鏈接,不存在對應的長鏈接,則顯示報錯頁面或保持先前加載的頁面。
并且,在根據(jù)預定的映射關系確定所述短鏈接對應的長鏈接的過程中向用戶發(fā)出提示。
其中,對于一給定的長鏈接,其對應的短鏈接是該長鏈接的哈希值,所述哈希值通過給定的哈希函數(shù)獲得。所述短鏈接和所述長鏈接及其映射關系被存儲到數(shù)據(jù)庫。
此外,所述短鏈接和所述長鏈接及其映射關系被存儲到數(shù)據(jù)庫時,通過MD5進行加密處理。
圖2是根據(jù)本發(fā)明實施例的系統(tǒng)架構圖。為了解決鏈接在傳輸過程因字符串過長造成的效率低下和在存儲環(huán)節(jié)中因過長而造成的讀寫性能低下問題,本發(fā)明將長鏈接加工處理成符合條件的短鏈接,并根據(jù)短鏈接查找并訪問對應的長鏈接。如圖2所示,本發(fā)明實施例的系統(tǒng)主要包括:短鏈接加工模塊、短鏈接分轉模塊、加解密模塊和Redis模塊。下面介紹各個模塊的功能實現(xiàn)。
短鏈接加工模塊:基于預定的算法,例如哈希(散列)算法將長鏈接轉換和生產(chǎn)為滿足預設要求的短鏈接,從而將長鏈接和生成的短鏈接建立一一對應的映射關系。然后,為生成的短鏈接建立映射索引,并將短鏈接與長鏈接和兩者的映射關系存儲到數(shù)據(jù)存儲模塊。同時,該模塊還可以負責完成根據(jù)短鏈接索引出長鏈接的工作。
短鏈接分轉模塊:該模塊可被實現(xiàn)為一個中轉頁面,通過執(zhí)行查詢腳本,向數(shù)據(jù)存儲模塊發(fā)起詢問,并獲取精準查詢并匹配的長鏈接以進行加載。同時,該模塊在加載長鏈接的過程中會予以用戶提示(例如“正在進行頁面跳轉,請等待”)并告知系統(tǒng)正在匹配跳轉。如此,即可克服由于頁面的突然跳轉所帶來的突兀感。
加解密模塊:為了保證短鏈接和長鏈接的安全性,在上述的存儲和讀寫過程中,還可以使用MD5對短鏈接和長鏈接進行加解密的處理,從而可以避免出現(xiàn)明文字符鏈接。
數(shù)據(jù)存儲模塊,可使用的數(shù)據(jù)庫例如:Redis、SQL server、MySQL或MongoDB等,以用于數(shù)據(jù)的存儲和讀寫,以便將長鏈接與生成的短鏈接建立映射索引,并將短鏈接與長鏈接進行存儲。同時該模塊也負責配合完成根據(jù)短鏈接索引出長鏈接的工作。
圖3是根據(jù)本發(fā)明實施例的實現(xiàn)流程示意圖。如圖3所示,短鏈接加工模塊根據(jù)預定的規(guī)則,通過哈希散列算法對任意目標長鏈接進行短鏈接的加工生產(chǎn),并將長鏈接、短鏈接及其映射關系存儲到數(shù)據(jù)存儲模塊(例如:Redis)中,在數(shù)據(jù)存儲時,還可以預先使用MD5算法進行加密處理。
當瀏覽器通過HTTP請求或HTTPS請求訪問短鏈接時,瀏覽器即開始加載該特定的短鏈接,待加載完畢后,即顯示為短鏈接分轉頁面。
短鏈接分轉頁面,在短鏈加載完成后,會提示用戶正在前往目標資源。此時,短鏈接分轉頁面中的JS腳本開始向數(shù)據(jù)存儲模塊(例如:Redis)發(fā)起詢問,數(shù)據(jù)存儲模塊根據(jù)短鏈接嘗試索引對應的長鏈接。如果索引到有效的長鏈接,則將目標長鏈接返回至短鏈接分轉頁面,以便短鏈接分轉頁面可以根據(jù)返回的長鏈接再次進行加載,并在加載完成后顯示長鏈接對應的頁面內容;如果未能索引到有效的長鏈接,則可能包含如下兩種情況:
情況1、該短鏈接為初始化打開的短連接,也就是瀏覽器之前并無其他加載內容,此時會給用戶展示一個錯誤頁面,提示資源找不到,稍后重試;
情況2、如果是瀏覽器本身就有一些頁面加載,通過點擊了某一個按鈕觸發(fā)了這個短鏈接繼而有映射動作,但未能從數(shù)據(jù)存儲模塊中索引到有效鏈接,則保持瀏覽器之前加載的頁面不變,也就是瀏覽器不做跳轉。
圖4是本發(fā)明一個具體實施例的實現(xiàn)過程示意圖。如圖4所示,當通過瀏覽器訪問短鏈接,如short.abc.com/atf時,瀏覽器會將該短鏈接對應的頁面加載并顯示,之后,短鏈接分轉模塊將根據(jù)該短鏈接從數(shù)據(jù)存儲模塊Redis中檢索對應的長鏈接,例如可以檢索到對應的長鏈接為:http://abc.ef.com/qwer5678%2344hkfkf。則將檢索到的長鏈接返回至短鏈接分轉頁面,以加載對應的內容并顯示。如此,即可通過中間頁面的查詢,實現(xiàn)精準重定向。
本發(fā)明的方案可同時適用于PC/iOS/Android系統(tǒng)下的web瀏覽器應用中,同時,降低了開發(fā)者對長鏈接存儲時對數(shù)據(jù)庫的開銷,提高了存儲時的便捷性,對鏈接傳播時的安全存儲以及搜索引擎友好性帶來的極大提升。
圖5是根據(jù)本發(fā)明一個實施例的在瀏覽器中處理短鏈接的裝置的主要模塊示意圖。如圖5所示,本發(fā)明的在瀏覽器中處理短鏈接的裝置50主要包括短鏈接接收模塊51和短鏈接處理模塊52。
短鏈接接收模塊51用于接收短鏈接;短鏈接處理模塊52用于根據(jù)預定的映射關系確定所述短鏈接對應的長鏈接,當存在對應的長鏈接,則根據(jù)該長鏈接加載對應的頁面,其中,所述預定的映射關系定義了短鏈接和長鏈接的對應關系,并且短鏈接通過索引關聯(lián)到其對應的長鏈接。
根據(jù)本發(fā)明的技術方案,當針對接收的短鏈接,不存在對應的長鏈接,則顯示報錯頁面或保持先前加載的頁面。
另外,本發(fā)明的在瀏覽器中處理短鏈接的裝置50還可以包括提示模塊,用于在根據(jù)預定的映射關系確定所述短鏈接對應的長鏈接的過程中向用戶發(fā)出提示。
其中,對于一給定的長鏈接,其對應的短鏈接是該長鏈接的哈希值,所述哈希值通過給定的哈希函數(shù)獲得。所述短鏈接和所述長鏈接及其映射關系被存儲到數(shù)據(jù)庫。
并且,所述短鏈接和所述長鏈接及其映射關系被存儲到數(shù)據(jù)庫時,通過MD5進行加密處理。
圖6是根據(jù)本發(fā)明另一實施例的在瀏覽器中處理短鏈接的裝置的主要模塊示意圖。如圖6所示,本發(fā)明的在瀏覽器中處理短鏈接的裝置60主要包括存儲器61和處理器62。
其中,存儲器61用于存儲指令;處理器62執(zhí)行所述指令用于:接收短鏈接;根據(jù)預定的映射關系確定所述短鏈接對應的長鏈接,當存在對應的長鏈接,則根據(jù)該長鏈接加載對應的頁面,其中,所述預定的映射關系定義了短鏈接和長鏈接的對應關系,并且短鏈接通過索引關聯(lián)到其對應的長鏈接。
根據(jù)本發(fā)明實施例的技術方案,通過將長鏈接加工處理成符合條件的短鏈接,并根據(jù)短鏈接查找并訪問對應的長鏈接,可以解決鏈接在傳輸過程因字符串過長造成的效率低下和在存儲環(huán)節(jié)中因過長而造成的讀寫性能低下問題。本發(fā)明中,根據(jù)預定的規(guī)則,通過哈希散列算法對任意目標長鏈接進行短鏈接的加工生產(chǎn),并將長鏈接、短鏈接及其映射關系存儲到數(shù)據(jù)存儲模塊中,并且在數(shù)據(jù)存儲時,還可以預先使用MD5算法進行加密處理,最后通過中間頁面進行鏈接的精準重定向,既提高了傳輸環(huán)節(jié)的安全性,同時利于搜索引擎抓取,并且避免了鏈接在變化跳轉時的過多等待和用戶體驗上的突兀感。
上述具體實施方式,并不構成對本發(fā)明保護范圍的限制。本領域技術人員應該明白的是,取決于設計要求和其他因素,可以發(fā)生各種各樣的修改、組合、子組合和替代。任何在本發(fā)明的精神和原則之內所作的修改、等同替換和改進等,均應包含在本發(fā)明保護范圍之內。