>[0029]d)若HTTP響應(yīng)報(bào)文使用了多個(gè)TCP數(shù)據(jù)包,并且未使用chunked編碼方式,則在匯集HTTP響應(yīng)報(bào)文所包含的所有TCP數(shù)據(jù)包后,通過(guò)TCP數(shù)據(jù)包重組獲得完整的HTTP響應(yīng)報(bào)文。然后,根據(jù)報(bào)文是否經(jīng)過(guò)GZIP壓縮的判斷結(jié)果,在必要情況下進(jìn)行GZIP解壓縮,最終得到HTTP報(bào)文的負(fù)載內(nèi)容,并利用正則表達(dá)式獲取HTTP負(fù)載中包含的文件下載URL地址(如果該地址在HTTP報(bào)文負(fù)載中確實(shí)存在的話(huà))。在獲得所有所需的行為特征信息后終止所有的數(shù)據(jù)包抓取與分析工作。
[0030]2)服務(wù)訪問(wèn)行為特征存儲(chǔ)
[0031]對(duì)于電子資源檢索服務(wù)而言,服務(wù)訪問(wèn)行為特征的核心是檢索過(guò)程中所產(chǎn)生的包含檢索字符串的HTTP報(bào)文的頭部信息及可能存在的POST表單信息。對(duì)于電子資源下載服務(wù)而言,服務(wù)訪問(wèn)行為特征的核心是電子資源的下載地址。
[0032]因此,在使用數(shù)據(jù)庫(kù)或類(lèi)似的具有結(jié)構(gòu)化特點(diǎn)的數(shù)據(jù)存儲(chǔ)方式中,需要存儲(chǔ)的信息包含:針對(duì)檢索訪問(wèn)行為的HTTP請(qǐng)求報(bào)文的報(bào)文頭部中的所有鍵值對(duì)信息(這其中包含了 GET請(qǐng)求方式下的檢索字符串相關(guān)信息);針對(duì)檢索訪問(wèn)行為的HTTP請(qǐng)求報(bào)文的報(bào)文負(fù)載中對(duì)應(yīng)于POST表單的所有鍵值對(duì)信息(如果存在的話(huà));電子資源下載地址。
[0033]3)服務(wù)訪問(wèn)行為模擬與判別(即監(jiān)測(cè))。如圖6所示,分為5種類(lèi)型的監(jiān)測(cè):
[0034]a)監(jiān)測(cè)服務(wù)器網(wǎng)絡(luò)接口設(shè)備可用性監(jiān)測(cè),監(jiān)測(cè)是否是由于監(jiān)測(cè)服務(wù)器本身的網(wǎng)絡(luò)接口設(shè)備存在故障造成電子資源服務(wù)無(wú)法訪問(wèn)。
[0035]b)監(jiān)測(cè)服務(wù)器所在網(wǎng)絡(luò)網(wǎng)關(guān)可用性監(jiān)測(cè),監(jiān)測(cè)是否是由于監(jiān)測(cè)服務(wù)器所在網(wǎng)絡(luò)問(wèn)題造成電子資源服務(wù)無(wú)法訪問(wèn)。
[0036]c)電子資源服務(wù)器選定網(wǎng)頁(yè)的可用性。通過(guò)連接獲取設(shè)定URL的對(duì)應(yīng)網(wǎng)頁(yè),根據(jù)電子資源服務(wù)器的響應(yīng)狀態(tài)信息獲取選定網(wǎng)頁(yè)的可用性狀態(tài)。
[0037]d)電子資源服務(wù)器檢索服務(wù)可用性。使用存儲(chǔ)的服務(wù)行為特征信息構(gòu)造HTTP請(qǐng)求報(bào)文發(fā)送至電子資源服務(wù)器,通過(guò)分析響應(yīng)報(bào)文的內(nèi)容判別檢索服務(wù)請(qǐng)求是否返回了正常的響應(yīng)信息,從而判斷檢索服務(wù)可用性狀態(tài)。
[0038]e)電子資源服務(wù)器文件下載服務(wù)可用性。通過(guò)連接獲取設(shè)定URL的對(duì)應(yīng)文件,根據(jù)電子資源服務(wù)器的響應(yīng)狀態(tài)信息獲取選定網(wǎng)頁(yè)的可用性狀態(tài)。
[0039]本發(fā)明從電子資源服務(wù)購(gòu)買(mǎi)者角度出發(fā),在無(wú)需人工分析電子資源服務(wù)網(wǎng)頁(yè)代碼,也無(wú)需獲得電子資源服務(wù)器控制權(quán)限的情況下,以一種自動(dòng)化程度高、易用性強(qiáng)的方式完成針對(duì)基于HTTP協(xié)議的電子資源服務(wù)可用性的監(jiān)測(cè)信息采集與監(jiān)測(cè)實(shí)施。使用監(jiān)測(cè)功能的用戶(hù)完全不需要對(duì)檢索頁(yè)面代碼進(jìn)行任何人工分析即可自動(dòng)完成對(duì)于檢索Form表單所有信息及下載文件的真實(shí)網(wǎng)絡(luò)地址的采集,具有極高的自動(dòng)化水平,在保證方案具有通用性的前提下最大程度上降低了進(jìn)行監(jiān)測(cè)信息采集的技術(shù)難度,保證了方案具有最好的易用性及很好的推廣應(yīng)用前景。
[0040]對(duì)電子資源服務(wù)器服務(wù)可用性監(jiān)測(cè)所需設(shè)置信息的自動(dòng)化采集。所自動(dòng)采集的信息可用于監(jiān)測(cè)電子資源檢索服務(wù)及電子資源下載服務(wù)。自動(dòng)化監(jiān)測(cè)電子資源服務(wù)器監(jiān)測(cè)網(wǎng)站頁(yè)面的可用性、檢索服務(wù)的可用性、下載服務(wù)的可用性。為防止誤報(bào),自動(dòng)監(jiān)測(cè)監(jiān)測(cè)服務(wù)器本地網(wǎng)絡(luò)環(huán)境的狀態(tài),包括監(jiān)測(cè)服務(wù)器自身網(wǎng)絡(luò)接口設(shè)備的狀態(tài)及所處網(wǎng)絡(luò)的網(wǎng)關(guān)可用性狀態(tài)。擴(kuò)展開(kāi)發(fā)可提供對(duì)于可用性監(jiān)測(cè)日志的分析功能。
【附圖說(shuō)明】
[0041 ]圖1為本發(fā)明總體流程圖。
[0042]圖2為服務(wù)訪問(wèn)行為特征采集過(guò)程總體原理框圖。
[0043]圖3為服務(wù)訪問(wèn)行為特征采集操作流程圖。
[0044]圖4為請(qǐng)求報(bào)文處理程序流程圖。
[0045]圖5為響應(yīng)報(bào)文處理程序流程圖。
[0046]圖6為電子資源服務(wù)監(jiān)測(cè)流程圖。
【具體實(shí)施方式】
[0047]以下結(jié)合技術(shù)方案和附圖詳細(xì)敘述本發(fā)明的【具體實(shí)施方式】。
[0048]I)服務(wù)訪問(wèn)行為特征自動(dòng)化采集
[0049]a)網(wǎng)絡(luò)設(shè)備底層驅(qū)動(dòng)程序接口
[0050]采用Winpcap免費(fèi)網(wǎng)絡(luò)底層驅(qū)動(dòng)程序及相應(yīng)的開(kāi)發(fā)庫(kù)文件獲取通過(guò)指定網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)報(bào)文數(shù)據(jù)包。在Java語(yǔ)言環(huán)境中,可使用Jpcap類(lèi)庫(kù)獲得底層的網(wǎng)絡(luò)報(bào)文數(shù)據(jù)包,可以獲得TCP數(shù)據(jù)包所包含的源IP地址、目的IP地址、順序號(hào)、確認(rèn)號(hào)、緊急數(shù)據(jù)標(biāo)志、確認(rèn)號(hào)有效標(biāo)志、傳送強(qiáng)制功能標(biāo)志、請(qǐng)求連接重設(shè)標(biāo)志、順序號(hào)確認(rèn)標(biāo)志、發(fā)送結(jié)束標(biāo)志、窗口大小、緊急數(shù)據(jù)指針和數(shù)據(jù)等信息。
[0051]b)網(wǎng)絡(luò)報(bào)文內(nèi)容的解析
[0052]傳輸HTTP協(xié)議數(shù)據(jù)內(nèi)容的TCP數(shù)據(jù)包負(fù)載可以使用Java的標(biāo)準(zhǔn)類(lèi)String轉(zhuǎn)換為字符串,之后可以使用Java標(biāo)準(zhǔn)的正則表達(dá)式類(lèi)Pattern進(jìn)行解析,亦可直接使用String類(lèi)的字符串函數(shù)進(jìn)行分析。對(duì)于使用GZIP方法壓縮的HTTP數(shù)據(jù),可以使用Java工具類(lèi)java.util.zip.GZIPInputStream進(jìn)行解壓縮后轉(zhuǎn)換為字符串,然后再進(jìn)行后續(xù)處理。
[0053]c)對(duì)于HTTP報(bào)文屬性的判定。
[0054]如果HTTP報(bào)文頭部包含“Transfer-Encoding:chunked”,則表明HTTP報(bào)文使用chunked編碼。如果HTTP報(bào)文頭部包含“Content-Encoding: gzip”,則表明HTTP報(bào)文負(fù)載內(nèi)容使用gzip進(jìn)行壓縮。如果HTTP報(bào)文頭部包含“X-Requested-With”,則可認(rèn)為當(dāng)前HTTP請(qǐng)求為Ajax請(qǐng)求。
[0055]d)響應(yīng)報(bào)文重組。
[0056]對(duì)于由多個(gè)TCP數(shù)據(jù)包構(gòu)成的響應(yīng)報(bào)文,如果該報(bào)文沒(méi)有采用chunked編碼,則需要將所有TCP數(shù)據(jù)包臨時(shí)存儲(chǔ),并在確認(rèn)獲得報(bào)文的所有數(shù)據(jù)包后(根據(jù)HTTP數(shù)據(jù)包頭部信息中Content-1ength與已獲的數(shù)據(jù)包中的數(shù)據(jù)長(zhǎng)度的對(duì)比可知是否獲得所有數(shù)據(jù)包),依據(jù)各個(gè)數(shù)據(jù)包中的序列號(hào)(sequence)將所有TCP數(shù)據(jù)包排序,然后依次將各TCP數(shù)據(jù)包中的內(nèi)容拼接到同一個(gè)字節(jié)數(shù)組中,接著將字節(jié)數(shù)組轉(zhuǎn)換為字符串(在報(bào)文經(jīng)過(guò)GZIP壓縮時(shí)需要必要的解壓縮操作)。最后對(duì)得到的字符串進(jìn)行針對(duì)HTTP協(xié)議的字符分析操作。
[0057]e)用給定HTTP請(qǐng)求頭部信息和POST表單信息驗(yàn)證所抓取行為特征可用性。
[0058]可以使用Apache 類(lèi)庫(kù)中的 org.apache, http.1mpl.client.HttpClients類(lèi)構(gòu)造并發(fā)送網(wǎng)絡(luò)請(qǐng)求,針對(duì)其返回的org.apache, http, client, methods.CloseableHttpResponse類(lèi)對(duì)象,可以獲得響應(yīng)的內(nèi)容,通過(guò)內(nèi)容是否包含關(guān)鍵性信息(如Content-Type取值為text/xml)或響應(yīng)狀態(tài)碼(如200)或響應(yīng)狀態(tài)信息(如“0K”或“ok”)可判斷所抓取行為特征的可用性。
[0059]2)服務(wù)訪問(wèn)行為特征存儲(chǔ)
[0060]報(bào)文頭部及報(bào)文負(fù)載中表格信息的所有鍵值對(duì)信息可以通過(guò)使用Java標(biāo)準(zhǔn)字符串類(lèi)String的字符串取子串函數(shù)、字符串分割函數(shù)、字符查找函數(shù)組合得到。在存儲(chǔ)時(shí)亦可將整個(gè)頭部信息及表格信息直接以整體字符串形式進(jìn)行存儲(chǔ),將鍵值對(duì)信息提取工作放置在監(jiān)測(cè)實(shí)施階段的初始化過(guò)程中完成。
[0061]所有行為特征信息及用戶(hù)設(shè)置信息可以存儲(chǔ)在JSON文件或數(shù)據(jù)庫(kù)中,亦可使用JSON文件進(jìn)行所有行為特征信息及用戶(hù)設(shè)置信息的傳輸(比如在監(jiān)測(cè)信息采集端將監(jiān)測(cè)設(shè)置信息上傳至監(jiān)測(cè)服務(wù)器的場(chǎng)景中)。
[0062]3)服務(wù)訪問(wèn)行為模擬與判別
[0063]a)監(jiān)測(cè)服務(wù)器網(wǎng)絡(luò)接口設(shè)備可用性監(jiān)測(cè)方法
[0064]調(diào)用java.net.1netAddress.1sReachable (int timeout)訪問(wèn)本機(jī)地址“127.0.0.1”,通過(guò)查看響應(yīng)是否超時(shí)判斷監(jiān)測(cè)服務(wù)器網(wǎng)絡(luò)接口設(shè)備可用性。
[0065]b)監(jiān)測(cè)服務(wù)器所在網(wǎng)絡(luò)網(wǎng)關(guān)可用性監(jiān)測(cè)方法
[0066]通過(guò)程序ping監(jiān)測(cè)服務(wù)器所使用的主DNS服務(wù)器,查看響應(yīng)時(shí)間是否超時(shí)來(lái)判斷監(jiān)測(cè)服務(wù)器所在網(wǎng)絡(luò)網(wǎng)關(guān)可用性。
[0067]c)電子資源服務(wù)器選定網(wǎng)頁(yè)的可用性監(jiān)測(cè)方法
[0068]配合使用org.a