本發(fā)明涉及C/S軟件架構(gòu)(客戶端/服務(wù)器端)中客戶端對(duì)緩存的解決方式,具體的說,涉及一種基于HTTP請(qǐng)求頭的C/S應(yīng)用緩存解決方法。
背景技術(shù):
在C/S軟件架構(gòu)中,客戶端數(shù)據(jù)來自于服務(wù)器端,但是頻繁地從服務(wù)器端獲取重復(fù)資源,是一種對(duì)網(wǎng)絡(luò)資源的浪費(fèi),此現(xiàn)象在手機(jī)端客戶端表現(xiàn)尤為嚴(yán)重,也無端的給服務(wù)器端造成過多壓力,在客戶端不能連接服務(wù)器時(shí)會(huì)出現(xiàn)糟糕的用戶體驗(yàn)。
為了解決以上存在的問題,人們一直在尋求一種理想的技術(shù)解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)的不足,從而提供一種輕量化、易實(shí)現(xiàn)的基于HTTP請(qǐng)求頭的C/S應(yīng)用緩存解決方法。
本發(fā)明的目的是通過下面的技術(shù)方案來實(shí)現(xiàn)的:一種基于HTTP請(qǐng)求頭的C/S應(yīng)用緩存解決方法,包括以下步驟:
步驟1,定義客戶端緩存文件的保存命名方式,其中,新文件名=原文件名+Etag;
步驟2,客戶端緩存文件與服務(wù)端器文件對(duì)比校驗(yàn)
在請(qǐng)求一個(gè)網(wǎng)絡(luò)資源文件時(shí),先判斷客戶端緩存文件是否為最新,即是否與服務(wù)器端文件資源一致,如果為最新,則直接使用客戶端緩存文件,如果不是最新,則先更新客戶端緩存文件,再使用客戶端緩存文件;
步驟3,緩存文件的更新
如果需要更新緩存文件,先將舊的客戶端緩存文件刪除掉,然后向服務(wù)器端發(fā)送GET請(qǐng)求,根據(jù)響應(yīng)的Etag字段及原文件名,生成新文件名,再將服務(wù)器端文件按照新文件名保存在客戶端。
基于上述,步驟2中,在校驗(yàn)客戶端緩存文件與服務(wù)端器文件時(shí),先向服務(wù)器端發(fā)送HEAD請(qǐng)求,根據(jù)服務(wù)器端響應(yīng)的Etag字段及原文件名,生成新文件名;若客戶端本地存在該新文件名,則客戶端緩存文件與服務(wù)器端資源文件一致,客戶端緩存文件可以直接使用;否則需要更新客戶端緩存文件。
本發(fā)明相對(duì)現(xiàn)有技術(shù)具有突出的實(shí)質(zhì)性特點(diǎn)和顯著的進(jìn)步,具體的說,本發(fā)明通過在程序開發(fā)過程中需要引入緩存處理機(jī)制,減輕了服務(wù)器端的壓力,提升了客戶端的用戶體驗(yàn)。
說明書附圖
圖1是本發(fā)明的流程框圖。
具體實(shí)施方式
下面給出具體實(shí)施方式對(duì)本發(fā)明做進(jìn)一步的詳細(xì)描述:
如圖1所示,一種基于HTTP請(qǐng)求頭的C/S應(yīng)用緩存解決方法,包括以下步驟:
步驟1,定義客戶端緩存文件的保存命名方式,其中,新文件名=原文件名+Etag,如,對(duì)于原文件名為“category.xml”的網(wǎng)絡(luò)資源,在緩存到客戶端時(shí),命名為“category_1401bf-ab0-53adb8fa37bfa.xml”;
步驟2,客戶端緩存文件與服務(wù)端器文件對(duì)比校驗(yàn)
在請(qǐng)求一個(gè)網(wǎng)絡(luò)資源文件時(shí),先判斷客戶端緩存文件是否為最新,即是否與服務(wù)器端文件資源一致,如果為最新,則直接使用客戶端緩存文件,如果不是最新,則先更新客戶端緩存文件,再使用客戶端緩存文件;
具體的,在校驗(yàn)客戶端緩存文件與服務(wù)端器文件時(shí),先向服務(wù)器端發(fā)送HEAD請(qǐng)求,根據(jù)服務(wù)器端響應(yīng)的Etag字段(如:1401bf-ab0-53adb8fa37bfa)及原文件名category.xml,生成新文件名category_1401bf-ab0-53adb8fa37bfa.xml;若客戶端本地存在該新文件名category_1401bf-ab0-53adb8fa37bfa.xml文件,則客戶端緩存文件與服務(wù)器端資源文件一致,客戶端緩存文件可以直接使用;否則需要更新客戶端緩存文件。
步驟3,緩存文件的更新
如果需要更新緩存文件,先將舊的客戶端緩存文件刪除掉,然后向服務(wù)器端發(fā)送GET請(qǐng)求,根據(jù)響應(yīng)的Etag字段(如:1401bf-ab0-53adb8fa37bfa)及原文件名(如:category.xml),生成新文件名category_1401bf-ab0-53adb8fa37bfa.xml,再將服務(wù)器端文件按照新文件名保存在客戶端。
最后應(yīng)當(dāng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對(duì)其限制;盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:依然可以對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行修改或者對(duì)部分技術(shù)特征進(jìn)行等同替換;而不脫離本發(fā)明技術(shù)方案的精神,其均應(yīng)涵蓋在本發(fā)明請(qǐng)求保護(hù)的技術(shù)方案范圍當(dāng)中。