本發(fā)明涉及計(jì)算機(jī)通信領(lǐng)域,尤其涉及一種可復(fù)用的網(wǎng)絡(luò)高效通信方法。
背景技術(shù):
現(xiàn)有網(wǎng)絡(luò)協(xié)議眾多,不同的協(xié)議適用不同的應(yīng)用場景,比如:http、smtp、ftp、imap、pop、snmp等。應(yīng)用開發(fā),要么選擇一種現(xiàn)有協(xié)議,在此基礎(chǔ)上開發(fā)網(wǎng)絡(luò)應(yīng)用,或者在此基礎(chǔ)上擴(kuò)展協(xié)議棧,實(shí)現(xiàn)某些特殊功能,比如:sip,smpp等在http基礎(chǔ)上擴(kuò)展,或者全部采用私有協(xié)議棧。但是,采用全私有協(xié)議棧進(jìn)行應(yīng)用開發(fā),工作量大,協(xié)議棧與應(yīng)用的耦合度高,不利于復(fù)用;http協(xié)議應(yīng)用最廣泛,但在局域網(wǎng)內(nèi)的通信效率不高,不適合作高頻度大數(shù)據(jù)量的數(shù)據(jù)通信。而http中為了維持會(huì)話信息,在用客戶端存儲cookie的方式,cookie一旦盜用,服務(wù)端無法判斷真?zhèn)危o數(shù)據(jù)安全性帶來隱患。而目前大部分網(wǎng)站采用的各種技術(shù)防止盜圖,防止機(jī)器登錄爬取數(shù)據(jù)的方式層出不窮,但是沒有一種特別有效的方法避免。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于通過一種可復(fù)用的網(wǎng)絡(luò)高效通信方法,來解決以上背景技術(shù)部分提到的問題。
為達(dá)此目的,本發(fā)明采用以下技術(shù)方案:
一種可復(fù)用的網(wǎng)絡(luò)高效通信方法,該方法包括如下步驟:
s101、定義通信協(xié)議(wdp),兼容http服務(wù)端代理;
s102、初始化客戶端,客戶端發(fā)送自有公鑰pubkey1給服務(wù)器端,獲取服務(wù)器端公鑰pubkey2和客戶端的id號clientid;
s103、每次創(chuàng)建鏈接后,客戶端發(fā)起驗(yàn)證其合法性并生成一個(gè)隨機(jī)的獲取3des加密key,返回客戶端;
s104、客戶端和服務(wù)器端發(fā)起數(shù)據(jù)通信;
s105、客戶端發(fā)起斷開鏈接。
特別地,所述步驟s101中定義通信協(xié)議,具體包括:所述通信協(xié)議分為數(shù)據(jù)層和應(yīng)用層;所述數(shù)據(jù)層用于對應(yīng)用數(shù)據(jù)包進(jìn)行封裝,包括標(biāo)識、版本、crc、數(shù)據(jù)長度、數(shù)據(jù)項(xiàng)。
特別地,所述通信協(xié)議的協(xié)議包的定義為:包頭,長度,命令,數(shù)據(jù)組成。
特別地,所述協(xié)議包的包頭定義為:1字節(jié),從高位到低位:協(xié)議標(biāo)識:2bits,固定值01;加密標(biāo)識:1bit,1加密,0未加密;壓縮標(biāo)識:1bit,1壓縮,0未壓縮;保留:4bits。
特別地,所述協(xié)議包的長度定義為:4字節(jié),數(shù)據(jù)包的長度;所述協(xié)議包的數(shù)據(jù)組成定義為:json數(shù)據(jù)串加二進(jìn)制流。
特別地,所述應(yīng)用層采用json數(shù)據(jù)結(jié)構(gòu),請求參數(shù)封裝兼容http請求參數(shù),cookie/session信息存儲在服務(wù)器端。
特別地,所述步驟s102還包括:每個(gè)客戶端只調(diào)用一次服務(wù)器端公鑰pubkey2和客戶端的id號clientid,服務(wù)器端保存生成的客戶端的id號clientid;客戶端保存服務(wù)器端公鑰pubkey2和客戶端的id號clientid。
本發(fā)明提出的可復(fù)用的網(wǎng)絡(luò)高效通信方法通信效率高,既適合局域網(wǎng)也適合廣域網(wǎng),上層兼容http應(yīng)用,使得應(yīng)用模塊復(fù)用提高,而cookie信息存在服務(wù)器端,提高了請求的安全性,增大了盜用cookie模仿客戶端的難度。
附圖說明
圖1為本發(fā)明實(shí)施例提供的可復(fù)用的網(wǎng)絡(luò)高效通信方法流程圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步說明??梢岳斫獾氖?,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部內(nèi)容。除非另有定義,本文所使用的所有的技術(shù)和科學(xué)術(shù)語與屬于本發(fā)明的技術(shù)領(lǐng)域的技術(shù)人員通常理解的含義相同。本文中在本發(fā)明的說明書中所使用的術(shù)語只是為了描述具體的實(shí)施例的目的,不是旨在于限制本發(fā)明。本文所使用的術(shù)語“及/或”包括一個(gè)或多個(gè)相關(guān)的所列項(xiàng)目的任意的和所有的組合。
請參照圖1所示,圖1為本發(fā)明實(shí)施例提供的可復(fù)用的網(wǎng)絡(luò)高效通信方法流程圖。
本實(shí)施例中可復(fù)用的網(wǎng)絡(luò)高效通信方法具體包括如下步驟:
s101、定義通信協(xié)議(wdp),兼容http服務(wù)端代理。在本實(shí)施例中所述通信協(xié)議分為數(shù)據(jù)層和應(yīng)用層;所述數(shù)據(jù)層用于對應(yīng)用數(shù)據(jù)包進(jìn)行封裝,包括標(biāo)識、版本、crc、數(shù)據(jù)長度、數(shù)據(jù)項(xiàng)。所述應(yīng)用層采用json數(shù)據(jù)結(jié)構(gòu),請求參數(shù)封裝兼容http請求參數(shù),cookie/session信息存儲在服務(wù)器端。所述通信協(xié)議的協(xié)議包的定義為:包頭,長度,命令,數(shù)據(jù)組成。所述協(xié)議包的包頭定義為:1字節(jié),從高位到低位:協(xié)議標(biāo)識:2bits,固定值01;加密標(biāo)識:1bit,1加密,0未加密;壓縮標(biāo)識:1bit,1壓縮,0未壓縮;保留:4bits。所述協(xié)議包的長度定義為:4字節(jié),數(shù)據(jù)包的長度;所述協(xié)議包的數(shù)據(jù)組成定義為:json數(shù)據(jù)串加二進(jìn)制流。
s102、初始化客戶端,客戶端發(fā)送自有公鑰pubkey1給服務(wù)器端,獲取服務(wù)器端公鑰pubkey2和客戶端的id號clientid。其中,每個(gè)客戶端只調(diào)用一次服務(wù)器端公鑰pubkey2和客戶端的id號clientid,服務(wù)器端保存生成的客戶端的id號clientid;客戶端保存服務(wù)器端公鑰pubkey2和客戶端的id號clientid。
s103、每次創(chuàng)建鏈接后,客戶端發(fā)起驗(yàn)證其合法性并生成一個(gè)隨機(jī)的獲取3des加密key,返回客戶端。
s104、客戶端和服務(wù)器端發(fā)起數(shù)據(jù)通信。
s105、客戶端發(fā)起斷開鏈接。
本發(fā)明提出的技術(shù)方案通信效率高,既適合局域網(wǎng)也適合廣域網(wǎng),上層兼容http應(yīng)用,使得應(yīng)用模塊復(fù)用提高,而cookie信息存在服務(wù)器端,提高了請求的安全性,增大了盜用cookie模仿客戶端的難度。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(read-onlymemory,rom)或隨機(jī)存儲記憶體(randomaccessmemory,ram)等。
注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會(huì)理解,本發(fā)明不限于這里所述的特定實(shí)施例,對本領(lǐng)域技術(shù)人員來說能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會(huì)脫離本發(fā)明的保護(hù)范圍。因此,雖然通過以上實(shí)施例對本發(fā)明進(jìn)行了較為詳細(xì)的說明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。