本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種用于處理http請(qǐng)求的技術(shù)。
背景技術(shù):
現(xiàn)有技術(shù)中支持icap的代理客戶端,通常會(huì)將http請(qǐng)求發(fā)送至對(duì)應(yīng)的代理服務(wù)器進(jìn)行檢測(cè),而且檢測(cè)完成后,若檢測(cè)結(jié)果正常,通常代理服務(wù)器會(huì)將接收到的http請(qǐng)求再次發(fā)送給代理客戶端,以使代理客戶端將所述http請(qǐng)求發(fā)送至對(duì)應(yīng)的http服務(wù)器,來(lái)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù),這種方式,會(huì)使流量的傳輸效率較低,且增加了代理服務(wù)器的負(fù)載,而且對(duì)于惡意的http請(qǐng)求還會(huì)導(dǎo)致代理服務(wù)器宕機(jī)。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)的目的是提供一種用于處理http請(qǐng)求的方法與設(shè)備。
根據(jù)本申請(qǐng)的一個(gè)方面,提供了一種在代理客戶端處理http請(qǐng)求的方法,其中,該方法包括:
接收并緩存http客戶端發(fā)送的http請(qǐng)求;
將所述http請(qǐng)求封裝成icap請(qǐng)求發(fā)送至代理服務(wù)器;
接收代理服務(wù)器基于對(duì)所述icap請(qǐng)求進(jìn)行敏感數(shù)據(jù)檢測(cè)返回的檢測(cè)結(jié)果;
當(dāng)所述檢測(cè)結(jié)果對(duì)應(yīng)未包含敏感數(shù)據(jù),將緩存的所述http請(qǐng)求發(fā)送至http服務(wù)器。
進(jìn)一步地,其中,所述方法還包括:
接收所述http服務(wù)器基于所述http請(qǐng)求返回的http應(yīng)答;
將所述http應(yīng)答發(fā)送至所述http客戶端。
進(jìn)一步地,其中,所述方法還包括:
當(dāng)所述檢測(cè)結(jié)果對(duì)應(yīng)包含敏感數(shù)據(jù),將所述檢測(cè)結(jié)果發(fā)送至所述http客戶端,其中,所述檢測(cè)結(jié)果包含http應(yīng)答,以使所述http請(qǐng)求重定向至指定頁(yè)面。
進(jìn)一步地,其中,所述方法還包括:
將所述http請(qǐng)求封裝成多個(gè)icap請(qǐng)求;
所述將所述http請(qǐng)求封裝成icap請(qǐng)求發(fā)送至代理服務(wù)器包括:
將所述http請(qǐng)求封裝成的多個(gè)icap請(qǐng)求分多次發(fā)送至代理服務(wù)器。
根據(jù)本申請(qǐng)的再一方面,還提供了一種在代理服務(wù)器處理http請(qǐng)求的方法,其中,該方法包括:
接收代理客戶端基于http請(qǐng)求封裝成的icap請(qǐng)求;
檢測(cè)所述icap請(qǐng)求是否包含敏感數(shù)據(jù),確定檢測(cè)結(jié)果;
將所述檢測(cè)結(jié)果發(fā)送至所述代理客戶端。
進(jìn)一步地,其中,當(dāng)所述檢測(cè)結(jié)果對(duì)應(yīng)包含敏感數(shù)據(jù),所述檢測(cè)結(jié)果包含http應(yīng)答。
進(jìn)一步地,其中,所述方法還包括:
記錄所述http請(qǐng)求,以使后續(xù)接收到相同的所述http請(qǐng)求時(shí),直接將包含http應(yīng)答的檢測(cè)結(jié)果發(fā)送至所述代理客戶端。。
進(jìn)一步地,其中,所述檢測(cè)所述icap請(qǐng)求是否包含敏感數(shù)據(jù),確定檢測(cè)結(jié)果包括:
基于匹配策略檢測(cè)所述icap請(qǐng)求是否包含敏感數(shù)據(jù),確定檢測(cè)結(jié)果。
進(jìn)一步地,其中,所述匹配策略包括以下至少任一項(xiàng):
關(guān)鍵字匹配;
正則表達(dá)式匹配;
指紋識(shí)別。
根據(jù)本申請(qǐng)的另一方面,還提供了一種處理http請(qǐng)求的代理客戶端設(shè)備,其中,該設(shè)備包括:
第一裝置,用于接收并緩存http客戶端發(fā)送的http請(qǐng)求;
第二裝置,用于將所述http請(qǐng)求封裝成icap請(qǐng)求發(fā)送至代理服務(wù)器;
第三裝置,用于接收代理服務(wù)器基于對(duì)所述icap請(qǐng)求進(jìn)行敏感數(shù)據(jù)檢測(cè)返回的檢測(cè)結(jié)果;
第四裝置,用于當(dāng)所述檢測(cè)結(jié)果對(duì)應(yīng)未包含敏感數(shù)據(jù),將緩存的所述http請(qǐng)求發(fā)送至http服務(wù)器。
進(jìn)一步地,其中,所述設(shè)備還包括:
第五裝置,用于接收所述http服務(wù)器基于所述http請(qǐng)求返回的http應(yīng)答;
第六裝置,用于將所述http應(yīng)答發(fā)送至所述http客戶端。
進(jìn)一步地,其中,所述設(shè)備還包括:
第七裝置,用于當(dāng)所述檢測(cè)結(jié)果對(duì)應(yīng)包含敏感數(shù)據(jù),將所述檢測(cè)結(jié)果發(fā)送至所述http客戶端,其中,所述檢測(cè)結(jié)果包含http應(yīng)答,以使所述http請(qǐng)求重定向至指定頁(yè)面。
進(jìn)一步地,其中,所述設(shè)備還包括:
第八裝置,用于將所述http請(qǐng)求封裝成多個(gè)icap請(qǐng)求;
所述第二裝置用于:
將所述http請(qǐng)求封裝成的多個(gè)icap請(qǐng)求分多次發(fā)送至代理服務(wù)器。
根據(jù)本申請(qǐng)的再一方面,還提供了一種處理http請(qǐng)求的代理服務(wù)器設(shè)備,其中,該設(shè)備包括:
第九裝置,用于接收代理客戶端基于http請(qǐng)求封裝成的icap請(qǐng)求;
第十裝置,用于檢測(cè)所述icap請(qǐng)求是否包含敏感數(shù)據(jù),確定檢測(cè)結(jié)果;
第十一裝置,用于將所述檢測(cè)結(jié)果發(fā)送至所述代理客戶端。
進(jìn)一步地,其中,當(dāng)所述檢測(cè)結(jié)果對(duì)應(yīng)包含敏感數(shù)據(jù),所述檢測(cè)結(jié)果包含http應(yīng)答。
進(jìn)一步地,其中,所述設(shè)備還包括:
第十二裝置,用于記錄所述http請(qǐng)求,以使后續(xù)接收到相同的所述http請(qǐng)求時(shí),直接將包含http應(yīng)答的檢測(cè)結(jié)果發(fā)送至所述代理客戶端。
進(jìn)一步地,其中,所述第十裝置用于:
基于匹配策略檢測(cè)所述icap請(qǐng)求是否包含敏感數(shù)據(jù),確定檢測(cè)結(jié)果。
進(jìn)一步地,其中,所述匹配策略包括以下至少任一項(xiàng):
關(guān)鍵字匹配;
正則表達(dá)式匹配;
指紋識(shí)別。
與現(xiàn)有技術(shù)相比,本申請(qǐng)通過(guò)在代理客戶端接收并緩存http客戶端發(fā)送的http請(qǐng)求,并將所述http請(qǐng)求封裝成icap請(qǐng)求發(fā)送至代理服務(wù)器,然后接收代理服務(wù)器基于對(duì)所述icap請(qǐng)求進(jìn)行敏感數(shù)據(jù)檢測(cè)返回的檢測(cè)結(jié)果,且當(dāng)所述檢測(cè)結(jié)果對(duì)應(yīng)未包含敏感數(shù)據(jù),將緩存的所述http請(qǐng)求發(fā)送至http服務(wù)器。這種方式,通過(guò)將http請(qǐng)求完整的緩存,這樣當(dāng)未檢測(cè)到敏感數(shù)據(jù)時(shí),所述代理客戶端能夠直接將所述http請(qǐng)求發(fā)送至http服務(wù)器,能夠提高流量的傳輸效率,實(shí)現(xiàn)代理客戶端的快速響應(yīng),從而提高效率。
而且,本申請(qǐng)還可以通過(guò)代理客戶端將所述http請(qǐng)求封裝成多個(gè)icap請(qǐng)求,然后分多次發(fā)送至代理服務(wù)器。這種方式,在http請(qǐng)求數(shù)據(jù)量比較大或者存在惡意請(qǐng)求時(shí),能夠提高流量傳輸效率,減輕代理服務(wù)器的負(fù)載,從而實(shí)現(xiàn)負(fù)載均衡,避免代理服務(wù)器宕機(jī)。
附圖說(shuō)明
通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1示出根據(jù)本申請(qǐng)一個(gè)方面的一種用于處理http請(qǐng)求的方法流程圖;
圖2示出根據(jù)本申請(qǐng)另一個(gè)方面的一種用于處理http請(qǐng)求的設(shè)備示意圖;
附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
在本申請(qǐng)一個(gè)典型的配置中,終端、服務(wù)網(wǎng)絡(luò)的設(shè)備和可信方均包括一個(gè)或多個(gè)處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(rom)或閃存(flashram)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、其他類型的隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
為更進(jìn)一步闡述本申請(qǐng)所采取的技術(shù)手段及取得的效果,下面結(jié)合附圖及較佳實(shí)施例,對(duì)本申請(qǐng)的技術(shù)方案,進(jìn)行清楚和完整的描述。
本方案的具體實(shí)施場(chǎng)景,適用于通過(guò)代理服務(wù)器來(lái)獲取數(shù)據(jù)的情況,主要涉及http服務(wù)器,http客戶端,代理客戶端及代理服務(wù)器。其中,http服務(wù)器即web服務(wù)器,存儲(chǔ)著各種數(shù)據(jù)信息;http客戶端即web客戶端,用于向http服務(wù)器請(qǐng)求相應(yīng)地?cái)?shù)據(jù),例如瀏覽器;代理客戶端及代理服務(wù)器是介于http客戶端和http服務(wù)器之間的服務(wù)器,相當(dāng)于數(shù)據(jù)傳輸?shù)闹修D(zhuǎn)站。在此,所述代理客戶端及代理服務(wù)器支持icap(internetcontentadaptationprotocol)協(xié)議。
圖1示出根據(jù)本申請(qǐng)一個(gè)方面提供的一種在代理客戶端及代理服務(wù)器用于處理http請(qǐng)求的方法流程圖。所述代理客戶端1與所述代理服務(wù)器2相互配合,以完成處理http請(qǐng)求。
具體地,在所述步驟s11中,代理客戶端1接收并緩存http客戶端發(fā)送的http請(qǐng)求,在此,http請(qǐng)求用于向?qū)?yīng)的http服務(wù)器請(qǐng)求數(shù)據(jù)信息,http客戶端會(huì)首先將該請(qǐng)求發(fā)送至代理客戶端1,代理客戶端1接收到該請(qǐng)求后,會(huì)完整的緩存該請(qǐng)求,以便于將該請(qǐng)求快速地轉(zhuǎn)發(fā)至對(duì)應(yīng)的http服務(wù)器。
繼續(xù)在該實(shí)施例中,在所述步驟s12中,所述代理客戶端1將所述http請(qǐng)求封裝成icap請(qǐng)求發(fā)送至代理服務(wù)器2,由于代理客戶端1及代理服務(wù)器2是遵循icap協(xié)議,因此,代理客戶端1會(huì)將http請(qǐng)求封裝成icap請(qǐng)求,以用于代理服務(wù)器2識(shí)別該請(qǐng)求,相應(yīng)地,代理服務(wù)器2接收該icap請(qǐng)求。
優(yōu)選地,所述代理客戶端1會(huì)檢測(cè)http請(qǐng)求的大小,當(dāng)所述http請(qǐng)求比較大時(shí),例如,超過(guò)某個(gè)預(yù)設(shè)值時(shí),所述代理客戶端1會(huì)將所述http請(qǐng)求分成多個(gè)來(lái)進(jìn)行封裝,從而形成多個(gè)icap請(qǐng)求,這樣對(duì)于比較大的http請(qǐng)求,可以分多次發(fā)送至所述代理服務(wù)器2,從而減輕所述代理服務(wù)器2的負(fù)載,增加傳輸?shù)乃俾?。具體地,可以通過(guò)設(shè)置每個(gè)icap請(qǐng)求的大小來(lái)將所述http請(qǐng)求分成多個(gè),比如,可以設(shè)置每個(gè)icap請(qǐng)求包含的內(nèi)容為10kb,若接收的http請(qǐng)求body的大小為95kb,那就從消息體起始位置開始分成9個(gè)10kb的icap請(qǐng)求以及1個(gè)5kb的icap請(qǐng)求。
繼續(xù)在該實(shí)施例中,在所述步驟s13中,所述代理服務(wù)器2檢測(cè)所述icap請(qǐng)求是否包含敏感數(shù)據(jù),確定檢測(cè)結(jié)果。其中,所述敏感數(shù)據(jù)包括公司內(nèi)部機(jī)密消息、相關(guān)的技術(shù)消息等需要保密的不想讓外界知道的信息以及其他的一些預(yù)設(shè)信息等。在此,所述代理服務(wù)器2會(huì)從icap請(qǐng)求中提取出對(duì)應(yīng)的http請(qǐng)求的內(nèi)容,并對(duì)該http請(qǐng)求的內(nèi)容進(jìn)行檢測(cè),是否包含敏感數(shù)據(jù)。在此,所述檢測(cè)結(jié)果對(duì)應(yīng)包含敏感數(shù)據(jù)或者未包含敏感數(shù)據(jù),具體的檢測(cè)結(jié)果的表現(xiàn)形式可以不唯一,例如,可以通過(guò)狀態(tài)碼的形式表示檢測(cè)結(jié)果;又例如,當(dāng)包含敏感數(shù)據(jù)時(shí),檢測(cè)結(jié)果可以對(duì)應(yīng)某個(gè)狀態(tài)碼,當(dāng)未包含敏感數(shù)據(jù)時(shí),可以對(duì)應(yīng)某個(gè)http應(yīng)答,例如,某個(gè)自定義頁(yè)面,以用于告知用戶這是一個(gè)不允許的請(qǐng)求。
優(yōu)選地,具體檢測(cè)方式可以基于匹配策略來(lái)檢測(cè)所述icap請(qǐng)求是否包含敏感數(shù)據(jù),其中,所述匹配策略包括但不限于以下至少任一項(xiàng):關(guān)鍵字匹配、正則表達(dá)式匹配、指紋識(shí)別。例如,對(duì)于關(guān)鍵字匹配可以通過(guò)檢測(cè)所述http請(qǐng)求的內(nèi)容中是否包含某些關(guān)鍵字,若包含某些關(guān)鍵字則代表存在敏感數(shù)據(jù);又例如,對(duì)于正則表達(dá)式匹配,可以通過(guò)匹配一下手機(jī)號(hào)碼或者身份證號(hào)碼等等信息;對(duì)于指紋識(shí)別,比如文件指紋,可以通過(guò)把某個(gè)敏感文件計(jì)算出hash值后,把文件的hash值保存到數(shù)據(jù)庫(kù)中,當(dāng)解析的http請(qǐng)求內(nèi)容的hash值與數(shù)據(jù)庫(kù)中存在的文件hash值匹配時(shí),認(rèn)為這個(gè)http請(qǐng)求包含敏感數(shù)據(jù)。
優(yōu)選地,在本方案中,所述代理服務(wù)器2會(huì)分別檢測(cè)所述http請(qǐng)求header以及body,這樣能夠保證檢測(cè)結(jié)果的準(zhǔn)確性,更優(yōu)選地,對(duì)于某些消息體可以檢測(cè)其起始部分,例如,ip地址,文件類型等等,這樣的方式能夠提高程序的運(yùn)行效率。在具體檢測(cè)時(shí),會(huì)對(duì)各種不同的文件類型進(jìn)行解析,例如,把非文本文件解析成文本文件,然后再進(jìn)行內(nèi)容檢測(cè)。
在另一個(gè)優(yōu)選實(shí)施例中,當(dāng)由于所述http請(qǐng)求內(nèi)容較大,被所述代理客戶端1封裝成多個(gè)icap請(qǐng)求發(fā)送過(guò)來(lái)時(shí),所述代理服務(wù)器2可以先檢測(cè)先收到的一個(gè)或幾個(gè)icap請(qǐng)求中包含的http請(qǐng)求中的內(nèi)容,若存在敏感數(shù)據(jù)則無(wú)需檢測(cè)其他icap請(qǐng)求,或者,所述代理服務(wù)器2也可以待接收到關(guān)于某個(gè)http請(qǐng)求被封裝成的全部的多個(gè)icap請(qǐng)求時(shí),將所述多個(gè)icap請(qǐng)求進(jìn)行合并后再進(jìn)行相應(yīng)的檢測(cè)。
繼續(xù)在該實(shí)施例中,在所述步驟s14中,所述代理服務(wù)器2在檢測(cè)完成后,將所述檢測(cè)結(jié)果發(fā)送至所述代理客戶端1,相應(yīng)地,所述代理客戶端1接收代理服務(wù)器2基于對(duì)所述icap請(qǐng)求進(jìn)行敏感數(shù)據(jù)檢測(cè)返回的檢測(cè)結(jié)果。例如,當(dāng)包含敏感數(shù)據(jù),所述代理服務(wù)器2可以發(fā)送一個(gè)http應(yīng)答至所述代理客戶端1,然后所述代理客戶端1將所述http應(yīng)答發(fā)送至所述http客戶端,以使所述http請(qǐng)求重定向至指定頁(yè)面,以告知用戶這是一個(gè)不允許的請(qǐng)求。
在該情況下,所述代理服務(wù)器2會(huì)記錄所述包含敏感數(shù)據(jù)的請(qǐng)求,例如,記錄文件名,文件類型,大小和發(fā)送的主機(jī)等等,以使后續(xù)接收到相同的所述http請(qǐng)求時(shí),直接將包含http應(yīng)答的檢測(cè)結(jié)果發(fā)送至所述代理客戶端。通過(guò)該種方式,將帶有敏感數(shù)據(jù)的請(qǐng)求進(jìn)行記錄,可以免去后續(xù)檢測(cè)的敏感數(shù)據(jù)的過(guò)程,從而提高響應(yīng)效率。
而當(dāng)未包含敏感數(shù)據(jù)時(shí),所述代理服務(wù)器2可以直接反饋一個(gè)對(duì)應(yīng)未包含敏感數(shù)據(jù)的狀態(tài)碼給代理客戶端1,而無(wú)需發(fā)送接收到的icap請(qǐng)求,從而節(jié)省流量,提高效率。
相應(yīng)地,在所述步驟s15中,當(dāng)所述檢測(cè)結(jié)果對(duì)應(yīng)未包含敏感數(shù)據(jù),所述代理客戶端1將緩存的所述http請(qǐng)求直接發(fā)送至http服務(wù)器,以使所述http服務(wù)器基于所述http請(qǐng)求進(jìn)行應(yīng)答,在此,所述應(yīng)答可以為用戶請(qǐng)求的數(shù)據(jù)信息或者是其他反饋信息。
進(jìn)一步地,代理客戶端1接收所述http服務(wù)器基于所述http請(qǐng)求返回的http應(yīng)答,并將所述http應(yīng)答發(fā)送至所述http客戶端。
與現(xiàn)有技術(shù)相比,本申請(qǐng)通過(guò)在代理客戶端接收并緩存http客戶端發(fā)送的http請(qǐng)求,并將所述http請(qǐng)求封裝成icap請(qǐng)求發(fā)送至代理服務(wù)器,然后接收代理服務(wù)器基于對(duì)所述icap請(qǐng)求進(jìn)行敏感數(shù)據(jù)檢測(cè)返回的檢測(cè)結(jié)果,且當(dāng)所述檢測(cè)結(jié)果對(duì)應(yīng)未包含敏感數(shù)據(jù),將緩存的所述http請(qǐng)求發(fā)送至http服務(wù)器。這種方式,通過(guò)將http請(qǐng)求完整的緩存,這樣當(dāng)未檢測(cè)到敏感數(shù)據(jù)時(shí),所述代理客戶端能夠直接將所述http請(qǐng)求發(fā)送至http服務(wù)器,能夠提高流量的傳輸效率,實(shí)現(xiàn)代理客戶端的快速響應(yīng),從而提高效率。
而且,本申請(qǐng)還可以通過(guò)代理客戶端將所述http請(qǐng)求封裝成多個(gè)icap請(qǐng)求,然后分多次發(fā)送至代理服務(wù)器。這種方式,在http請(qǐng)求數(shù)據(jù)量比較大或者存在惡意請(qǐng)求時(shí),能夠提高流量傳輸效率,減輕代理服務(wù)器的負(fù)載,從而實(shí)現(xiàn)負(fù)載均衡,避免代理服務(wù)器宕機(jī)。
圖2示出根據(jù)本申請(qǐng)另一個(gè)方面提供的一種在代理客戶端及代理服務(wù)器用于處理http請(qǐng)求的設(shè)備示意圖。所述代理客戶端1與所述代理服務(wù)器2相互配合,以完成處理http請(qǐng)求。
具體地,所述代理客戶端1的第一裝置接收并緩存http客戶端發(fā)送的http請(qǐng)求,在此,http請(qǐng)求用于向?qū)?yīng)的http服務(wù)器請(qǐng)求數(shù)據(jù)信息,http客戶端會(huì)首先將該請(qǐng)求發(fā)送至代理客戶端1,代理客戶端1的第一裝置接收到該請(qǐng)求后,會(huì)完整的緩存該請(qǐng)求,以便于將該請(qǐng)求快速地轉(zhuǎn)發(fā)至對(duì)應(yīng)的http服務(wù)器。
繼續(xù)在該實(shí)施例中,所述代理客戶端1的第二裝置將所述http請(qǐng)求封裝成icap請(qǐng)求發(fā)送至代理服務(wù)器2,由于代理客戶端1及代理服務(wù)器2是遵循icap協(xié)議,因此,代理客戶端1會(huì)將http請(qǐng)求封裝成icap請(qǐng)求,以用于代理服務(wù)器2識(shí)別該請(qǐng)求,相應(yīng)地,代理服務(wù)器2的第九裝置接收該icap請(qǐng)求。
優(yōu)選地,所述代理客戶端1還包括第八裝置,用于將所述http請(qǐng)求封裝成多個(gè)icap請(qǐng)求,例如,所述第八裝置會(huì)檢測(cè)http請(qǐng)求的大小,當(dāng)所述http請(qǐng)求比較大時(shí),例如,超過(guò)某個(gè)預(yù)設(shè)值時(shí),所述代理客戶端1的第八裝置會(huì)將所述http請(qǐng)求分成多個(gè)來(lái)進(jìn)行封裝,從而形成多個(gè)icap請(qǐng)求,這樣對(duì)于比較大的http請(qǐng)求,所述代理客戶端1的第二裝置可以分多次發(fā)送至所述代理服務(wù)器2,從而減輕所述代理服務(wù)器2的負(fù)載,增加傳輸?shù)乃俾省>唧w地,可以通過(guò)設(shè)置每個(gè)icap請(qǐng)求的大小來(lái)將所述http請(qǐng)求分成多個(gè),比如,可以設(shè)置每個(gè)icap請(qǐng)求包含的內(nèi)容為10kb,若接收的http請(qǐng)求body的大小為95kb,那就從消息體起始位置開始分成9個(gè)10kb的icap請(qǐng)求以及1個(gè)5kb的icap請(qǐng)求。
繼續(xù)在該實(shí)施例中,所述代理服務(wù)器2的第十裝置檢測(cè)所述icap請(qǐng)求是否包含敏感數(shù)據(jù),確定檢測(cè)結(jié)果。其中,所述敏感數(shù)據(jù)包括公司內(nèi)部機(jī)密消息、相關(guān)的技術(shù)消息等需要保密的不想讓外界知道的信息以及潛在的危險(xiǎn)信息等。在此,所述代理服務(wù)器2的第十裝置會(huì)從icap請(qǐng)求中提取出對(duì)應(yīng)的http請(qǐng)求的內(nèi)容,并對(duì)該http請(qǐng)求的內(nèi)容進(jìn)行檢測(cè),是否包含敏感數(shù)據(jù)。在此,所述檢測(cè)結(jié)果對(duì)應(yīng)包含敏感數(shù)據(jù)或者未包含敏感數(shù)據(jù),具體的檢測(cè)結(jié)果的表現(xiàn)形式可以不唯一,例如,可以通過(guò)狀態(tài)碼的形式表示檢測(cè)結(jié)果;又例如,當(dāng)包含敏感數(shù)據(jù)時(shí),檢測(cè)結(jié)果可以對(duì)應(yīng)某個(gè)狀態(tài)碼,當(dāng)未包含敏感數(shù)據(jù)時(shí),可以對(duì)應(yīng)某個(gè)http應(yīng)答,例如,某個(gè)自定義頁(yè)面,以用于告知用戶這是一個(gè)不允許的請(qǐng)求。
優(yōu)選地,所述代理服務(wù)器2的第十裝置的具體檢測(cè)方式可以基于匹配策略來(lái)檢測(cè)所述icap請(qǐng)求是否包含敏感數(shù)據(jù),其中,所述匹配策略包括但不限于以下至少任一項(xiàng):關(guān)鍵字匹配、正則表達(dá)式匹配、指紋識(shí)別。例如,對(duì)于關(guān)鍵字匹配可以通過(guò)檢測(cè)所述http請(qǐng)求的內(nèi)容中是否包含某些關(guān)鍵字,若包含某些關(guān)鍵字則代表存在敏感數(shù)據(jù);又例如,對(duì)于正則表達(dá)式匹配,可以通過(guò)匹配一下手機(jī)號(hào)碼或者身份證號(hào)碼等等信息;對(duì)于指紋識(shí)別,比如文件指紋,可以通過(guò)把某個(gè)敏感文件計(jì)算出hash值后,把文件的hash值保存到數(shù)據(jù)庫(kù)中,當(dāng)解析的http請(qǐng)求內(nèi)容的hash值與數(shù)據(jù)庫(kù)中存在的文件hash值匹配時(shí),認(rèn)為這個(gè)http請(qǐng)求包含敏感數(shù)據(jù)。
優(yōu)選地,在本方案中,所述代理服務(wù)器2的第十裝置會(huì)分別檢測(cè)所述http請(qǐng)求的header以及body,這樣能夠保證檢測(cè)結(jié)果的準(zhǔn)確性,更優(yōu)選地,對(duì)于某些消息體可以檢測(cè)其起始部分,例如,ip地址,文件類型等等,這樣的方式能夠提高程序的運(yùn)行效率。在具體檢測(cè)時(shí),會(huì)對(duì)各種不同的文件類型進(jìn)行解析,例如,把非文本文件解析成文本文件,然后再進(jìn)行內(nèi)容檢測(cè)。
在另一個(gè)優(yōu)選實(shí)施例中,當(dāng)由于所述http請(qǐng)求內(nèi)容較大,被所述代理客戶端1封裝成多個(gè)icap請(qǐng)求發(fā)送過(guò)來(lái)時(shí),所述代理服務(wù)器2的第十裝置可以先檢測(cè)先收到的一個(gè)或幾個(gè)icap請(qǐng)求中包含的http請(qǐng)求中的內(nèi)容,若存在敏感數(shù)據(jù)則無(wú)需檢測(cè)其他icap請(qǐng)求,或者,所述代理服務(wù)器2的第十裝置也可以待接收到關(guān)于某個(gè)http請(qǐng)求被封裝成的全部的多個(gè)icap請(qǐng)求時(shí),將所述多個(gè)icap請(qǐng)求進(jìn)行合并后再進(jìn)行相應(yīng)的檢測(cè)。
繼續(xù)在該實(shí)施例中,所述代理服務(wù)器2的第十一裝置在檢測(cè)完成后,將所述檢測(cè)結(jié)果發(fā)送至所述代理客戶端1,相應(yīng)地,所述代理客戶端1的第三裝置接收代理服務(wù)器2基于對(duì)所述icap請(qǐng)求進(jìn)行敏感數(shù)據(jù)檢測(cè)返回的檢測(cè)結(jié)果。例如,當(dāng)包含敏感數(shù)據(jù),所述代理服務(wù)器2的第十一裝置可以發(fā)送一個(gè)http應(yīng)答至所述代理客戶端1,然后所述代理客戶端1將所述http應(yīng)答發(fā)送至所述http客戶端,以使所述http請(qǐng)求重定向至指定頁(yè)面,以告知用戶這是一個(gè)不允許的請(qǐng)求。
在該情況下,所述代理服務(wù)器2的第十二裝置會(huì)記錄所述包含敏感數(shù)據(jù)的請(qǐng)求,例如,記錄文件名,文件類型,大小和發(fā)送的主機(jī)等等,以使后續(xù)接收到相同的所述http請(qǐng)求時(shí),直接將包含http應(yīng)答的檢測(cè)結(jié)果發(fā)送至所述代理客戶端。通過(guò)該種方式,將帶有敏感數(shù)據(jù)的請(qǐng)求進(jìn)行記錄,可以免去后續(xù)檢測(cè)的敏感數(shù)據(jù)的過(guò)程,從而提高響應(yīng)效率。
而當(dāng)未包含敏感數(shù)據(jù)時(shí),所述代理服務(wù)器2的第十一裝置可以直接反饋一個(gè)對(duì)應(yīng)未包含敏感數(shù)據(jù)的狀態(tài)碼給代理客戶端1,而無(wú)需發(fā)送接收到的icap請(qǐng)求,從而節(jié)省流量,提高效率。
相應(yīng)地,當(dāng)所述檢測(cè)結(jié)果對(duì)應(yīng)未包含敏感數(shù)據(jù),所述代理客戶端1的第四裝置將緩存的所述http請(qǐng)求直接發(fā)送至http服務(wù)器,以使所述http服務(wù)器基于所述http請(qǐng)求進(jìn)行應(yīng)答,在此,所述應(yīng)答可以為用戶請(qǐng)求的數(shù)據(jù)信息或者是其他反饋信息。
進(jìn)一步地,所述代理客戶端1的第五裝置接收所述http服務(wù)器基于所述http請(qǐng)求返回的http應(yīng)答,然后所述代理客戶端1的第六裝置將所述http應(yīng)答發(fā)送至所述http客戶端。
與現(xiàn)有技術(shù)相比,本申請(qǐng)通過(guò)在代理客戶端接收并緩存http客戶端發(fā)送的http請(qǐng)求,并將所述http請(qǐng)求封裝成icap請(qǐng)求發(fā)送至代理服務(wù)器,然后接收代理服務(wù)器基于對(duì)所述icap請(qǐng)求進(jìn)行敏感數(shù)據(jù)檢測(cè)返回的檢測(cè)結(jié)果,且當(dāng)所述檢測(cè)結(jié)果對(duì)應(yīng)未包含敏感數(shù)據(jù),將緩存的所述http請(qǐng)求發(fā)送至http服務(wù)器。這種方式,通過(guò)將http請(qǐng)求完整的緩存,這樣當(dāng)未檢測(cè)到敏感數(shù)據(jù)時(shí),所述代理客戶端能夠直接將所述http請(qǐng)求發(fā)送至http服務(wù)器,能夠提高流量的傳輸效率,實(shí)現(xiàn)代理客戶端的快速響應(yīng),從而提高效率。
而且,本申請(qǐng)還可以通過(guò)代理客戶端將所述http請(qǐng)求封裝成多個(gè)icap請(qǐng)求,然后分多次發(fā)送至代理服務(wù)器。這種方式,在http請(qǐng)求數(shù)據(jù)量比較大或者存在惡意請(qǐng)求時(shí),能夠提高流量傳輸效率,減輕代理服務(wù)器的負(fù)載,從而實(shí)現(xiàn)負(fù)載均衡,避免代理服務(wù)器宕機(jī)。
對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無(wú)論從哪一點(diǎn)來(lái)看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說(shuō)明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本發(fā)明內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。裝置權(quán)利要求中陳述的多個(gè)單元或裝置也可以由一個(gè)單元或裝置通過(guò)軟件或者硬件來(lái)實(shí)現(xiàn)。第一,第二等詞語(yǔ)用來(lái)表示名稱,而并不表示任何特定的順序。