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