本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及頁(yè)面的偽靜態(tài)處理方法和裝置。
背景技術(shù):
在web開(kāi)發(fā)過(guò)程,為了更好的緩解服務(wù)器負(fù)荷壓力,一般都將頁(yè)面內(nèi)容生成靜態(tài)頁(yè)面。但有時(shí)為了實(shí)時(shí)的顯示一些信息,或者運(yùn)用動(dòng)態(tài)腳本解決一些問(wèn)題時(shí),就不能用靜態(tài)的方式來(lái)展示網(wǎng)站內(nèi)容。采用偽靜態(tài)技術(shù)開(kāi)發(fā)web可以解決上述問(wèn)題。其中,偽靜態(tài)是相對(duì)真實(shí)靜態(tài)來(lái)講的,是以html(hypertextmarkuplanguage,超文本標(biāo)記語(yǔ)言)一類的靜態(tài)頁(yè)面形式展示,但其實(shí)是用asp(activeserverpage,動(dòng)態(tài)服務(wù)器頁(yè)面)一類的動(dòng)態(tài)腳本來(lái)開(kāi)發(fā)處理的。然而,現(xiàn)有的頁(yè)面的偽靜態(tài)處理方法中,在大型大流量高并發(fā)網(wǎng)站中出現(xiàn)因大量的用戶請(qǐng)求需要?jiǎng)討B(tài)渲染而導(dǎo)致的服務(wù)器的負(fù)荷變大、消耗增加以及頁(yè)面響應(yīng)時(shí)間慢等問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)的目的在于提出一種改進(jìn)的頁(yè)面的偽靜態(tài)處理方法和裝置,來(lái)解決以上背景技術(shù)部分提到的技術(shù)問(wèn)題。
第一方面,本申請(qǐng)?zhí)峁┝艘环N頁(yè)面的偽靜態(tài)處理方法,所述方法包括:接收用戶通過(guò)終端發(fā)送的頁(yè)面瀏覽請(qǐng)求,所述頁(yè)面瀏覽請(qǐng)求包括網(wǎng)址;確定所述終端所屬的網(wǎng)絡(luò)運(yùn)營(yíng)商;判斷在所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器中是否緩存有所述網(wǎng)址指定的頁(yè)面;如果有,則直接將所述頁(yè)面返回給所述終端;如果沒(méi)有,則在預(yù)設(shè)的內(nèi)存數(shù)據(jù)庫(kù)中查找是否存在所述頁(yè)面;如果存在,則將所述頁(yè)面返回給所述終端,并將所述頁(yè)面寫入所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器的緩存中; 如果不存在,則在指定的數(shù)據(jù)庫(kù)服務(wù)器中查詢是否存在所述頁(yè)面,并且響應(yīng)于數(shù)據(jù)庫(kù)服務(wù)器中存在所述頁(yè)面則將所述頁(yè)面返回所述終端,或者響應(yīng)于數(shù)據(jù)庫(kù)服務(wù)器中不存在所述頁(yè)面則根據(jù)所述網(wǎng)址獲取頁(yè)面,并將所獲取的頁(yè)面返回所述終端。
在一些實(shí)施例中,所述或者響應(yīng)于所述數(shù)據(jù)庫(kù)服務(wù)器中不存在所述頁(yè)面則根據(jù)所述網(wǎng)址獲取頁(yè)面,并將所獲取的頁(yè)面返回所述終端,之后,所述方法還包括:將所獲取的頁(yè)面寫入至所述內(nèi)存數(shù)據(jù)庫(kù)和所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器中。
在一些實(shí)施例中,所述或者響應(yīng)于所述數(shù)據(jù)庫(kù)服務(wù)器中不存在所述頁(yè)面則根據(jù)所述網(wǎng)址獲取頁(yè)面,并將所獲取的頁(yè)面返回所述終端,包括:根據(jù)所述網(wǎng)址獲取所述頁(yè)面的數(shù)據(jù);根據(jù)所述頁(yè)面的數(shù)據(jù)對(duì)所述頁(yè)面進(jìn)行渲染;將渲染后的頁(yè)面分別寫入所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器的緩存中和所述數(shù)據(jù)庫(kù)服務(wù)器中;將將渲染后的頁(yè)面返回所述終端。
在一些實(shí)施例中,所述如果不存在,則在所述數(shù)據(jù)庫(kù)服務(wù)器中查詢是否存在所述頁(yè)面,并且響應(yīng)于所述數(shù)據(jù)庫(kù)服務(wù)器中存在所述頁(yè)面則將所述頁(yè)面返回所述終端,包括:當(dāng)在所述內(nèi)存數(shù)據(jù)庫(kù)中不存在所述頁(yè)面時(shí),在所述數(shù)據(jù)庫(kù)服務(wù)器中查詢所述頁(yè)面是否做持久化;若所述頁(yè)面做持久化,則將所述頁(yè)面寫入所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器的緩存中;在所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器中設(shè)置所述頁(yè)面的緩存時(shí)間;將所述頁(yè)面返回給所述終端。
在一些實(shí)施例中,所述內(nèi)存數(shù)據(jù)庫(kù)是由服務(wù)器集群提供支持的,其中所述服務(wù)器集群包括處理同一種任務(wù)的多個(gè)web應(yīng)用服務(wù)器。所述內(nèi)存數(shù)據(jù)庫(kù)是由多個(gè)web應(yīng)用服務(wù)器組成的處理同一服務(wù)的服務(wù)器集群。
在一些實(shí)施例中,所述如果沒(méi)有,則在所述內(nèi)存數(shù)據(jù)庫(kù)中查找是否存在所述頁(yè)面,包括:通過(guò)預(yù)設(shè)的反向代理服務(wù)器設(shè)置所述服務(wù)器集群中的web應(yīng)用服務(wù)器權(quán)重進(jìn)行反向代理來(lái)實(shí)現(xiàn)所述服務(wù)器集群的web應(yīng)用服務(wù)器負(fù)載均衡;獲取所述服務(wù)器集群中的各個(gè)web服務(wù)器的負(fù)載;根據(jù)所述服務(wù)器集群中各個(gè)web服務(wù)器負(fù)載及權(quán)重將所述頁(yè) 面瀏覽請(qǐng)求轉(zhuǎn)移到所述服務(wù)器集群中單臺(tái)web應(yīng)用服務(wù)器;在所述web應(yīng)用服務(wù)器中查找是否存在所述頁(yè)面。
第二方面,本申請(qǐng)?zhí)峁┝艘环N頁(yè)面的偽靜態(tài)處理裝置,接收單元,配置用于接收用戶通過(guò)終端發(fā)送的頁(yè)面瀏覽請(qǐng)求,所述頁(yè)面瀏覽請(qǐng)求包括網(wǎng)址;終端歸屬確定單元,配置用于確定所述終端所屬的網(wǎng)絡(luò)運(yùn)營(yíng)商;判斷單元,配置用于判斷在所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器中是否緩存有所述網(wǎng)址指定的頁(yè)面;處理單元,配置用于:響應(yīng)于所述判斷單元判斷在所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器中緩存有所述網(wǎng)址指定的頁(yè)面,直接將所述頁(yè)面返回給所述終端;響應(yīng)于所述判斷單元判斷在所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器中沒(méi)有緩存有所述網(wǎng)址指定的頁(yè)面,在預(yù)設(shè)的內(nèi)存數(shù)據(jù)庫(kù)中查找是否存在所述頁(yè)面;如果存在,則將所述頁(yè)面返回給所述終端,并將所述頁(yè)面寫入所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器的緩存中;如果不存在,則在所述數(shù)據(jù)庫(kù)服務(wù)器中查詢是否存在所述頁(yè)面,并且響應(yīng)于所述數(shù)據(jù)庫(kù)服務(wù)器中存在所述頁(yè)面則將所述頁(yè)面返回所述終端,或者響應(yīng)于所述數(shù)據(jù)庫(kù)服務(wù)器中不存在所述頁(yè)面則根據(jù)所述網(wǎng)址獲取頁(yè)面,并將所獲取的頁(yè)面返回所述終端。
在一些實(shí)施例中,處理單元進(jìn)一步配置用于:在響應(yīng)于所述數(shù)據(jù)庫(kù)服務(wù)器中不存在所述頁(yè)面則根據(jù)所述網(wǎng)址獲取頁(yè)面,并將所獲取的頁(yè)面返回所述終端,之后,將所獲取的頁(yè)面寫入至所述內(nèi)存數(shù)據(jù)庫(kù)和所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器中。
在一些實(shí)施例中,處理單元包括渲染模塊,所述渲染模塊配置用于:根據(jù)所述網(wǎng)址獲取所述頁(yè)面的數(shù)據(jù);根據(jù)所述頁(yè)面的數(shù)據(jù)對(duì)所述頁(yè)面進(jìn)行渲染;將渲染后的頁(yè)面分別寫入所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器的緩存中和所述數(shù)據(jù)庫(kù)服務(wù)器中;將將渲染后的頁(yè)面返回所述終端。
在一些實(shí)施例中,所述處理單元進(jìn)一步配置用于通過(guò)如下步驟在所述數(shù)據(jù)庫(kù)服務(wù)器中查詢是否存在所述頁(yè)面,并且響應(yīng)于所述數(shù)據(jù)庫(kù)服務(wù)器中存在所述頁(yè)面則將所述頁(yè)面返回所述終端:當(dāng)在所述內(nèi)存數(shù)據(jù)庫(kù)中不存在所述頁(yè)面時(shí),在所述數(shù)據(jù)庫(kù)服務(wù)器中查詢所述頁(yè)面是否 做持久化;若所述頁(yè)面做持久化,則將所述頁(yè)面寫入所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器的緩存中;在所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器中設(shè)置所述頁(yè)面的緩存時(shí)間;將所述頁(yè)面返回給所述終端。
在一些實(shí)施例中,所述內(nèi)存數(shù)據(jù)庫(kù)是由服務(wù)器集群提供支持的,其中所述服務(wù)器集群包括處理同一種任務(wù)的多個(gè)web應(yīng)用服務(wù)器。
在一些實(shí)施例中,處理單元包括查找模塊,所述查找模塊配置用于通過(guò)如下步驟在所述內(nèi)存數(shù)據(jù)庫(kù)中查找是否存在所述頁(yè)面:通過(guò)預(yù)設(shè)的反向代理服務(wù)器設(shè)置所述服務(wù)器集群中的web應(yīng)用服務(wù)器權(quán)重進(jìn)行反向代理來(lái)實(shí)現(xiàn)所述服務(wù)器集群的web應(yīng)用服務(wù)器負(fù)載均衡;獲取所述服務(wù)器集群中的各個(gè)web服務(wù)器的負(fù)載;根據(jù)所述服務(wù)器集群中各個(gè)web服務(wù)器負(fù)載及權(quán)重將所述頁(yè)面瀏覽請(qǐng)求轉(zhuǎn)移到所述服務(wù)器集群中單臺(tái)web應(yīng)用服務(wù)器;在所述web應(yīng)用服務(wù)器中查找是否存在所述頁(yè)面。
本申請(qǐng)?zhí)峁┑捻?yè)面的偽靜態(tài)處理方法和裝置,通過(guò)用戶請(qǐng)求的網(wǎng)址分別從用戶終端所屬的網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器、內(nèi)存數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)服務(wù)器中查找網(wǎng)址所指定的頁(yè)面,或通過(guò)上述網(wǎng)址獲取到頁(yè)面的對(duì)象數(shù)據(jù),根據(jù)對(duì)象數(shù)據(jù)渲染頁(yè)面,之后,將頁(yè)面返回終端,避免每次頁(yè)面瀏覽請(qǐng)求都進(jìn)行動(dòng)態(tài)渲染,降低數(shù)據(jù)庫(kù)服務(wù)器的負(fù)荷。
附圖說(shuō)明
通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1是本申請(qǐng)可以應(yīng)用于其中的示例性系統(tǒng)架構(gòu)圖;
圖2是根據(jù)本申請(qǐng)的頁(yè)面的偽靜態(tài)處理方法的一個(gè)實(shí)施例的流程圖;
圖3是根據(jù)本申請(qǐng)的頁(yè)面的偽靜態(tài)處理方法的一個(gè)應(yīng)用場(chǎng)景的示意圖;
圖4是根據(jù)本申請(qǐng)的頁(yè)面的偽靜態(tài)處理方法的又一個(gè)實(shí)施例的流程圖;
圖5是根據(jù)本申請(qǐng)的頁(yè)面的偽靜態(tài)處理裝置的一個(gè)實(shí)施例的結(jié)構(gòu) 示意圖;
圖6是適于用來(lái)實(shí)現(xiàn)本申請(qǐng)實(shí)施例的終端設(shè)備或服務(wù)器的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本申請(qǐng)作進(jìn)一步的詳細(xì)說(shuō)明。可以理解的是,此處所描述的具體實(shí)施例僅僅用于解釋相關(guān)發(fā)明,而非對(duì)該發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本申請(qǐng)。
圖1示出了可以應(yīng)用本申請(qǐng)的頁(yè)面的偽靜態(tài)處理方法或頁(yè)面的偽靜態(tài)處理裝置的實(shí)施例的示例性系統(tǒng)架構(gòu)100。
如圖1所示,系統(tǒng)架構(gòu)100可以包括終端設(shè)備101、網(wǎng)絡(luò)102、管理服務(wù)器103、內(nèi)容分發(fā)網(wǎng)絡(luò)(contentdeliverynetwork,cdn)服務(wù)器104、內(nèi)存數(shù)據(jù)庫(kù)105和數(shù)據(jù)庫(kù)服務(wù)器106。網(wǎng)絡(luò)102用以在終端設(shè)備101和管理服務(wù)器103之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)102可以包括各種連接類型,例如有線、無(wú)線通信鏈路或者光纖電纜等等。
用戶可以使用終端設(shè)備101通過(guò)網(wǎng)絡(luò)102和管理服務(wù)器103與cdn服務(wù)器104、內(nèi)存數(shù)據(jù)庫(kù)105和數(shù)據(jù)庫(kù)服務(wù)器106進(jìn)行交互,以接收或發(fā)送消息等。終端設(shè)備101上可以安裝有各種通訊客戶端應(yīng)用,例如網(wǎng)頁(yè)瀏覽器應(yīng)用、搜索類應(yīng)用、即時(shí)通信工具、郵箱客戶端、社交平臺(tái)軟件等。
終端設(shè)備101可以是具有顯示屏并且支持網(wǎng)頁(yè)瀏覽的各種電子設(shè)備,包括但不限于智能手機(jī)、平板電腦、膝上型便攜計(jì)算機(jī)和臺(tái)式計(jì)算機(jī)等等。
管理服務(wù)器103用于對(duì)用戶的頁(yè)面瀏覽請(qǐng)求進(jìn)行管理的服務(wù)器,例如對(duì)終端設(shè)備101請(qǐng)求的網(wǎng)頁(yè)提供服務(wù)支持的后臺(tái)網(wǎng)頁(yè)管理服務(wù)器。后臺(tái)網(wǎng)頁(yè)管理服務(wù)器可以將接收到的頁(yè)面瀏覽請(qǐng)求等數(shù)據(jù)鏈接到 cdn服務(wù)器104、內(nèi)存數(shù)據(jù)庫(kù)105或數(shù)據(jù)庫(kù)服務(wù)器106進(jìn)行分析等處理,并將處理結(jié)果(例如網(wǎng)頁(yè)頁(yè)面緩存數(shù)據(jù)或渲染后的頁(yè)面數(shù)據(jù))反饋給終端設(shè)備。
cdn服務(wù)器104是一種可以盡可能避開(kāi)互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內(nèi)容傳輸?shù)母?、更穩(wěn)定的服務(wù)器。
內(nèi)存數(shù)據(jù)庫(kù)105是將數(shù)據(jù)放在內(nèi)存中直接操作的數(shù)據(jù)庫(kù),以提高系統(tǒng)的穩(wěn)定性和數(shù)據(jù)處理能力及服務(wù)能力,為用戶的頁(yè)面瀏覽請(qǐng)求提供處理服務(wù)。
數(shù)據(jù)庫(kù)服務(wù)器106為用戶的頁(yè)面請(qǐng)求提供服務(wù),這些服務(wù)可以是對(duì)文檔集合的查詢、更新、事務(wù)管理、索引、查詢優(yōu)化、安全及多用戶存取控制等等。
需要說(shuō)明的是,本申請(qǐng)實(shí)施例所提供的頁(yè)面的偽靜態(tài)處理方法一般由管理服務(wù)器103執(zhí)行,相應(yīng)地,頁(yè)面的偽靜態(tài)處理裝置一般設(shè)置于管理服務(wù)器103中。
應(yīng)該理解,圖1中的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器的數(shù)目?jī)H僅是示意性的。根據(jù)實(shí)現(xiàn)需要,可以具有任意數(shù)目的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器。
繼續(xù)參考圖2,示出了根據(jù)本申請(qǐng)的頁(yè)面的偽靜態(tài)處理方法的一個(gè)實(shí)施例的流程200。所述的頁(yè)面的偽靜態(tài)處理方法,包括以下步驟:
步驟201,接收用戶通過(guò)終端發(fā)送的頁(yè)面瀏覽請(qǐng)求。
在本實(shí)施例中,頁(yè)面的偽靜態(tài)處理方法運(yùn)行于其上的電子設(shè)備(例如圖1所示的管理服務(wù)器)可以通過(guò)有線連接方式或者無(wú)線連接方式從用戶利用其進(jìn)行網(wǎng)頁(yè)瀏覽、查詢的終端接收用戶的頁(yè)面訪問(wèn)請(qǐng)求,其中,上述頁(yè)面訪問(wèn)請(qǐng)求包括了用戶期望訪問(wèn)的網(wǎng)頁(yè)頁(yè)面的地址,即網(wǎng)址。實(shí)踐中,網(wǎng)址一般由統(tǒng)一資源定位符(uniformresourcelocator,url)來(lái)表示。需要指出的是,上述無(wú)線連接方式可以包括但不限于3g/4g連接、wifi連接、藍(lán)牙連接、wimax連接、zigbee連接、uwb(ultrawideband)連接、以及其他現(xiàn)在已知或?qū)?lái)開(kāi)發(fā)的無(wú)線連接方式。
通常,用戶利用終端上安裝的網(wǎng)頁(yè)瀏覽器來(lái)訪問(wèn)網(wǎng)頁(yè)頁(yè)面,這時(shí), 用戶可以通過(guò)直接輸入網(wǎng)址或者點(diǎn)擊網(wǎng)頁(yè)瀏覽器中呈現(xiàn)的網(wǎng)頁(yè)中的鏈接來(lái)向服務(wù)器發(fā)起頁(yè)面訪問(wèn)請(qǐng)求。在本實(shí)施例中,上述頁(yè)面可以包括html格式、xhtml格式、asp格式、php格式、jsp格式、shtml格式、nsp格式、xml格式的網(wǎng)頁(yè)或者其它未來(lái)將開(kāi)發(fā)的格式的頁(yè)面。
步驟202,確定終端所屬的網(wǎng)絡(luò)運(yùn)營(yíng)商。
在本實(shí)施例中,上述電子設(shè)備(例如圖1所示的服務(wù)器)可以從用戶的終端設(shè)備的信息中確定出用戶終端設(shè)備所屬的網(wǎng)絡(luò)運(yùn)營(yíng)商。這里,終端設(shè)備的信息可以是終端設(shè)備的ip信息。網(wǎng)絡(luò)運(yùn)營(yíng)商是可以提供2g及以上網(wǎng)絡(luò)服務(wù)的運(yùn)營(yíng)實(shí)體,其中,網(wǎng)絡(luò)服務(wù)可以是移動(dòng)網(wǎng)絡(luò)服務(wù)和/或?qū)拵ЬW(wǎng)絡(luò)服務(wù)。
步驟203,判斷在網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中是否緩存有網(wǎng)址指定的頁(yè)面。
在本實(shí)施例中,基于步驟201中得到的網(wǎng)址和在步驟202中確定出的終端所屬的網(wǎng)絡(luò)運(yùn)營(yíng)商,上述電子設(shè)備可以首先在用戶所在網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中查找上述用戶通過(guò)終端發(fā)送的網(wǎng)址所指定的頁(yè)面是否存在。如果在上述網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中緩存有上述網(wǎng)址指定的頁(yè)面,直接將緩存頁(yè)面返回給終端設(shè)備的用戶,用戶的頁(yè)面瀏覽請(qǐng)求結(jié)束。這里,網(wǎng)絡(luò)絲運(yùn)營(yíng)商的cdn服務(wù)器用于響應(yīng)用戶的服務(wù)請(qǐng)求,并利用全局負(fù)載均衡技術(shù)將用戶的服務(wù)請(qǐng)求指向離用戶最近的工作正常的服務(wù)器上,在上述服務(wù)器中直接響應(yīng)用戶的請(qǐng)求。
步驟204,在內(nèi)存數(shù)據(jù)庫(kù)中查找是否存在上述頁(yè)面,如果存在,則將上述頁(yè)面返回給終端,并將頁(yè)面寫入網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器的緩存中。
在本實(shí)施例中,基于步驟203的判斷結(jié)果,如果用戶所在網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中不存上述網(wǎng)址所指定的頁(yè)面,需要判斷在內(nèi)存數(shù)據(jù)庫(kù)中是否存在上述用戶的頁(yè)面瀏覽請(qǐng)求中網(wǎng)址所指定的頁(yè)面,如果,在上述內(nèi)存數(shù)據(jù)庫(kù)中存在網(wǎng)址所指定的頁(yè)面,將該頁(yè)面返回給用戶。這里,內(nèi)存數(shù)據(jù)庫(kù)可以是提供直接在內(nèi)存中操作的數(shù)據(jù)庫(kù),例如,redis數(shù)據(jù)庫(kù),這里,redis數(shù)據(jù)庫(kù)是一個(gè)開(kāi)源的使用ansic語(yǔ)言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、key-value數(shù)據(jù)庫(kù)。在內(nèi)存 數(shù)據(jù)庫(kù)中存在上述網(wǎng)址所指定的頁(yè)面是指上述頁(yè)面以靜態(tài)頁(yè)面的形式緩存于內(nèi)存數(shù)據(jù)庫(kù)中。判斷上述內(nèi)存數(shù)據(jù)庫(kù)中是否存在上述網(wǎng)址所指定的頁(yè)面,可以通過(guò)網(wǎng)址所給定的地址在內(nèi)存數(shù)據(jù)庫(kù)中查找,還可以通過(guò)比較內(nèi)存數(shù)據(jù)庫(kù)所緩存數(shù)據(jù)的id判斷是否存在上述頁(yè)面。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述內(nèi)存數(shù)據(jù)庫(kù)是由服務(wù)器集群提供支持的,其中上述服務(wù)器集群包括處理同一種任務(wù)的多個(gè)web應(yīng)用服務(wù)器。這里,服務(wù)器集群是由多個(gè)web應(yīng)用服務(wù)器組成,提供統(tǒng)一管理控制,進(jìn)行同一種服務(wù),從客戶端的角度看是一個(gè)服務(wù)器。內(nèi)存數(shù)據(jù)庫(kù)中可以利用多個(gè)web應(yīng)用服務(wù)器進(jìn)行并行計(jì)算從而獲得很高的計(jì)算速度,也可以用多個(gè)web應(yīng)用服務(wù)器做備份,從而使得為內(nèi)存數(shù)據(jù)庫(kù)提供支持的任何一個(gè)web應(yīng)用服務(wù)器出現(xiàn)故障整個(gè)系統(tǒng)還是能正常運(yùn)行,提高整體的穩(wěn)定性。上述頁(yè)面以靜態(tài)頁(yè)面的形式緩存于web應(yīng)用服務(wù)器中;判斷內(nèi)存數(shù)據(jù)庫(kù)中是否存在網(wǎng)址所指定的頁(yè)面,可以通過(guò)判斷上述任一web應(yīng)用服務(wù)器中是否緩存有上述頁(yè)面。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述在內(nèi)存數(shù)據(jù)庫(kù)中查找是否存在上述頁(yè)面以通過(guò)如下過(guò)程實(shí)現(xiàn):通過(guò)預(yù)設(shè)的反向代理服務(wù)器設(shè)置服務(wù)器集群中web應(yīng)用服務(wù)器權(quán)重進(jìn)行反向代理來(lái)實(shí)現(xiàn)內(nèi)存數(shù)據(jù)庫(kù)中web應(yīng)用服務(wù)器負(fù)載均衡;獲取支持內(nèi)存數(shù)據(jù)庫(kù)的服務(wù)器集群中各個(gè)web服務(wù)器的負(fù)載;根據(jù)各個(gè)web服務(wù)器負(fù)載及權(quán)重將用戶發(fā)送的頁(yè)面瀏覽請(qǐng)求轉(zhuǎn)移到服務(wù)器集群中單臺(tái)web應(yīng)用服務(wù)器;在web應(yīng)用服務(wù)器中查找是否存在上述頁(yè)面。這里,預(yù)設(shè)的反向代理服務(wù)器接受用戶發(fā)送的頁(yè)面瀏覽請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給上述服務(wù)器集群中的web應(yīng)用服務(wù)器,并將從web應(yīng)用服務(wù)器上得到的結(jié)果返回給上述終端。其中,反向代理服務(wù)器可以是上述管理服務(wù)器,還可以是nginx("enginex")負(fù)載服務(wù)器,nginx是一個(gè)高性能的http和反向代理服務(wù)器。
為保證上述服務(wù)器集群中的web應(yīng)用服務(wù)器能夠及時(shí)響應(yīng)用戶發(fā)送的請(qǐng)求,這里,可以通過(guò)判斷上述服務(wù)器集群中的各個(gè)web應(yīng)用服務(wù)器權(quán)重和負(fù)載情況確定出響應(yīng)上述頁(yè)面瀏覽請(qǐng)求的web應(yīng)用服務(wù)器。作為示例,可以將用戶發(fā)送的請(qǐng)求鏈接到負(fù)載小,或者權(quán)重大的 web應(yīng)用服務(wù)器中。
步驟205,在數(shù)據(jù)庫(kù)服務(wù)器中查詢是否存在上述頁(yè)面,并且響應(yīng)于數(shù)據(jù)庫(kù)服務(wù)器中存在上述頁(yè)面則將頁(yè)面返回終端,或者響應(yīng)于數(shù)據(jù)庫(kù)服務(wù)器中不存在上述頁(yè)面則根據(jù)網(wǎng)址獲取頁(yè)面,并將所獲取的頁(yè)面返回終端。
在本實(shí)施例中,基于步驟204的結(jié)果,如果內(nèi)存數(shù)據(jù)庫(kù)中不存在上述頁(yè)面,上述電子設(shè)備可以在指定的數(shù)據(jù)庫(kù)服務(wù)器中查詢是否存在上述頁(yè)面。這里,數(shù)據(jù)庫(kù)服務(wù)器可以用來(lái)存儲(chǔ)靜態(tài)的頁(yè)面、xml數(shù)據(jù)或二進(jìn)制流數(shù)據(jù)等,還可以存儲(chǔ)具有存儲(chǔ)模型的數(shù)據(jù)。在指定的數(shù)據(jù)庫(kù)服務(wù)器中查詢是否存在上述頁(yè)面,可以在上述數(shù)據(jù)庫(kù)服務(wù)器中緩存靜態(tài)頁(yè)面的區(qū)域查找是否存在上述網(wǎng)址所指定的頁(yè)面,如果存在,則將該頁(yè)面返回上述終端,如果不存在,通過(guò)上述網(wǎng)址在上述數(shù)據(jù)庫(kù)服務(wù)器中獲取網(wǎng)址所指定的頁(yè)面,將獲取到的頁(yè)面返回上述終端。上述頁(yè)面在數(shù)據(jù)庫(kù)服務(wù)器中可以是在緩存區(qū)域的靜態(tài)頁(yè)面,還可以是模型數(shù)據(jù)或其他形式的二進(jìn)制數(shù)據(jù),上述電子設(shè)備根據(jù)上述網(wǎng)址和數(shù)據(jù)庫(kù)服務(wù)器中數(shù)據(jù)的id號(hào),獲取到網(wǎng)址所指定的頁(yè)面。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述電子設(shè)備響應(yīng)于數(shù)據(jù)庫(kù)服務(wù)器中不存在上述頁(yè)面,根據(jù)上述網(wǎng)址獲取頁(yè)面,并將所獲取的頁(yè)面返回終端,之后,將所獲取的頁(yè)面寫入至上述內(nèi)存數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中。將上述頁(yè)面寫入至上述cdn服務(wù)器后,對(duì)上述寫入cdn服務(wù)器中的頁(yè)面緩存時(shí)間進(jìn)行設(shè)置,可以對(duì)頁(yè)面的響應(yīng)頭信息統(tǒng)一設(shè)置,上述cdn服務(wù)器根據(jù)響應(yīng)頭信息保存頁(yè)面緩存時(shí)間。
繼續(xù)參見(jiàn)圖3,圖3是根據(jù)本實(shí)施例的頁(yè)面的偽靜態(tài)處理方法的應(yīng)用場(chǎng)景的一個(gè)示意圖。在圖3的應(yīng)用場(chǎng)景中用戶首先發(fā)出一個(gè)時(shí)事類網(wǎng)頁(yè)的瀏覽請(qǐng)求,用戶在終端的網(wǎng)頁(yè)瀏覽界面點(diǎn)擊了“今日頭條”作為頁(yè)面瀏覽請(qǐng)求,如圖3-a中的手形所指示,或在地址輸入框中輸入“今日頭條”頁(yè)面的網(wǎng)址,如圖3-a中301所示;之后,管理服務(wù)器在用戶所在的網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中查找網(wǎng)址所指定的頁(yè)面;因“今日頭條”是被眾多用戶關(guān)注的頁(yè)面,在用戶所在的網(wǎng)絡(luò)運(yùn)營(yíng)商 的cdn服務(wù)器中緩存有上述頁(yè)面,將上述頁(yè)面返回終端,如圖3-b所示。
本申請(qǐng)的上述實(shí)施例提供的方法可以在cdn服務(wù)器、內(nèi)存數(shù)據(jù)庫(kù)、和數(shù)據(jù)庫(kù)服務(wù)器中獲取網(wǎng)址所指定的頁(yè)面,避免了用戶的每次頁(yè)面瀏覽請(qǐng)求都需動(dòng)態(tài)渲染,降低了服務(wù)器的負(fù)荷。
進(jìn)一步參考圖4,其示出了頁(yè)面的偽靜態(tài)處理方法的又一個(gè)實(shí)施例的流程400。該頁(yè)面的偽靜態(tài)處理方法的流程400,包括以下步驟:
步驟401,接收用戶通過(guò)終端發(fā)送的頁(yè)面瀏覽請(qǐng)求。
在本實(shí)施例中,頁(yè)面的偽靜態(tài)處理方法運(yùn)行于其上的電子設(shè)備(例如圖1所示的管理服務(wù)器)可以通過(guò)有線連接方式或者無(wú)線連接方式從用戶利用其進(jìn)行網(wǎng)頁(yè)瀏覽、查詢的終端接收用戶的頁(yè)面訪問(wèn)請(qǐng)求,其中,上述頁(yè)面訪問(wèn)請(qǐng)求包括了用戶期望訪問(wèn)的網(wǎng)頁(yè)頁(yè)面的地址,即網(wǎng)址。
步驟402,確定終端所屬的網(wǎng)絡(luò)運(yùn)營(yíng)商。
在本實(shí)施例中,上述電子設(shè)備可以從用戶的終端設(shè)備的信息中確定出用戶終端設(shè)備所屬的網(wǎng)絡(luò)運(yùn)營(yíng)商。這里,終端設(shè)備的信息可以是終端設(shè)備的ip信息。網(wǎng)絡(luò)運(yùn)營(yíng)商是可以提供2g及以上網(wǎng)絡(luò)服務(wù)的運(yùn)營(yíng)實(shí)體,其中,網(wǎng)絡(luò)服務(wù)可以是移動(dòng)網(wǎng)絡(luò)服務(wù)和/或?qū)拵ЬW(wǎng)絡(luò)服務(wù)。
步驟403,判斷在網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中是否緩存有網(wǎng)址指定的頁(yè)面。
在本實(shí)施例中,上述電子設(shè)備可以首先在用戶所在網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中查找上述用戶的發(fā)送的網(wǎng)址所指定的頁(yè)面是否存在。如果在上述網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中緩存有上述網(wǎng)址指定的頁(yè)面,直接將緩存頁(yè)面返回給終端設(shè)備的用戶,用戶的頁(yè)面瀏覽請(qǐng)求結(jié)束。
步驟404,在內(nèi)存數(shù)據(jù)庫(kù)中查找是否存在上述頁(yè)面,如果存在,則將上述頁(yè)面返回給終端,并將頁(yè)面寫入網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器的緩存中。
在本實(shí)施例中,基于步驟403的判斷結(jié)果,如果用戶所在網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中不存上述網(wǎng)址所指定的頁(yè)面,需要判斷在內(nèi)存數(shù)據(jù)庫(kù)中是否存在上述網(wǎng)址所指定的頁(yè)面,如果,在上述內(nèi)存數(shù)據(jù)庫(kù)中 存在網(wǎng)址所指定的頁(yè)面,將該頁(yè)面返回給用戶。這里,內(nèi)存數(shù)據(jù)庫(kù)可以是提供直接在內(nèi)存中操作的數(shù)據(jù)庫(kù),例如,redis數(shù)據(jù)庫(kù)。
步驟405,在數(shù)據(jù)庫(kù)服務(wù)器中查詢是否存在上述頁(yè)面,并且響應(yīng)于數(shù)據(jù)庫(kù)服務(wù)器中存在上述頁(yè)面則將頁(yè)面返回終端。
在本實(shí)施例中,基于步驟404的結(jié)果,如果內(nèi)存數(shù)據(jù)庫(kù)中不存在上述頁(yè)面,上述電子設(shè)備可以在指定的數(shù)據(jù)庫(kù)中查詢是否存在上述頁(yè)面。這里,數(shù)據(jù)庫(kù)服務(wù)器可以用來(lái)存儲(chǔ)靜態(tài)的頁(yè)面、xml(extensi-nemaulananage,可擴(kuò)展標(biāo)記語(yǔ)言)數(shù)據(jù)或二進(jìn)制流數(shù)據(jù)等,還可以存儲(chǔ)具有存儲(chǔ)模型的數(shù)據(jù)。其中,數(shù)據(jù)庫(kù)服務(wù)器可以是mongodb,這里,mongodb由c++語(yǔ)言編寫,旨在為web應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案的基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)。在上述數(shù)據(jù)庫(kù)服務(wù)器中緩存靜態(tài)頁(yè)面的區(qū)域查找是否緩存有上述網(wǎng)址所指定的頁(yè)面,如果在上述數(shù)據(jù)庫(kù)服務(wù)器中緩存靜態(tài)頁(yè)面的區(qū)域緩存有上述頁(yè)面,則將該頁(yè)面返回上述終端。
步驟406,對(duì)頁(yè)面進(jìn)行渲染,將渲染后的頁(yè)面返回終端。
在本實(shí)施例中,如果在上述數(shù)據(jù)庫(kù)服務(wù)器中緩存靜態(tài)頁(yè)面的區(qū)域不存在上述頁(yè)面,上述電子設(shè)備通過(guò)上述網(wǎng)址在上述數(shù)據(jù)庫(kù)服務(wù)器中獲取網(wǎng)址所指定的頁(yè)面。這里,上述電子設(shè)備對(duì)上述網(wǎng)址進(jìn)行重定向,獲取到上述網(wǎng)址所指定頁(yè)面的對(duì)象數(shù)據(jù),由上述對(duì)象數(shù)據(jù)和已有的velocity模板對(duì)上述網(wǎng)址所指定的頁(yè)面進(jìn)行渲染,其中,velocity是一個(gè)基于java的模板引擎(templateengine),允許任何用戶僅僅簡(jiǎn)單的使用模板語(yǔ)言(templatelanguage)來(lái)引用由java代碼定義的對(duì)象;將渲染后的頁(yè)面分別寫入網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器的緩存中和上述內(nèi)存數(shù)據(jù)庫(kù)中,同時(shí),將渲染后的頁(yè)面返回所述終端。其中,將渲染后的頁(yè)面寫入網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器后還可以設(shè)置上述cdn服務(wù)器的緩存時(shí)間當(dāng)信息,并在記錄監(jiān)控信息。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,如果在上述數(shù)據(jù)庫(kù)服務(wù)器中緩存靜態(tài)頁(yè)面的區(qū)域不存在上述頁(yè)面,上述電子設(shè)備還可以在數(shù)據(jù)庫(kù)服務(wù)器中查找上述網(wǎng)址所指定的頁(yè)面是否做持久化。如果上述網(wǎng)址所指定的頁(yè)面已完成持久化,將該頁(yè)面寫入到上述數(shù)據(jù)庫(kù)服務(wù)器中緩 存靜態(tài)頁(yè)面的區(qū)域和內(nèi)存數(shù)據(jù)庫(kù)中;將上述頁(yè)面返回終端,并在上述網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器的緩存中寫入上述持久化頁(yè)面,同時(shí)設(shè)置cdn服務(wù)器的緩存時(shí)間,并記錄監(jiān)控信息。上述持久化是指將數(shù)據(jù)保存到session會(huì)話中,然后根據(jù)模板的配置文件與數(shù)據(jù)庫(kù)服務(wù)器交互訪問(wèn),其中,session是在web服務(wù)器上保持上述數(shù)據(jù)供在任何時(shí)間從任何設(shè)備上的頁(yè)面進(jìn)行訪問(wèn)。上述電子設(shè)備可以直接與session交互,減少直接訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器過(guò)程,降低了數(shù)據(jù)庫(kù)服務(wù)器的負(fù)荷。
從圖4中可以看出,與圖2對(duì)應(yīng)的實(shí)施例相比,本實(shí)施例中的頁(yè)面的偽靜態(tài)處理方法的流程400突出了對(duì)當(dāng)在上述cdn服務(wù)器和內(nèi)存數(shù)據(jù)庫(kù)不存在上述網(wǎng)址所指定的頁(yè)面時(shí),由上述網(wǎng)址獲取頁(yè)面對(duì)象數(shù)據(jù)對(duì)頁(yè)面進(jìn)行渲染。由此本實(shí)施例描述的方案可以更加豐富的方式實(shí)現(xiàn)用戶的頁(yè)面瀏覽請(qǐng)求。
進(jìn)一步參考圖5,作為對(duì)上述各圖所示方法的實(shí)現(xiàn),本申請(qǐng)?zhí)峁┝艘环N頁(yè)面的偽靜態(tài)處理裝置的一個(gè)實(shí)施例,該裝置實(shí)施例與圖2所示的方法實(shí)施例相對(duì)應(yīng),該裝置具體可以應(yīng)用于各種電子設(shè)備中。
如圖5所示,本實(shí)施例所述的頁(yè)面的偽靜態(tài)處理裝置500包括:
接收單元501、終端歸屬確定單元502、判斷單元503和處理單元504。其中,接收單元501配置用于接收用戶通過(guò)終端發(fā)送的頁(yè)面瀏覽請(qǐng)求,其中,上述頁(yè)面瀏覽請(qǐng)求包括網(wǎng)址;終端歸屬確定單元502配置用于確定上述終端所屬的網(wǎng)絡(luò)運(yùn)營(yíng)商;判斷單元503配置用于判斷在上述網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中是否緩存有上述網(wǎng)址指定的頁(yè)面;處理單元504配置用于響應(yīng)于上述判斷單元503判斷在上述網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中緩存有上述網(wǎng)址指定的頁(yè)面,直接將上述頁(yè)面返回給上述終端;響應(yīng)于上述判斷單元503判斷在上述網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中沒(méi)有緩存有上述網(wǎng)址指定的頁(yè)面,在預(yù)設(shè)的內(nèi)存數(shù)據(jù)庫(kù)中查找是否存在上述頁(yè)面;如果存在,則將上述頁(yè)面返回給上述終端,并將上述頁(yè)面寫入上述網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器的緩存中;如果不存在,則在上述數(shù)據(jù)庫(kù)服務(wù)器中查詢是否存在上述頁(yè)面,并且響應(yīng)于上述數(shù)據(jù)庫(kù)服務(wù)器中存在上述頁(yè)面則將上述頁(yè)面返回上述終端,或者響應(yīng)于上述數(shù)據(jù)庫(kù)服務(wù)器中不存在上述頁(yè)面則根據(jù)上述網(wǎng)址獲取頁(yè)面, 并將所獲取的頁(yè)面返回上述終端。
在本實(shí)施例中,頁(yè)面的偽靜態(tài)處理裝置500的接收單元501可以通過(guò)有線連接方式或者無(wú)線連接方式從用戶利用其進(jìn)行網(wǎng)頁(yè)瀏覽的終端接收頁(yè)面瀏覽請(qǐng)求,其中,上述頁(yè)面網(wǎng)頁(yè)瀏覽請(qǐng)求包括了用戶期望瀏覽的頁(yè)面的地址,即網(wǎng)址。
在本實(shí)施例中,基于接收單元501得到的網(wǎng)址,上述終端歸屬確定單元502可以通過(guò)終端信息確定出用戶所用終端所屬的網(wǎng)絡(luò)運(yùn)營(yíng)商。
在本實(shí)施例中,判斷單元503可以在用戶所在網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中查找上述用戶的發(fā)送的網(wǎng)址所指定的頁(yè)面是否存在。如果在上述網(wǎng)絡(luò)運(yùn)營(yíng)商cdn服務(wù)器中緩存有上述網(wǎng)址指定的頁(yè)面,直接將緩存頁(yè)面返回給終端設(shè)備的用戶,用戶的頁(yè)面瀏覽請(qǐng)求結(jié)束。
在本實(shí)施例中,上述處理單元504可以在內(nèi)存數(shù)據(jù)庫(kù)查找是否存在上述頁(yè)面或通過(guò)上述網(wǎng)址在上述數(shù)據(jù)庫(kù)服務(wù)器中獲取網(wǎng)址所指定的頁(yè)面,將獲取到的頁(yè)面返回上述終端。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,處理單元504進(jìn)一步配置用于:在響應(yīng)于數(shù)據(jù)庫(kù)服務(wù)器中不存在上述頁(yè)面則根據(jù)上述網(wǎng)址獲取頁(yè)面,并將所獲取的頁(yè)面返回終端,之后,將所獲取的頁(yè)面寫入至上述內(nèi)存數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述處理單元504包括渲染模塊,所述渲染模塊配置用于:根據(jù)上述網(wǎng)址獲取頁(yè)面的數(shù)據(jù);根據(jù)頁(yè)面的數(shù)據(jù)對(duì)頁(yè)面進(jìn)行渲染;將渲染后的頁(yè)面分別寫入網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器的緩存中和數(shù)據(jù)庫(kù)服務(wù)器中;將將渲染后的頁(yè)面返回終端。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述處理單元進(jìn)一步配置用于:當(dāng)在上述內(nèi)存數(shù)據(jù)庫(kù)中不存在上述頁(yè)面時(shí),在數(shù)據(jù)庫(kù)服務(wù)器中查詢所述頁(yè)面是否做持久化;若上述頁(yè)面做持久化,則將該頁(yè)面寫入所述網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器的緩存中;在網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器中設(shè)置該頁(yè)面的緩存時(shí)間;將上述頁(yè)面返回給終端。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述內(nèi)存數(shù)據(jù)庫(kù)是由服務(wù) 器集群提供支持的,其中服務(wù)器集群包括處理同一種任務(wù)的多個(gè)web應(yīng)用服務(wù)器。
在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,處理單元包括查找模塊,其中,查找模塊配置用于通過(guò)如下步驟在內(nèi)存數(shù)據(jù)庫(kù)中查找是否存在上述頁(yè)面:通過(guò)預(yù)設(shè)的反向代理服務(wù)器設(shè)置內(nèi)存數(shù)據(jù)庫(kù)中web應(yīng)用服務(wù)器權(quán)重進(jìn)行反向代理來(lái)實(shí)現(xiàn)內(nèi)存數(shù)據(jù)庫(kù)中web應(yīng)用服務(wù)器負(fù)載均衡;獲取內(nèi)存數(shù)據(jù)庫(kù)中各個(gè)web服務(wù)器的負(fù)載;根據(jù)內(nèi)存數(shù)據(jù)庫(kù)中各個(gè)web服務(wù)器負(fù)載及權(quán)重將用戶頁(yè)面瀏覽請(qǐng)求轉(zhuǎn)移到內(nèi)存數(shù)據(jù)庫(kù)中單臺(tái)web應(yīng)用服務(wù)器;在上述web應(yīng)用服務(wù)器中查找是否存在上述網(wǎng)址所指定的頁(yè)面。
本實(shí)施例中的頁(yè)面的偽靜態(tài)處理裝置將用戶發(fā)送的頁(yè)面瀏覽請(qǐng)求分別從用戶終端所屬的網(wǎng)絡(luò)運(yùn)營(yíng)商的cdn服務(wù)器、內(nèi)存數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)服務(wù)器中查找頁(yè)面緩存,避免每次頁(yè)面瀏覽請(qǐng)求就動(dòng)態(tài)渲染,降低數(shù)據(jù)庫(kù)服務(wù)器的負(fù)荷。
下面參考圖6,其示出了適于用來(lái)實(shí)現(xiàn)本申請(qǐng)實(shí)施例的終端設(shè)備或服務(wù)器的計(jì)算機(jī)系統(tǒng)600的結(jié)構(gòu)示意圖。
如圖6所示,計(jì)算機(jī)系統(tǒng)600包括中央處理單元(cpu)601,其可以根據(jù)存儲(chǔ)在只讀存儲(chǔ)器(rom)602中的程序或者從存儲(chǔ)部分608加載到隨機(jī)訪問(wèn)存儲(chǔ)器(ram)603中的程序而執(zhí)行各種適當(dāng)?shù)膭?dòng)作和處理。在ram603中,還存儲(chǔ)有系統(tǒng)600操作所需的各種程序和數(shù)據(jù)。cpu601、rom602以及ram603通過(guò)總線604彼此相連。輸入/輸出(i/o)接口605也連接至總線604。
以下部件連接至i/o接口605:包括鍵盤、鼠標(biāo)等的輸入部分606;包括諸如陰極射線管(crt)、液晶顯示器(lcd)等以及揚(yáng)聲器等的輸出部分607;包括硬盤等的存儲(chǔ)部分608;以及包括諸如lan卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分609。通信部分609經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動(dòng)器610也根據(jù)需要連接至i/o接口605??刹鹦督橘|(zhì)611,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲(chǔ)器等等,根據(jù)需要安裝在驅(qū)動(dòng)器610上,以便于從其上讀出的計(jì)算機(jī)程序根據(jù)需要被安裝入存儲(chǔ)部分608。
特別地,根據(jù)本公開(kāi)的實(shí)施例,上文參考流程圖描述的過(guò)程可以被實(shí)現(xiàn)為計(jì)算機(jī)軟件程序。例如,本公開(kāi)的實(shí)施例包括一種計(jì)算機(jī)程序產(chǎn)品,其包括有形地包含在機(jī)器可讀介質(zhì)上的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包含用于執(zhí)行流程圖所示的方法的程序代碼。在這樣的實(shí)施例中,該計(jì)算機(jī)程序可以通過(guò)通信部分609從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)611被安裝。在該計(jì)算機(jī)程序被中央處理單元(cpu)601執(zhí)行時(shí),執(zhí)行本申請(qǐng)的方法中限定的上述功能。
附圖中的流程圖和框圖,圖示了按照本申請(qǐng)各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
描述于本申請(qǐng)實(shí)施例中所涉及到的單元可以通過(guò)軟件的方式實(shí)現(xiàn),也可以通過(guò)硬件的方式來(lái)實(shí)現(xiàn)。所描述的單元也可以設(shè)置在處理器中,例如,可以描述為:一種處理器包括接收單元、終端歸屬確定單元、判斷單元和處理單元。其中,這些單元的名稱在某種情況下并不構(gòu)成對(duì)該單元本身的限定,例如,接收單元還可以被描述為“接收用戶的頁(yè)面瀏覽請(qǐng)求的單元”。
作為另一方面,本申請(qǐng)還提供了一種非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì),該非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是上述實(shí)施例中所述裝置中所包含的非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì);也可以是單獨(dú)存在,未裝配入終端中的非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。上述非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有一個(gè)或者多個(gè)程序,當(dāng)所述一個(gè)或者多個(gè)程序被一個(gè)設(shè)備執(zhí)行時(shí),使得所述設(shè)備:接收用戶通過(guò)終端發(fā)送的頁(yè)面瀏覽請(qǐng)求,所述頁(yè)面瀏覽請(qǐng)求包 括網(wǎng)址;確定所述終端所屬的網(wǎng)絡(luò)運(yùn)營(yíng)商;判斷在所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器中是否緩存有所述網(wǎng)址指定的頁(yè)面;如果有,則直接將所述頁(yè)面返回給所述終端;如果沒(méi)有,則在預(yù)設(shè)的內(nèi)存數(shù)據(jù)庫(kù)中查找是否存在所述頁(yè)面;如果存在,則將所述頁(yè)面返回給所述終端,并將所述頁(yè)面寫入所述網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)容分發(fā)網(wǎng)絡(luò)服務(wù)器的緩存中;如果不存在,則在指定的數(shù)據(jù)庫(kù)服務(wù)器中查詢是否存在所述頁(yè)面,并且響應(yīng)于所述數(shù)據(jù)庫(kù)服務(wù)器中存在所述頁(yè)面則將所述頁(yè)面返回所述終端,或者響應(yīng)于所述數(shù)據(jù)庫(kù)服務(wù)器中不存在所述頁(yè)面則根據(jù)所述網(wǎng)址獲取頁(yè)面,并將所獲取的頁(yè)面返回所述終端。
以上描述僅為本申請(qǐng)的較佳實(shí)施例以及對(duì)所運(yùn)用技術(shù)原理的說(shuō)明。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本申請(qǐng)中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時(shí)也應(yīng)涵蓋在不脫離所述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進(jìn)行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請(qǐng)中公開(kāi)的(但不限于)具有類似功能的技術(shù)特征進(jìn)行互相替換而形成的技術(shù)方案。