一種用于維持長連接的方法、裝置與設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種用于維持長連接的技術(shù)。
【背景技術(shù)】
[0002]HTTP長連接是指基于一個(gè)TCP連接來發(fā)送或接收多個(gè)HTTP請求。HTTP長連接具有多個(gè)優(yōu)點(diǎn):減少建立和拆除TCP連接的次數(shù),降低HTTP請求過程中的網(wǎng)絡(luò)總耗時(shí);降低服務(wù)器和終端設(shè)備的CPU利用率;降低服務(wù)器和終端設(shè)備的網(wǎng)絡(luò)I/O開銷;提高服務(wù)器處理HTTP請求的速度。
[0003]由于服務(wù)器需要長時(shí)間維護(hù)長連接的狀態(tài)信息,HTTP長連接會增加服務(wù)器的內(nèi)存使用率??紤]到HTTP長連接的以上優(yōu)點(diǎn),尤其是在降低建立連接的網(wǎng)絡(luò)耗時(shí)方面的優(yōu)勢(在慢速無線網(wǎng)絡(luò)如2G、3G、4G、WiFi中,http長連接能夠顯著降低網(wǎng)絡(luò)總耗時(shí)),HTTP長連接目前已經(jīng)成為無線應(yīng)用性能優(yōu)化的主要方法之一,目前各主流Web服務(wù)器和瀏覽器都支持HTTP長連接,HTTP長連接被越來越廣泛地應(yīng)用在在無線B/S應(yīng)用中。其中,長連接復(fù)用率通過下式來定義:
[0004]長連接復(fù)用率=復(fù)用的HTTP請求數(shù)/用戶總的HTTP請求數(shù)
[0005]從上式可以看出長連接復(fù)用率取決于被復(fù)用的HTTP請求個(gè)數(shù),而被復(fù)用的HTTP請求個(gè)數(shù)主要取決于服務(wù)器或中間代理服務(wù)器的長連接維持時(shí)間,長連接維持時(shí)間越長,HTTP請求復(fù)用該連接的幾率就越高。目前長連接的維持方式主要通過超時(shí)機(jī)制,即通過Web服務(wù)器、瀏覽器、中間代理服務(wù)器的長連接超時(shí)值等一系列參數(shù)來控制長連接維持的時(shí)間。由于各類服務(wù)器和瀏覽器的超時(shí)相關(guān)參數(shù)設(shè)置差別較大、Web服務(wù)器及中間代理服務(wù)器的超時(shí)設(shè)置不協(xié)調(diào)都會導(dǎo)致長連接不能夠被復(fù)用或者復(fù)用率較低,因此,雖然HTTP長連接這一特性被主流瀏覽器和Web服務(wù)器所廣泛支持,但是網(wǎng)絡(luò)中的連接復(fù)用率并不理想。
[0006]現(xiàn)有技術(shù)中,支持HTTP長連接以及提升連接復(fù)用率的方法主要有以下幾種:
[0007]I)目前網(wǎng)絡(luò)中仍有一部分較舊的Web服務(wù)器和瀏覽器不支持HTTP1.1協(xié)議,因而默認(rèn)情況下也不支持HTTP長連接特性,對于這類Web服務(wù)器和瀏覽器,可以通過在HTTP頭部中手動(dòng)添加Connect1n:ke印-alive字段來強(qiáng)制使其支持HTTP長連接,即修改HTTP頭部信息使其支持HTTP長連接。
[0008]2)對于大部分支持HTTP1.1協(xié)議的Web服務(wù)器和瀏覽器,瀏覽器在發(fā)送HTTP請求時(shí)頭部缺省帶有Connect1n:keep-alive字段,表明已經(jīng)對HTTP長連接給予了支持。這種情況下,長連接復(fù)用率主要取決于長連接的維持狀況。目前長連接的維持主要通過服務(wù)器的超時(shí)機(jī)制來控制,長連接的復(fù)用主要受超時(shí)時(shí)間、每個(gè)長連接上服務(wù)的最大連接數(shù)等參數(shù)決定,因此,通過優(yōu)化服務(wù)器、瀏覽器和中間代理服務(wù)器的長連接相關(guān)參數(shù)配置來提升連接復(fù)用率。但是,不同Web服務(wù)器和瀏覽器的長連接相關(guān)參數(shù)設(shè)置差別較大,例如IE8瀏覽器的超時(shí)時(shí)間為60秒,Chrome瀏覽器的超時(shí)時(shí)間為45秒,Apache服務(wù)器的超時(shí)時(shí)間缺省為5s,由于各類服務(wù)器、瀏覽器、中間代理服務(wù)器的長連接相關(guān)參數(shù)差別較大,優(yōu)化服務(wù)器和瀏覽器的長連接相關(guān)參數(shù)配置是個(gè)端到端的工程,且往往和用戶訪問模式和服務(wù)器負(fù)載情況動(dòng)態(tài)相關(guān),難以做到精確配置,因此,目前無線應(yīng)用的連接復(fù)用率仍然不理想。
[0009]3)強(qiáng)制修改客戶端發(fā)送的TCP連接關(guān)閉請求,強(qiáng)制使其保持連接。強(qiáng)制修改TCP連接關(guān)閉的方法需要客戶端瀏覽器的修改權(quán)限,但大部分無線應(yīng)用并無此權(quán)限,因此,該方式的可行性較低。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的目的是提供一種用于維持長連接的方法、裝置與設(shè)備。
[0011]根據(jù)本發(fā)明的一個(gè)方面,提供了一種在用戶設(shè)備中用于維持長連接的方法,其中,該方法包括:
[0012]通過應(yīng)用客戶端向網(wǎng)絡(luò)設(shè)備發(fā)送HTTP訪問請求;
[0013]接收所述網(wǎng)絡(luò)設(shè)備返回的與所述HTTP訪問請求相適應(yīng)的長連接維持腳本;
[0014]基于所述長連接維持腳本,向所述網(wǎng)絡(luò)設(shè)備發(fā)送長連接維持請求,并接收所述網(wǎng)絡(luò)設(shè)備響應(yīng)于所述長連接維持請求返回的長連接維持結(jié)果。
[0015]根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種在網(wǎng)絡(luò)設(shè)備中輔助用于維持長連接的方法,其中,該方法包括:
[0016]根據(jù)接收到的來自用戶設(shè)備的通過應(yīng)用客戶端發(fā)送的HTTP訪問請求,確定與所述HTTP訪問請求相適應(yīng)的長連接維持腳本;
[0017]將響應(yīng)于所述HTTP訪問請求的訪問結(jié)果頁面與所述長連接維持腳本發(fā)送至所述用戶設(shè)備;
[0018]接收來自所述用戶設(shè)備的通過應(yīng)用客戶端發(fā)送的長連接維持請求,并響應(yīng)于所述長連接維持請求向所述用戶設(shè)備返回長連接維持結(jié)果,其中,所述長連接維持請求基于所述長連接維持腳本生成。
[0019]根據(jù)本發(fā)明的又一個(gè)方面,還提供了一種在用戶設(shè)備中用于維持長連接的裝置,其中,該裝置包括:
[0020]用于通過應(yīng)用客戶端向網(wǎng)絡(luò)設(shè)備發(fā)送HTTP訪問請求的裝置;
[0021]用于接收所述網(wǎng)絡(luò)設(shè)備返回的與所述HTTP訪問請求相適應(yīng)的長連接維持腳本的裝置;
[0022]用于基于所述長連接維持腳本,向所述網(wǎng)絡(luò)設(shè)備發(fā)送長連接維持請求,并接收所述網(wǎng)絡(luò)設(shè)備響應(yīng)于所述長連接維持請求返回的長連接維持結(jié)果的裝置。
[0023]根據(jù)本發(fā)明的再一個(gè)方面,還提供了一種在網(wǎng)絡(luò)設(shè)備中輔助用于維持長連接的裝置,其中,該裝置包括:
[0024]用于根據(jù)接收到的來自用戶設(shè)備的通過應(yīng)用客戶端發(fā)送的HTTP訪問請求,確定與所述HTTP訪問請求相適應(yīng)的長連接維持腳本的裝置;
[0025]用于將響應(yīng)于所述HTTP訪問請求的訪問結(jié)果頁面與所述長連接維持腳本發(fā)送至所述用戶設(shè)備的裝置;
[0026]用于接收來自所述用戶設(shè)備的通過應(yīng)用客戶端發(fā)送的長連接維持請求,并響應(yīng)于所述長連接維持請求向所述用戶設(shè)備返回長連接維持結(jié)果,其中,所述長連接維持請求基于所述長連接維持腳本生成的裝置。
[0027]與現(xiàn)有技術(shù)相比,本發(fā)明中通過網(wǎng)絡(luò)設(shè)備向用戶設(shè)備提供與長連接維持腳本,以使得用戶設(shè)備可持續(xù)地向網(wǎng)絡(luò)設(shè)備發(fā)送長連接維持請求以用于維持網(wǎng)絡(luò)設(shè)備與用戶設(shè)備之間的長連接,由于長連接維持腳本與用戶設(shè)備發(fā)送的HTTP訪問請求相適應(yīng),因此該長連接維持腳本可有效地保證維持長連接的可靠性,從而達(dá)到提高長連接復(fù)用率的目的。
【附圖說明】
[0028]通過閱讀參照以下附圖所作的對非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會變得更明顯:
[0029]圖1示出根據(jù)本發(fā)明一個(gè)方面的用于維持長連接的方法流程圖;
[0030]圖2示出根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的用于維持長連接的方法流程圖;
[0031]圖3示出根據(jù)本發(fā)明另一個(gè)方面的用于維持長連接的用戶設(shè)備及用于維持長連接的網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)示意圖;
[0032]圖4示出根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的用于維持長連接的用戶設(shè)備及用于維持長連接的網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)示意圖。
[0033]附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
【具體實(shí)施方式】
[0034]下面結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)描述。
[0035]圖1示出根據(jù)本發(fā)明一個(gè)方面的用于維持長連接的方法流程圖。
[0036]根據(jù)本發(fā)明的方法包括由用戶設(shè)備執(zhí)行的步驟S1110、步驟S1120和步驟S1130,以及由網(wǎng)絡(luò)設(shè)備執(zhí)行的步驟S1210、步驟S1220和步驟S1230。
[0037]其中,所述網(wǎng)絡(luò)設(shè)備包括但不限于單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器組成的服務(wù)器組或基于云計(jì)算(Cloud Computing)的由大量主機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成的云,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)超級虛擬計(jì)算機(jī)。
[0038]其中,所述用戶設(shè)備包括但不限于任何一種可與用戶通過鍵盤、鼠標(biāo)、遙控器、觸摸板、或聲控設(shè)備等方式進(jìn)行人機(jī)交互的電子產(chǎn)品,例如,個(gè)人計(jì)算機(jī)、平板電腦、智能手機(jī)、PDA等ο
[0039]其中,所述用戶設(shè)備及網(wǎng)絡(luò)設(shè)備所處的網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、VPN網(wǎng)絡(luò)等。
[0040]需要說明的是,所述用戶設(shè)備、網(wǎng)絡(luò)設(shè)備以及網(wǎng)絡(luò)僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的用戶設(shè)備、網(wǎng)絡(luò)設(shè)備以及網(wǎng)絡(luò)如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。
[0041 ] 參照圖1,在步驟SI 110中,用戶設(shè)備通過應(yīng)用客戶端向網(wǎng)絡(luò)設(shè)備發(fā)送HTTP訪問請求。
[0042]其中,所述HTTP訪問請求包括應(yīng)用客戶端所處網(wǎng)絡(luò)的網(wǎng)絡(luò)類型,如移動(dòng)網(wǎng)絡(luò)GPRS, WSCDMA, TD-SCDMA, LTE等,以及WIFI等;以及應(yīng)用客戶端類型,如瀏覽器類型,可包括:Safari瀏覽器、QQ瀏覽器、