專(zhuān)利名稱(chēng):用于視頻緩存索引的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本公開(kāi)針對(duì)Web內(nèi)容輸送的領(lǐng)域,并且更具體地,針對(duì)用于更有效地對(duì)視頻內(nèi)容進(jìn)行緩存的系統(tǒng)和方法。
背景技術(shù):
在過(guò)去的十年里,能夠向用戶(hù)渲染視頻的計(jì)算裝置的數(shù)量已經(jīng)大大增加了。不久前,用戶(hù)需要高端個(gè)人計(jì)算機(jī)或計(jì)算機(jī)工作站來(lái)在可接受的幀速率下渲染數(shù)字視頻。今天,視頻圖形硬件技術(shù)上的改進(jìn)已經(jīng)使視頻渲染對(duì)于大眾可用?;ヂ?lián)網(wǎng)連接裝置現(xiàn)在能夠以對(duì)于許多用戶(hù)可接受的質(zhì)量水平來(lái)渲染視頻。在此同一時(shí)期期間,寬帶互聯(lián)網(wǎng)服務(wù)已經(jīng)變得廣泛可用。具有寬帶互聯(lián)網(wǎng)服務(wù)的用戶(hù)可以以非常低的成本下載大量數(shù)據(jù)(包括視頻)到他們的互聯(lián)網(wǎng)連接裝置。一旦用戶(hù)開(kāi)始下載大型視頻文件,用于觀看數(shù)字視頻的內(nèi)置到程序中的流技術(shù)允許用戶(hù)在相同視頻的后面部分仍正在進(jìn)行下載的同時(shí),觀看視頻的開(kāi)始部分。共同地,這些技術(shù)創(chuàng)新已經(jīng)大大增加了用戶(hù)下載視頻內(nèi)容的胃口。此外,在過(guò)去的幾年里,用于生成數(shù)字視頻的專(zhuān)業(yè)硬件和軟件已經(jīng)變得對(duì)于普通消費(fèi)者更加可訪問(wèn)。許多廉價(jià)數(shù)碼相機(jī)能夠捕獲數(shù)字視頻的片段,而一些專(zhuān)業(yè)但廉價(jià)的裝置甚至能夠捕獲可以被容易地上傳到互聯(lián)網(wǎng)的高清數(shù)字視頻。這些技術(shù)和經(jīng)濟(jì)創(chuàng)新已經(jīng)顯著增加了用戶(hù)制作可下載視頻內(nèi)容的能力。許多受歡迎的網(wǎng)站,通過(guò)為用戶(hù)提供上傳他們的視頻并使其公開(kāi)可得以供其他人觀看的簡(jiǎn)單手段來(lái)迎合這種興趣,從而為自我表達(dá)創(chuàng)建了非常公共的場(chǎng)所。這些發(fā)展已經(jīng)導(dǎo)致了消費(fèi)者對(duì)于互聯(lián)網(wǎng)上輸送的視頻內(nèi)容的興趣激增。
目前,網(wǎng)站每月向數(shù)億用戶(hù)輸送數(shù)百萬(wàn)小時(shí)的視頻內(nèi)容。一些受歡迎的網(wǎng)站,例如YouTube (www.youtube, com),完全聚焦于向用戶(hù)輸送視頻內(nèi)容。其它受歡迎的網(wǎng)站,例如CNN (www.cnn.com),用特別令人感興趣的短視頻剪輯或片段來(lái)對(duì)傳統(tǒng)新聞和非視頻內(nèi)容進(jìn)行補(bǔ)充。消費(fèi)者對(duì)視頻內(nèi)容的興趣如此之大以至于很少有受歡迎的網(wǎng)站在無(wú)論如何都不提供視頻內(nèi)容的同時(shí)仍舊受歡迎。盡管有許多在線(xiàn)向用戶(hù)輸送大量視頻內(nèi)容的網(wǎng)站,但輸送視頻內(nèi)容仍然是昂貴的命題。通過(guò)互聯(lián)網(wǎng)輸送大型視頻內(nèi)容文件,趨于將大量處理負(fù)載置于傳遞該內(nèi)容的網(wǎng)絡(luò)基礎(chǔ)設(shè)施以及將該內(nèi)容傳送給用戶(hù)的Web服務(wù)器上(相對(duì)于輸送文本或靜態(tài)圖像內(nèi)容)。這種負(fù)擔(dān)在采用無(wú)線(xiàn)技術(shù)的網(wǎng)絡(luò)基礎(chǔ)設(shè)施上尤其嚴(yán)重,因?yàn)闊o(wú)線(xiàn)網(wǎng)絡(luò)一般比有線(xiàn)網(wǎng)絡(luò)提供更低的通信吞吐量,且無(wú)線(xiàn)網(wǎng)絡(luò)一般比有線(xiàn)網(wǎng)絡(luò)遭受更嚴(yán)重的分組丟失和更大的位置依賴(lài)吞吐量。
例如,典型的網(wǎng)頁(yè)內(nèi)渲染的靜止圖像可以是200k字節(jié)長(zhǎng)度,而完整長(zhǎng)度的文本文章可以是IOk字節(jié)長(zhǎng)度。與之相比,取決于視頻的內(nèi)容和分辨率以及用來(lái)編碼視頻的壓縮技術(shù),五分鐘視頻片段則可能是從幾兆字節(jié)到100兆字節(jié)或更多的任何地方。由于網(wǎng)絡(luò)帶寬和網(wǎng)絡(luò)服務(wù)器能力是有限的,且附加的網(wǎng)絡(luò)帶寬和網(wǎng)絡(luò)服務(wù)器能力對(duì)于視頻內(nèi)容提供者可能是昂貴的,因此較大視頻文件相比較小的文本或靜態(tài)圖像內(nèi)容對(duì)網(wǎng)絡(luò)和Web服務(wù)器基礎(chǔ)設(shè)施的負(fù)擔(dān)更重。這種負(fù)擔(dān)的結(jié)果是,相對(duì)于可由輸送文本或靜態(tài)圖像內(nèi)容的相同網(wǎng)絡(luò)和Web服務(wù)器基礎(chǔ)設(shè)施進(jìn)行服務(wù)的用戶(hù)數(shù)量,當(dāng)提供視頻內(nèi)容服務(wù)時(shí),較少的用戶(hù)可以獲得網(wǎng)絡(luò)和Web服務(wù)器基礎(chǔ)設(shè)施的服務(wù)。因此,如果由于超負(fù)荷的Web服務(wù)器或超負(fù)荷的網(wǎng)絡(luò)基礎(chǔ)設(shè)施引起他們的網(wǎng)站似乎很慢,則尋求吸引廣大用戶(hù)群的公司或者面臨增加他們內(nèi)容輸送能力,或者有失去用戶(hù)的風(fēng)險(xiǎn)。由于客戶(hù)損失對(duì)Web業(yè)務(wù)來(lái)說(shuō)可能是致命的,所以大多數(shù)公司選擇隨著他們客戶(hù)基礎(chǔ)的增長(zhǎng)而增加他們的內(nèi)容輸送能力。圖1圖示了能夠利用互聯(lián)網(wǎng)連接裝置向用戶(hù)輸送視頻內(nèi)容的現(xiàn)有技術(shù)系統(tǒng)100。如圖所示,系統(tǒng)100包括用戶(hù)互聯(lián)網(wǎng)連接裝置102、互聯(lián)網(wǎng)104、Web服務(wù)器106、數(shù)據(jù)庫(kù)112以及大容量存儲(chǔ)裝置114。用戶(hù)互聯(lián)網(wǎng)連接裝置102通過(guò)網(wǎng)絡(luò)連接108耦接到互聯(lián)網(wǎng)104。Web服務(wù)器106通過(guò)網(wǎng)絡(luò)連接110耦接到互聯(lián)網(wǎng)104。Web服務(wù)器106分別通過(guò)耦合器116和118耦接到數(shù)據(jù)庫(kù)112和大容量存儲(chǔ)裝置114。一般地,系統(tǒng)100如下操作:用戶(hù)做出在他們的互聯(lián)網(wǎng)連接裝置上觀看內(nèi)容的請(qǐng)求,該內(nèi)容來(lái)自由被配置為響應(yīng)該請(qǐng)求的硬件和軟件所服務(wù)的網(wǎng)站,該硬件和軟件在圖1中被共同示為Web服務(wù)器106、數(shù)據(jù)庫(kù)112和大容量存儲(chǔ)裝置114。通過(guò)經(jīng)由用戶(hù)互聯(lián)網(wǎng)連接裝置102發(fā)起內(nèi)容請(qǐng)求,用戶(hù)做出這樣的請(qǐng)求,用戶(hù)互聯(lián)網(wǎng)連接裝置102經(jīng)由網(wǎng)絡(luò)連接108、互聯(lián)網(wǎng)104和網(wǎng)絡(luò)連接110將該內(nèi)容請(qǐng)求傳送到Web服務(wù)器106。在接收內(nèi)容請(qǐng)求時(shí),We b服務(wù)器106確定存儲(chǔ)在大容量存儲(chǔ)裝置114中的哪個(gè)文件與所請(qǐng)求的內(nèi)容相對(duì)應(yīng)。與此對(duì)應(yīng)有關(guān)的數(shù)據(jù),以及與每個(gè)視頻已被請(qǐng)求多少次和哪些內(nèi)容文件收到歡迎有關(guān)的其它數(shù)據(jù),可以被存儲(chǔ)在數(shù)據(jù)庫(kù)112中。一旦Web服務(wù)器106已識(shí)別出存儲(chǔ)在大容量存儲(chǔ)裝置114中與所請(qǐng)求內(nèi)容相對(duì)應(yīng)的文件,Web服務(wù)器106從大容量存儲(chǔ)裝置114檢索該文件并經(jīng)由前述一系列網(wǎng)絡(luò)連接將文件傳送到用戶(hù)互聯(lián)網(wǎng)連接裝置102。在從Web服務(wù)器106接收所請(qǐng)求的內(nèi)容時(shí),用戶(hù)互聯(lián)網(wǎng)連接裝置102可以在Web瀏覽器或其它視頻渲染軟件應(yīng)用中渲染所請(qǐng)求的內(nèi)容。雖然圖1中圖示的系統(tǒng)僅僅示出了單個(gè)用戶(hù)互聯(lián)網(wǎng)連接裝置和單個(gè)Web服務(wù)器,但更復(fù)雜的系統(tǒng)是容易顯而易見(jiàn)的。例如,在很短一段時(shí)間內(nèi),大量用戶(hù)可能?chē)L試通過(guò)他們各自的互聯(lián)網(wǎng)連接裝置訪問(wèn)特定的網(wǎng)站。如果并行用戶(hù)的數(shù)量足夠大,則那些用戶(hù)所做出的請(qǐng)求可能超過(guò)單個(gè)Web服務(wù)器或網(wǎng)絡(luò)基礎(chǔ)設(shè)施的響應(yīng)能力。一些中間件服務(wù)在用戶(hù)互聯(lián)網(wǎng)連接裝置和網(wǎng)絡(luò)服務(wù)器之間提供內(nèi)容緩存。這些中間件服務(wù)也可以在將其傳送給用戶(hù)互聯(lián)網(wǎng)連接裝置之前優(yōu)化該內(nèi)容,使得用戶(hù)互聯(lián)網(wǎng)連接裝置可以實(shí)現(xiàn)更快的下載時(shí)間。對(duì)于給定的網(wǎng)絡(luò)基礎(chǔ)設(shè)施,相比沒(méi)有中間件服務(wù)的Web服務(wù)器,在仍依靠Web服務(wù)器動(dòng)態(tài)生成網(wǎng)頁(yè)和執(zhí)行復(fù)雜處理的同時(shí),采用中間件服務(wù)來(lái)優(yōu)化和輸送內(nèi)容可以允許將Web服務(wù)器和中間件服務(wù)相組合以服務(wù)更多的用戶(hù)。盡管中間件服務(wù)的好處顯而易見(jiàn),但提供視頻內(nèi)容的許多受歡迎的網(wǎng)站不能從傳統(tǒng)的內(nèi)容緩存中受益,因?yàn)檫@些網(wǎng)站利用“動(dòng)態(tài)URL”來(lái)指代視頻內(nèi)容。動(dòng)態(tài)URL代表對(duì)視頻內(nèi)容的“鏈接”(即,引用),其中該鏈接僅在特定條件下有效。一個(gè)這樣的條件可以是所引用內(nèi)容在特定時(shí)間段內(nèi)被引用。另一個(gè)這樣的條件可以是只有特定用戶(hù)可以引用該內(nèi)容。又一個(gè)這樣的條件可以是只有在特定地理區(qū)域中的用戶(hù)能夠引用該內(nèi)容。其它條件也是可能的。如果施加于通過(guò)特定動(dòng)態(tài)URL觀看特定的一段視頻內(nèi)容的條件沒(méi)有滿(mǎn)足,則由該動(dòng)態(tài)URL所引用的視頻內(nèi)容對(duì)請(qǐng)求用戶(hù)來(lái)說(shuō)是通過(guò)該用戶(hù)引用動(dòng)態(tài)URL不可獲得的。相反,視頻內(nèi)容提供者可以通過(guò)顯示“訪問(wèn)被拒絕”或“未找到內(nèi)容”消息,拒絕用戶(hù)通過(guò)特定動(dòng)態(tài)URL訪問(wèn)特定一段視頻內(nèi)容的請(qǐng)求。然而,相同的視頻內(nèi)容仍然可以通過(guò)另一個(gè)動(dòng)態(tài)URL獲得,如果施加于通過(guò)該其它動(dòng)態(tài)URL觀看特定一段視頻內(nèi)容的條件滿(mǎn)足的話(huà),該條件諸如是上面所討論的時(shí)間或地理?xiàng)l件。在任何給定時(shí)間,相同的視頻內(nèi)容也可以通過(guò)一個(gè)以上的動(dòng)態(tài)URL并行可獲得。
緩存由動(dòng)態(tài)URL所引用的視頻內(nèi)容可以導(dǎo)致緩存內(nèi)容的中間件服務(wù)中至少兩個(gè)低效情況。這兩個(gè)低效情況均與至少部分地基于用于內(nèi)容的(動(dòng)態(tài))URL來(lái)索引緩存內(nèi)容有關(guān)。首先,動(dòng)態(tài)URL的使用可以導(dǎo)致多個(gè)與內(nèi)容緩存內(nèi)相同視頻內(nèi)容相對(duì)應(yīng)的多個(gè)緩存條目,從而降低內(nèi)容緩存向用戶(hù)提供其它的、唯一的內(nèi)容的能力。在這種情況下,內(nèi)容緩存包含有效但冗余的信息,從而降低了內(nèi)容緩存的效率。其次,動(dòng)態(tài)URL的使用可以導(dǎo)致具有對(duì)內(nèi)容的過(guò)期引用的內(nèi)容緩存條目,再次降低了內(nèi)容緩存的有用能力。與第一種情況對(duì)比,此第二種情況涉及包含無(wú)效信息而非有效但冗余的數(shù)據(jù)的內(nèi)容緩存。因此,至少由于上述原因,采用至少部分由動(dòng)態(tài)URL索引的內(nèi)容緩存的中間件服務(wù)對(duì)網(wǎng)站性能問(wèn)題提供了低效的解決方案。
圖1圖示了能夠利用互聯(lián)網(wǎng)連接裝置向用戶(hù)輸送視頻內(nèi)容的現(xiàn)有技術(shù)系統(tǒng)。圖2圖示了采用內(nèi)容緩存來(lái)減少網(wǎng)絡(luò)基礎(chǔ)設(shè)施和Web服務(wù)器上的負(fù)擔(dān)的示例系統(tǒng);以及
圖3圖示了示例內(nèi)容緩存的組件。圖4A和4B圖示了用于按適合的質(zhì)量水平從內(nèi)容緩存供應(yīng)內(nèi)容請(qǐng)求的示例方法。圖5A和5B圖示了用于使用一個(gè)或多個(gè)類(lèi)型的表征數(shù)據(jù)在內(nèi)容緩存中生成索引的示例方法。
具體實(shí)施例方式本文所描述的系統(tǒng)和方法通過(guò)基于視頻內(nèi)容的表征對(duì)內(nèi)容緩存進(jìn)行索弓I,而非通過(guò)內(nèi)容的URL對(duì)內(nèi)容緩存進(jìn)行索弓I,來(lái)緩存視頻內(nèi)容。不像現(xiàn)有技術(shù)的工業(yè)實(shí)踐,即使當(dāng)使用動(dòng)態(tài)URL引用該內(nèi)容時(shí),這種方法也允許更有效地緩存視頻內(nèi)容。這種方法同樣允許兩個(gè)相似但不相同的視頻通過(guò)索引方案加以區(qū)分,從而避免用戶(hù)互聯(lián)網(wǎng)連接裝置請(qǐng)求第一個(gè)視頻但緩存輸送第二個(gè)(相似但不相同)視頻(有時(shí)被稱(chēng)作“內(nèi)容混淆”的情況)。具體來(lái)說(shuō),本文所述的內(nèi)容緩存智能響應(yīng)內(nèi)容請(qǐng)求,其中一個(gè)以上動(dòng)態(tài)URL同時(shí)指代一段內(nèi)容;盡管采用各種動(dòng)態(tài)URL指代該內(nèi)容,但只有該內(nèi)容的單個(gè)副本在內(nèi)容緩存中被索引。此外,動(dòng)態(tài)URL的過(guò)期不一定會(huì)導(dǎo)致內(nèi)容緩存中的孤立條目;基于先前被存儲(chǔ)于內(nèi)容緩存中并被已過(guò)期的動(dòng)態(tài)URL指代的副本,可以從內(nèi)容緩存中供應(yīng)被新的未過(guò)期的動(dòng)態(tài)URL指代的內(nèi)容。因此,即使在存在動(dòng)態(tài)URL的情況下,所描述的用于緩存視頻內(nèi)容的系統(tǒng)和方法允許內(nèi)容緩存高效地緩存視頻內(nèi)容,從而保留Web服務(wù)器以用于處理受益于該Web服務(wù)器的復(fù)雜軟件和硬件能力的任務(wù)。內(nèi)容緩存中的每個(gè)條目至少包括用于索引的字段和用于引用被緩存的內(nèi)容的字段。在一些實(shí)施例中,對(duì)被緩存內(nèi)容的每個(gè)引用都可以是該被緩存內(nèi)容的目錄名和文件名。在其它實(shí)施例中,對(duì)被緩存內(nèi)容的每個(gè)引用都可以是識(shí)別被緩存內(nèi)容的其它手段,例如唯一識(shí)別該被緩存內(nèi)容的字符串。在一些實(shí)施例中,內(nèi)容緩存是存儲(chǔ)于內(nèi)容緩存內(nèi)主或副存儲(chǔ)器中的數(shù)據(jù)結(jié)構(gòu)。在其它實(shí)施例中,內(nèi)容緩存可以包括存儲(chǔ)于內(nèi)容緩存內(nèi)文件或數(shù)據(jù)庫(kù)表中的數(shù)據(jù),或者存儲(chǔ)于內(nèi)容緩存外部文件或數(shù)據(jù)庫(kù)服務(wù)器上的文件或數(shù)據(jù)庫(kù)表中的數(shù)據(jù)。在一些實(shí)施例中,對(duì)被緩存內(nèi)容的引用指代存儲(chǔ)在內(nèi)容緩存內(nèi)大容量存儲(chǔ)裝置上的文件。在其它實(shí)施例中,對(duì)被緩存內(nèi)容的引用可以指代存儲(chǔ)在內(nèi)容緩存外部的大容量存儲(chǔ)單元(諸如硬盤(pán))上的內(nèi)容。圖2圖示了系統(tǒng)200,其采用包括內(nèi)容緩存224的優(yōu)化服務(wù)器206來(lái)降低網(wǎng)絡(luò)基礎(chǔ)設(shè)施和Web服務(wù)器208上的負(fù)擔(dān)。如圖所示,系統(tǒng)200包括用戶(hù)互聯(lián)網(wǎng)連接裝置202、互聯(lián)網(wǎng)204、優(yōu)化服務(wù)器206、Web服務(wù)器208、數(shù)據(jù)庫(kù)210和大容量存儲(chǔ)裝置212。用戶(hù)互聯(lián)網(wǎng)連接裝置202可以是膝上型電腦、蜂窩式電話(huà)、個(gè)人數(shù)據(jù)助理、平板電腦或便攜且能渲染視頻的任何其它類(lèi)型的計(jì)算裝置。用戶(hù)互聯(lián)網(wǎng)連接裝置202通過(guò)網(wǎng)絡(luò)連接214耦接到互聯(lián)網(wǎng)204。優(yōu)化服務(wù)器206通過(guò)第一網(wǎng)絡(luò)連接216耦接到互聯(lián)網(wǎng)204。優(yōu)化服務(wù)器206也通過(guò)第二網(wǎng)絡(luò)連接218耦接 到Web服務(wù)器208??蛇x地,Web服務(wù)器208分別通過(guò)耦合器220和222耦接到數(shù)據(jù)庫(kù)210和大容量存儲(chǔ)裝置212。在一些實(shí)施例中,Web服務(wù)器208從被耦接到Web服務(wù)器208的數(shù)據(jù)庫(kù)210檢索內(nèi)容和數(shù)據(jù),而不是從大容量存儲(chǔ)裝置212檢索內(nèi)容或數(shù)據(jù)。在此實(shí)施例中,大容量存儲(chǔ)裝置212可以不存在于系統(tǒng)200中。在其它實(shí)施例中,Web服務(wù)器208從被耦接到Web服務(wù)器208的大容量存儲(chǔ)裝置212檢索內(nèi)容和數(shù)據(jù),而不是從數(shù)據(jù)庫(kù)210檢索內(nèi)容或數(shù)據(jù)。在此實(shí)施例中,數(shù)據(jù)庫(kù)210可以不存在于系統(tǒng)200中。在另外其它實(shí)施例中,Web服務(wù)器208從大容量存儲(chǔ)裝置212和數(shù)據(jù)庫(kù)210的組合中檢索內(nèi)容和數(shù)據(jù)。在此實(shí)施例中,Web服務(wù)器208和數(shù)據(jù)庫(kù)210都存在于系統(tǒng)200中并被耦接到Web服務(wù)器208。在一些實(shí)施例中,優(yōu)化服務(wù)器206包括內(nèi)容緩存224 (如圖2中所示)。在其它實(shí)施例中(未示出),內(nèi)容緩存224在優(yōu)化服務(wù)器206外部,且內(nèi)容緩存224被耦接到優(yōu)化服務(wù)器206。一般地,系統(tǒng)200如下操作:用戶(hù)做出觀看內(nèi)容的請(qǐng)求,該內(nèi)容來(lái)自部分由如優(yōu)化服務(wù)器206的圖2中所示的中間件,以及還部分由Web服務(wù)器208、數(shù)據(jù)庫(kù)210和大容量存儲(chǔ)裝置212所供應(yīng)的網(wǎng)站。用戶(hù)通過(guò)經(jīng)由用戶(hù)互聯(lián)網(wǎng)連接裝置202發(fā)起內(nèi)容請(qǐng)求來(lái)做出這樣的請(qǐng)求,用戶(hù)互聯(lián)網(wǎng)連接裝置202通過(guò)網(wǎng)絡(luò)連接214、互聯(lián)網(wǎng)204和網(wǎng)絡(luò)連接216將內(nèi)容請(qǐng)求傳送給優(yōu)化服務(wù)器206。
在接收內(nèi)容請(qǐng)求時(shí),優(yōu)化服務(wù)器206確認(rèn)所請(qǐng)求的內(nèi)容是否存儲(chǔ)于內(nèi)容緩存224中。如果所請(qǐng)求的內(nèi)容存儲(chǔ)于內(nèi)容緩存224中,優(yōu)化服務(wù)器206確定以適合于請(qǐng)求用戶(hù)的質(zhì)量水平的所請(qǐng)求內(nèi)容的版本是否被存儲(chǔ)于內(nèi)容緩存224中。如果適合質(zhì)量水平的所請(qǐng)求內(nèi)容的版本被存儲(chǔ)于內(nèi)容緩存224中,則優(yōu)化服務(wù)器206通過(guò)前述的網(wǎng)絡(luò)連接將該所請(qǐng)求內(nèi)容的版本傳送給用戶(hù)互聯(lián)網(wǎng)連接裝置202。如果所請(qǐng)求內(nèi)容以其原始(未優(yōu)化)格式被存儲(chǔ)于內(nèi)容緩存224中,但未以適合于用戶(hù)的質(zhì)量水平被存儲(chǔ)在那,則優(yōu)化服務(wù)器206創(chuàng)建適合的質(zhì)量水平的所請(qǐng)求內(nèi)容的優(yōu)化副本,將該所請(qǐng)求內(nèi)容的優(yōu)化副本存儲(chǔ)于內(nèi)容緩存224中,并將該所請(qǐng)求內(nèi)容的優(yōu)化副本傳送給用戶(hù)互聯(lián)網(wǎng)連接裝置202。創(chuàng)建所請(qǐng)求內(nèi)容的優(yōu)化副本涉及以原始格式優(yōu)化所請(qǐng)求內(nèi)容,以創(chuàng)建對(duì)于用戶(hù)以適合質(zhì)量水平的所請(qǐng)求內(nèi)容的副本。在創(chuàng)建所請(qǐng)求內(nèi)容的優(yōu)化副本之后,原始格式的所請(qǐng)求內(nèi)容保留在內(nèi)容緩存中,用于將來(lái)可能在創(chuàng)建以適合于將來(lái)請(qǐng)求用戶(hù)的質(zhì)量水平的所請(qǐng)求內(nèi)容的其它副本時(shí)使用。如果所請(qǐng)求內(nèi)容既沒(méi)有以對(duì)用戶(hù)適合的質(zhì)量水平被存儲(chǔ)于內(nèi)容緩存224中,也沒(méi)有以其原始格式存儲(chǔ)在那,則優(yōu)化服務(wù)器206執(zhí)行一系列步驟,其可包括:(I)傳送內(nèi)容請(qǐng)求給Web服務(wù)器208 ; (2)從Web服務(wù)器208接收以原始格式的所請(qǐng)求內(nèi)容;(3)為將來(lái)使用,在內(nèi)容緩存224中以原始格式存儲(chǔ)所請(qǐng)求內(nèi)容的副本;(4)如上文所描述,以對(duì)用戶(hù)適合的質(zhì)量水平,創(chuàng)建并存儲(chǔ)所請(qǐng)求內(nèi)容的副本;以及(5)傳送以適合于用戶(hù)的質(zhì)量水平的所請(qǐng)求內(nèi)容給用戶(hù)互聯(lián)網(wǎng)連接裝置202。在從優(yōu)化服務(wù)器206接收內(nèi)容請(qǐng)求時(shí),Web服務(wù)器208可以采用大容量存儲(chǔ)裝置212或數(shù)據(jù)庫(kù)210或二者,以根據(jù)Web服務(wù)器208如何存儲(chǔ)并索引其內(nèi)容來(lái)供應(yīng)所請(qǐng)求的內(nèi)容。圖3圖示了示例性的內(nèi)容緩存224的組件。如圖所示,內(nèi)容緩存224包括處理器302、主存儲(chǔ)器304、輸入輸出硬件306、大容量存儲(chǔ)裝置308以及網(wǎng)絡(luò)接口卡(NIC) 310和312。處理器302經(jīng)由存儲(chǔ)器總線(xiàn)314被耦接到主存儲(chǔ)器304。處理器302還經(jīng)由輸入輸出總線(xiàn)316被耦接到輸入輸出硬件306。輸入輸出硬件306分別經(jīng)由耦合器318、320和322被耦接到大容量存儲(chǔ)裝置308、NIC 310和NIC 312。主存儲(chǔ)器304可以由隨機(jī)存取存儲(chǔ)器(“RAM”)、只讀存儲(chǔ) 器(“ROM”)、FLASH存儲(chǔ)器、它們的任何組合或任何類(lèi)型的存儲(chǔ)器組成。一般地,內(nèi)容緩存224如下操作:用指令將主存儲(chǔ)器304編碼為,當(dāng)由處理器302執(zhí)行指令時(shí),可操作成通過(guò)NIC 310從用戶(hù)互聯(lián)網(wǎng)連接裝置接收內(nèi)容請(qǐng)求,確定所請(qǐng)求內(nèi)容是否存在于大容量存儲(chǔ)裝置308中,并且如果所請(qǐng)求內(nèi)容當(dāng)前存儲(chǔ)于大容量存儲(chǔ)裝置308中,則通過(guò)NIC 310將所請(qǐng)求內(nèi)容傳送給用戶(hù)計(jì)算機(jī)。還用指令將主存儲(chǔ)器304編碼為,通過(guò)NIC 312轉(zhuǎn)發(fā)對(duì)應(yīng)內(nèi)容當(dāng)前未存儲(chǔ)于大容量存儲(chǔ)裝置308中的內(nèi)容請(qǐng)求給Web服務(wù)器(例如,Web服務(wù)器208),通過(guò)NIC 312從Web服務(wù)器208接收以原始格式的所請(qǐng)求內(nèi)容,以對(duì)用戶(hù)適合的質(zhì)量水平創(chuàng)建所請(qǐng)求內(nèi)容的副本,將以原始格式和適合的質(zhì)量水平的所請(qǐng)求內(nèi)容存儲(chǔ)于大容量存儲(chǔ)裝置308中,并且通過(guò)NIC 310轉(zhuǎn)發(fā)以對(duì)請(qǐng)求的用戶(hù)互聯(lián)網(wǎng)連接裝置適合的質(zhì)量水平的所請(qǐng)求內(nèi)容。在一些實(shí)施例中,在被存儲(chǔ)于主存儲(chǔ)器中之前,主存儲(chǔ)器中的指令被存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,如硬盤(pán)、光盤(pán)(包括但不限于CD或DVD盤(pán))、軟盤(pán)、FLASH存儲(chǔ)盤(pán)、或固態(tài)盤(pán)(“SSD”)上。確定所請(qǐng)求內(nèi)容是否存儲(chǔ)于內(nèi)容緩存224中是通過(guò)檢查緩存數(shù)據(jù)結(jié)構(gòu)以便指示其存儲(chǔ)了對(duì)所請(qǐng)求內(nèi)容的引用而做出的。該緩存數(shù)據(jù)結(jié)構(gòu)由一系列條目組成,其中每個(gè)條目進(jìn)一步包括索引字段和內(nèi)容引用字段。通過(guò)將從所請(qǐng)求內(nèi)容生成的“索引”與緩存數(shù)據(jù)結(jié)構(gòu)的每個(gè)條目?jī)?nèi)的索引字段進(jìn)行比較,內(nèi)容緩存確定對(duì)所請(qǐng)求內(nèi)容的引用存儲(chǔ)于內(nèi)容緩存中。如果在從所請(qǐng)求內(nèi)容生成的索引和緩存數(shù)據(jù)結(jié)構(gòu)的條目?jī)?nèi)的索引字段之間存在匹配,則由索引字段與所生成索引匹配的緩存數(shù)據(jù)結(jié)構(gòu)的條目?jī)?nèi)的內(nèi)容引用字段所引用的內(nèi)容被返回給請(qǐng)求的用戶(hù)互聯(lián)網(wǎng)連接裝置。在一些實(shí)施例中,緩存數(shù)據(jù)結(jié)構(gòu)被存儲(chǔ)于主存儲(chǔ)器304中。在其它實(shí)施例中,緩存數(shù)據(jù)結(jié)構(gòu)可被存儲(chǔ)于內(nèi)容緩存內(nèi)的副存儲(chǔ)器(未示出)中、內(nèi)容緩存或外部盤(pán)上存儲(chǔ)的文件中、內(nèi)容緩存內(nèi)存儲(chǔ)的數(shù)據(jù)庫(kù)表中、或內(nèi)容緩存外部的數(shù)據(jù)庫(kù)服務(wù)器上存儲(chǔ)的數(shù)據(jù)庫(kù)表中。下面對(duì)內(nèi)容緩存的操作進(jìn)行更具體的描述。圖4A和4B圖示了用于從內(nèi)容緩存以適合的質(zhì)量水平供應(yīng)內(nèi)容請(qǐng)求的示例方法400。雖然方法400以特定的順序公開(kāi)下面的步驟,但要理解的是,至少某些步驟在適當(dāng)情況下能夠被重新排序、修改或刪除。如圖所示,方法400始于在步驟402中從用戶(hù)互聯(lián)網(wǎng)連接裝置接收內(nèi)容請(qǐng)求。接收內(nèi)容請(qǐng)求之后,做出所請(qǐng)求內(nèi)容是否存在于內(nèi)容緩存中的確定。在步驟404中,生成緩存索引以用于與緩存數(shù)據(jù)結(jié)構(gòu)的條目?jī)?nèi)的緩存索引進(jìn)行比較。在一個(gè)實(shí)施例中,如下文結(jié)合圖5A和5B的方法所討論的, 使用哈希算法和至少一種類(lèi)型的表征數(shù)據(jù)來(lái)生成緩存索引。在步驟406中,將所生成的緩存索引與緩存數(shù)據(jù)結(jié)構(gòu)的每個(gè)條目中的緩存索引字段進(jìn)行比較,以確定所生成的緩存索引是否存在于緩存數(shù)據(jù)結(jié)構(gòu)中的任何條目的索引字段中。如果步驟406中執(zhí)行的檢查確定了所生成的緩存索引不存在于緩存數(shù)據(jù)結(jié)構(gòu)中任何條目的索引字段內(nèi),則內(nèi)容緩存向Web服務(wù)器轉(zhuǎn)發(fā)內(nèi)容請(qǐng)求,從Web服務(wù)器以未優(yōu)化形式接收所請(qǐng)求內(nèi)容,并如下面所討論的,將所請(qǐng)求內(nèi)容存儲(chǔ)在內(nèi)容緩存中。在步驟408中,內(nèi)容請(qǐng)求被轉(zhuǎn)發(fā)到Web服務(wù)器。在步驟410中,內(nèi)容緩存從Web服務(wù)器接收所請(qǐng)求內(nèi)容,盡管以未優(yōu)化的形式(即,以所請(qǐng)求內(nèi)容被存儲(chǔ)在Web服務(wù)器上的形式,而不是以代表對(duì)用戶(hù)互聯(lián)網(wǎng)連接裝置適合的質(zhì)量水平的形式)。在步驟412中,選擇緩存數(shù)據(jù)結(jié)構(gòu)內(nèi)的條目,以用于存儲(chǔ)與所請(qǐng)求內(nèi)容相對(duì)應(yīng)的索引和對(duì)所請(qǐng)求內(nèi)容的引用??梢允褂萌魏问侄蝸?lái)選擇用新數(shù)據(jù)覆蓋緩存內(nèi)的哪個(gè)條目。這種手段還包括最近使用的選擇策略等。在步驟414中,所請(qǐng)求內(nèi)容以未優(yōu)化的形式被存儲(chǔ)在內(nèi)容緩存內(nèi)的大容量存儲(chǔ)裝置中。在步驟416中,對(duì)所請(qǐng)求內(nèi)容的索引和引用被存儲(chǔ)在步驟412中所選擇的緩存數(shù)據(jù)結(jié)構(gòu)條目中。其后,方法繼續(xù)為以適當(dāng)?shù)馁|(zhì)量水平生成內(nèi)容的副本并傳送該內(nèi)容的副本(以適當(dāng)質(zhì)量水平的)給用戶(hù)互聯(lián)網(wǎng)連接裝置,如下文從步驟420開(kāi)始所討論的?,F(xiàn)在返回到步驟406,如果步驟406中執(zhí)行的檢查,確定所生成的緩存索引存在于緩存數(shù)據(jù)結(jié)構(gòu)內(nèi)條目的索引字段內(nèi),則該方法繼續(xù)到步驟418。在步驟418中,內(nèi)容緩存讀取存儲(chǔ)在索引字段與所生成的緩存索引相匹配的緩存數(shù)據(jù)結(jié)構(gòu)的條目中的內(nèi)容引用字段。在步驟420中,在給定內(nèi)容請(qǐng)求的特性的情況下,內(nèi)容緩存確定什么質(zhì)量水平適合于所請(qǐng)求內(nèi)容。如下文進(jìn)一步詳細(xì)討論的,這種特性可以包括請(qǐng)求的裝置上屏幕的分辨率以及請(qǐng)求的裝置與互聯(lián)網(wǎng)之間網(wǎng)絡(luò)連接的吞吐量。也可以考慮其它特性。在步驟422中,內(nèi)容緩存確定所請(qǐng)求的內(nèi)容當(dāng)前是否以適當(dāng)?shù)馁|(zhì)量水平被存儲(chǔ)在內(nèi)容緩存中。如果步驟422確定所請(qǐng)求內(nèi)容沒(méi)有以適當(dāng)?shù)馁|(zhì)量水平被存儲(chǔ)在內(nèi)容緩存中,則在步驟424中內(nèi)容緩存以適當(dāng)?shù)馁|(zhì)量水平生成所請(qǐng)求內(nèi)容,并在步驟426中將以適當(dāng)質(zhì)量水平的所請(qǐng)求內(nèi)容存儲(chǔ)于內(nèi)容緩存內(nèi)的大容量存儲(chǔ)裝置中。在步驟426之后,該方法繼續(xù)到步驟428。然而,如果步驟422確定所請(qǐng)求內(nèi)容當(dāng)前以適當(dāng)?shù)馁|(zhì)量水平被存儲(chǔ)在內(nèi)容緩存內(nèi)的大容量存儲(chǔ)裝置中,則方法繼續(xù)到步驟428。在步驟428中,內(nèi)容緩存將以適當(dāng)?shù)馁|(zhì)量水平的所請(qǐng)求內(nèi)容傳送給用戶(hù)互聯(lián)網(wǎng)連接裝置。其后,該方法結(jié)束于步驟430中。然而,如先前所討論的,當(dāng)通過(guò)動(dòng)態(tài)URL識(shí)別被緩存內(nèi)容時(shí),緩存系統(tǒng)受到低效情況影響。這些低效情況可以通過(guò)表征每段內(nèi)容并將該表征結(jié)果存儲(chǔ)為對(duì)與該段內(nèi)容相對(duì)應(yīng)的內(nèi)容緩存條目的索引來(lái)避免。每次從內(nèi)容緩存中請(qǐng)求一段內(nèi)容,內(nèi)容緩存從Web服務(wù)器檢索所請(qǐng)求內(nèi)容的一部分,并將其表征以創(chuàng)建用于與每個(gè)緩存數(shù)據(jù)結(jié)構(gòu)條目中的索引(對(duì)應(yīng)于存儲(chǔ)在內(nèi)容緩存中的每一段內(nèi)容)進(jìn)行比較的索引。如果在通過(guò)表征從Web服務(wù)器檢索到的所請(qǐng)求內(nèi)容的一部分所生成的索引與存儲(chǔ)于緩存數(shù)據(jù)結(jié)構(gòu)中 的索引之間存在匹配,則所請(qǐng)求內(nèi)容至少以原始格式存在于內(nèi)容緩存中,但也可能是以所請(qǐng)求的質(zhì)量水平;因此,與緩存數(shù)據(jù)結(jié)構(gòu)中匹配的索引相對(duì)應(yīng)的被緩存內(nèi)容,被轉(zhuǎn)化為所請(qǐng)求的質(zhì)量水平(如果必要的話(huà))并且被傳送給用戶(hù)互聯(lián)網(wǎng)連接裝置。如果在通過(guò)表征從Web服務(wù)器檢索到的所請(qǐng)求內(nèi)容的一部分所生成的索引與存儲(chǔ)于緩存數(shù)據(jù)結(jié)構(gòu)中的索引之間不存在匹配,則內(nèi)容緩存當(dāng)前不包含以原始格式或適當(dāng)質(zhì)量水平的所請(qǐng)求內(nèi)容;因此,內(nèi)容緩存將內(nèi)容請(qǐng)求轉(zhuǎn)發(fā)給Web服務(wù)器,從Web服務(wù)器接收以原始格式的所請(qǐng)求內(nèi)容,優(yōu)化所請(qǐng)求內(nèi)容以按適當(dāng)?shù)馁|(zhì)量水平創(chuàng)建所請(qǐng)求內(nèi)容的副本,為將來(lái)使用(使用表征結(jié)果對(duì)緩存數(shù)據(jù)結(jié)構(gòu)中的所請(qǐng)求內(nèi)容進(jìn)行索引)將以原始格式的所請(qǐng)求內(nèi)容以及以適當(dāng)?shù)馁|(zhì)量水平的該內(nèi)容存儲(chǔ)于內(nèi)容緩存內(nèi),并且將以適當(dāng)?shù)馁|(zhì)量水平的所請(qǐng)求內(nèi)容從內(nèi)容緩存轉(zhuǎn)發(fā)給請(qǐng)求的用戶(hù)互聯(lián)網(wǎng)連接裝置,如先前結(jié)合方法400所討論的。構(gòu)建索引涉及正被執(zhí)行的表征過(guò)程。該表征過(guò)程取得與一段內(nèi)容有關(guān)的數(shù)據(jù)的至少一種形式,本文中每一種形式都被稱(chēng)為“表征數(shù)據(jù)”,將該至少一個(gè)表征數(shù)據(jù)輸入到哈希算法中以產(chǎn)生唯一的哈希結(jié)果,并將該唯一哈希結(jié)果作為索引存儲(chǔ)在緩存數(shù)據(jù)結(jié)構(gòu)中以用于對(duì)應(yīng)的一段內(nèi)容。在一些實(shí)施例中,哈希算法能夠接收不同長(zhǎng)度的多個(gè)輸入并產(chǎn)生單個(gè)、唯一的固定長(zhǎng)度的輸出。用于構(gòu)建索引所利用的哈希算法可以是任何類(lèi)型的哈希算法。例如,該哈希算法可以是SHA2 (第二代安全哈希算法)算法,該版本產(chǎn)生256位輸出??梢赃x擇對(duì)哈希算法的一個(gè)或多個(gè)輸入。選擇對(duì)哈希算法的適當(dāng)輸入可以允許內(nèi)容緩存唯一地識(shí)別被緩存內(nèi)容,以便在最小化或消除與兩個(gè)或更多實(shí)質(zhì)上不同的內(nèi)容段相對(duì)應(yīng)的單個(gè)表征結(jié)果(即,“內(nèi)容混淆”)的任何可能性同時(shí),可以對(duì)每個(gè)所請(qǐng)求的內(nèi)容段實(shí)時(shí)地執(zhí)行計(jì)算上廉價(jià)的表征。該概念支持為了效率目的在內(nèi)容緩存中避免復(fù)制的內(nèi)容以及避免內(nèi)容混淆的理念。在一些實(shí)施例中,對(duì)每一段內(nèi)容,至少一種類(lèi)型的表征數(shù)據(jù)被用作對(duì)該段內(nèi)容的哈希算法的輸入。基于存儲(chǔ)在配置文件或數(shù)據(jù)庫(kù)中的配置數(shù)據(jù),也可以自定義表征過(guò)程,以基于各種網(wǎng)站之間的文件格式或URL格式差異,來(lái)為不同網(wǎng)站不同地獲取表征數(shù)據(jù),或者使用更多或更少的數(shù)據(jù)段來(lái)生成表征。甚至,如果適當(dāng),基于配置文件或配置數(shù)據(jù)庫(kù)中的設(shè)定,對(duì)所請(qǐng)求內(nèi)容的緩存對(duì)于某些網(wǎng)站甚至可以被完全禁用??傊?,作為對(duì)哈希算法的輸入,該至少一種類(lèi)型的表征數(shù)據(jù)代表對(duì)應(yīng)內(nèi)容唯一性的可靠指示符,從而從哈希算法產(chǎn)生唯一的表征結(jié)果。在下面的圖5A和5B的討論中描述每種類(lèi)型的表征數(shù)據(jù)。圖5A和5B圖示了用于使用一種或多種類(lèi)型的表征數(shù)據(jù)生成索引到內(nèi)容緩存中的示例方法500。雖然方法400以特定順序公開(kāi)下面的步驟,但要理解的是,至少某些步驟在適當(dāng)情況下能夠被重新排序、修改或刪除。可被用作對(duì)哈希算法的輸入的第一種類(lèi)型的表征數(shù)據(jù)是所請(qǐng)求內(nèi)容的一部分。如圖5A中所圖示,方法500始于在步驟502中通過(guò)從Web服務(wù)器請(qǐng)求所請(qǐng)求內(nèi)容的固定部分。在步驟504中,內(nèi)容緩存從Web服務(wù)器接收所請(qǐng)求內(nèi)容的固定部分。通過(guò)使用所請(qǐng)求內(nèi)容的實(shí)際部分來(lái)表征該內(nèi)容,相似視頻或以?xún)煞N不同編碼格式編碼的相同視頻之間的混淆可以被避免。用于表征目的的所請(qǐng)求內(nèi)容的部分的長(zhǎng)度應(yīng)當(dāng)足夠長(zhǎng)以便唯一地識(shí)別該內(nèi)容。在一些實(shí)施例中,被用作對(duì)哈希算法的輸入的部分的長(zhǎng)度可以通過(guò)存儲(chǔ)在內(nèi)容緩存內(nèi)的配置文件參數(shù)來(lái)設(shè)定。在其它實(shí)施例中,可以由存儲(chǔ)在數(shù)據(jù)庫(kù)中的值來(lái)設(shè)定該部分長(zhǎng)度。在一些實(shí)施例中,為了表征的目的,所請(qǐng)求內(nèi)容的部分是該所請(qǐng)求內(nèi)容的第一個(gè)45k字節(jié)。在其它實(shí)施例中,針對(duì)某些或所有網(wǎng)站可以表征所請(qǐng)求內(nèi)容的不同長(zhǎng)度部分,或者,針對(duì)不同文件格式可以表征不同的部分長(zhǎng)度(例如,F(xiàn)LASH文件的表征可以使用第一部分長(zhǎng)度,而4級(jí)MPEG[MP4]文件的表征可以使用第二部分長(zhǎng)度)。在一些實(shí)施例中,每個(gè)文件格式或每個(gè)網(wǎng)站的要被表征的部分長(zhǎng)度,由存儲(chǔ)于內(nèi)容緩存內(nèi)的文件中或內(nèi)容緩存外部的文件中的參數(shù)所指定。在其它實(shí)施例中,每個(gè)文件格式或每個(gè)網(wǎng)站的要被表征的部分長(zhǎng)度,可以由存儲(chǔ)于內(nèi)容緩存內(nèi)的數(shù)據(jù)庫(kù)中或內(nèi)容緩存外部的數(shù)據(jù)庫(kù)服務(wù)器上的數(shù)據(jù)庫(kù)中的參數(shù)所指定。對(duì)于表征所請(qǐng)求內(nèi)容的部分的一個(gè)要解決的考慮是,視頻內(nèi)容的初始部分通常包含在視頻內(nèi)容的其它方面相同的副本之間變化的元數(shù)據(jù)。例如,特定網(wǎng)站可以存儲(chǔ)和供應(yīng)視頻內(nèi)容的若干個(gè)副本,其除了那些視頻內(nèi)某些元數(shù)據(jù)字段中設(shè)定的值之外是相同的。除非內(nèi)容緩存方 案中考慮到這些元數(shù)據(jù)值差異,否則冗余內(nèi)容(例如,相同視頻內(nèi)容的若干個(gè)副本,僅在元數(shù)據(jù)值中有差異)可能被存儲(chǔ)于緩存數(shù)據(jù)結(jié)構(gòu)內(nèi)的多個(gè)索引中,從而降低內(nèi)容緩存的效率??梢酝ㄟ^(guò)在將所請(qǐng)求內(nèi)容的該部分輸入到哈希函數(shù)中之前,將在要被表征的所請(qǐng)求內(nèi)容的部分內(nèi)的這種元數(shù)據(jù)的值設(shè)定為已知、一致的值來(lái)避免此問(wèn)題。通過(guò)針對(duì)所識(shí)別的元數(shù)據(jù)解析所請(qǐng)求內(nèi)容的部分,用具有適當(dāng)元數(shù)據(jù)值取代所請(qǐng)求內(nèi)容的部分中的現(xiàn)有元數(shù)據(jù)值,以形成所請(qǐng)求內(nèi)容的部分的修改版本,并使用該所請(qǐng)求內(nèi)容的部分的修改版本用于對(duì)哈希算法的輸入,來(lái)設(shè)定這些元數(shù)據(jù)值。例如,如果已知某些網(wǎng)站(或就此而言所有網(wǎng)站)供應(yīng)除特定元數(shù)據(jù)變量的值之外相同的視頻內(nèi)容的副本,則為了表征過(guò)程的目的,該元數(shù)據(jù)變量可以從要被表征的所請(qǐng)求內(nèi)容的部分解析并被設(shè)為零(或一些其它預(yù)定值),如圖5A的步驟506和508 (下面討論)中所圖示的。在此示例中,被單獨(dú)存儲(chǔ)在Web服務(wù)器上且除所識(shí)別的元數(shù)據(jù)變量之外相同的兩個(gè)或更多個(gè)視頻內(nèi)容副本,將(在解析后)具有對(duì)哈希算法的所請(qǐng)求內(nèi)容輸入的相同部分。因此,基于該共同表征,僅在此特定元數(shù)據(jù)值中不同的視頻內(nèi)容副本,可以被緩存在緩存數(shù)據(jù)結(jié)構(gòu)的單個(gè)條目?jī)?nèi)。這樣,僅由于元數(shù)據(jù)值中的變化引起的內(nèi)容緩存中的低效率可以被避免。因此,如步驟506中所示,分析步驟504中所接收的內(nèi)容來(lái)確定該內(nèi)容是否包含要修改的元數(shù)據(jù)。如果步驟506中執(zhí)行的分析確定步驟504中所接收的內(nèi)容包含要被修改的元數(shù)據(jù),則方法繼續(xù)到步驟508,其中元數(shù)據(jù)被修改以在方法繼續(xù)到步驟510之前,減少或消除內(nèi)容混淆。然而,返回到步驟506,如果步驟506中所執(zhí)行的分析確定步驟504中所接收的內(nèi)容不包含要被修改的元數(shù)據(jù),則方法直接繼續(xù)到步驟510。在一些實(shí)施例中,對(duì)于所有網(wǎng)站或?qū)τ谔囟ňW(wǎng)站,以及對(duì)于以特定編碼格式的內(nèi)容,要被設(shè)定的元數(shù)據(jù)變量和它們對(duì)應(yīng)的適當(dāng)值可以在內(nèi)容緩存之內(nèi)存儲(chǔ)的或內(nèi)容緩存外部的參數(shù)文件中被定義。由于上面所討論的原因,一些實(shí)施例將FLV文件內(nèi)的“源數(shù)據(jù)”元數(shù)據(jù)變量解析為32位整數(shù)值并將其設(shè)為O。相比之下,在一些實(shí)施例中,在以MP4格式編碼的文件中其它元數(shù)據(jù)字段被解析和修改。在其它實(shí)施例中,對(duì)于所有網(wǎng)站或?qū)τ谔囟ňW(wǎng)站,以及對(duì)于以特定格式或所有格式編碼的文件,要被解析的元數(shù)據(jù)變量和它們對(duì)應(yīng)的適當(dāng)值可被存儲(chǔ)在內(nèi)容緩存內(nèi)的數(shù)據(jù)庫(kù)中或內(nèi)容緩存外部的數(shù)據(jù)庫(kù)服務(wù)器上的數(shù)據(jù)庫(kù)中。一般來(lái)說(shuō),如下獲得和解析所請(qǐng)求內(nèi)容的初始部分:在從用戶(hù)互聯(lián)網(wǎng)連接裝置接收內(nèi)容請(qǐng)求時(shí),優(yōu)化服務(wù)器從Web服務(wù)器請(qǐng)求所請(qǐng)求內(nèi)容的部分,作為第一種類(lèi)型的表征數(shù)據(jù),即使優(yōu)化服務(wù)器內(nèi)的內(nèi)容緩存可以可了解地持有所請(qǐng)求內(nèi)容的副本。Web服務(wù)器通過(guò)將所請(qǐng)求內(nèi)容的被請(qǐng)求部分以原始格式傳送給優(yōu)化服務(wù)器來(lái)響應(yīng)該請(qǐng)求。在從Web服務(wù)器接收用戶(hù)請(qǐng)求的內(nèi)容的被請(qǐng)求部分時(shí),優(yōu)化服務(wù)器針對(duì)要被修改的元數(shù)據(jù)變量解析該部分(如果有的話(huà))并按照指示修改那些值,以創(chuàng)建所請(qǐng)求內(nèi)容的修改部分。其后,保留所請(qǐng)求內(nèi)容的修改部分以便用作對(duì)哈希算法的輸入。然而,該所請(qǐng)求內(nèi)容的修改部分可能不過(guò)是對(duì)哈希算法的若干個(gè)輸入中的一個(gè)。第二種類(lèi)型的表征數(shù)據(jù)可以是用戶(hù)互聯(lián)網(wǎng)連接裝置從其請(qǐng)求內(nèi)容的網(wǎng)站的根域名(或互聯(lián)網(wǎng)協(xié)議(“IP”)地址)。使用網(wǎng)站的根域名或IP地址作為對(duì)哈希算法的輸入,可以允許內(nèi)容緩存在相同視頻由兩個(gè)或更多網(wǎng)站供應(yīng)的情況之間進(jìn)行區(qū)分。例如,創(chuàng)建數(shù)字視頻的用戶(hù)通常在若干個(gè)視頻共享網(wǎng)站(例如,第一視頻共享站和第二視頻共享站)上發(fā)布他們的視頻。當(dāng)另一個(gè)用戶(hù)從第一視頻共享網(wǎng)站請(qǐng)求該視頻時(shí),輸送與第二視頻共享網(wǎng)站相對(duì)應(yīng)的視頻的被緩存版本將是不期望的,因?yàn)樵撜?qǐng)求是對(duì)第一視頻共享網(wǎng)站做出的。在表征內(nèi)不包括所請(qǐng)求內(nèi)容的根域名的情況下,網(wǎng)站之間的混淆(如由上面示例所示)是可能的。因此,根域名可以被用來(lái)區(qū)分內(nèi)容緩存中的內(nèi)容,從而避免這種混淆。因此,在步驟510中,域名從所請(qǐng)求內(nèi)容的URL中被解析。在此討論的情境中,“根域名”指的是URL中的國(guó)家代碼(例如,“.c0.uk”)或頂級(jí)域(例如,com”)以及單個(gè)前述域字段(例如,“v22.1scache4.c.youtube, com”內(nèi)的“youtube”)。例如,在URL“video-4_ll.rutube.ru”中,根域名(即,頂級(jí)域和單個(gè)前述域字段)將是“rutube.ru”。在另一個(gè)不例中,“cache, youtube, c0.uk” 的根域名為 “youtube.c0.uk”。在第三個(gè)示例中,如果視頻共享網(wǎng)站采用IP地址(諸如“213.174.148.153”)而不是URL用于識(shí)別自身,則該網(wǎng)站的IP地址(“213.174.148.153”)將被用作對(duì)哈希算法的輸入。 然而,在一些情況下,使用來(lái)自所請(qǐng)求內(nèi)容的URL的IP地址作為一種類(lèi)型的表征數(shù)據(jù)可能導(dǎo)致內(nèi)容緩存中的內(nèi)容混淆和錯(cuò)誤丟失。具體來(lái)說(shuō),當(dāng)存儲(chǔ)于相同內(nèi)容提供者的指代相同內(nèi)容的兩個(gè)或更多URL包含不同的IP地址時(shí),為所請(qǐng)求內(nèi)容使用URL中的各種IP地址的內(nèi)容提供者可能導(dǎo)致內(nèi)容緩存內(nèi)的內(nèi)容混淆。另外,使用含有兩個(gè)或更多IP地址來(lái)指代來(lái)自相同內(nèi)容提供者的相同內(nèi)容的URL可能導(dǎo)致降低的緩存性能,因?yàn)閷?duì)來(lái)自?xún)?nèi)容提供者的特定一段內(nèi)容的請(qǐng)求可能利用含有第一 IP地址的URL,而內(nèi)容緩存可能包含在第二IP地址下被索引的所請(qǐng)求內(nèi)容的被緩存副本。在這種情況下,基于兩個(gè)不同的IP地址,盡管相關(guān)聯(lián)的內(nèi)容文件相同,但內(nèi)容緩存可能確定內(nèi)容緩存中存在的內(nèi)容與所請(qǐng)求的內(nèi)容不是相同內(nèi)容。因此,在這樣的情況下,內(nèi)容緩存將轉(zhuǎn)發(fā)與第一 IP地址相關(guān)聯(lián)的內(nèi)容請(qǐng)求給Web服務(wù)器,而不是供應(yīng)被存儲(chǔ)在內(nèi)容緩存中并用第二 IP地址索引的內(nèi)容。因此,總的來(lái)說(shuō),使用引用其內(nèi)容的URL中一個(gè)以上的IP地址的內(nèi)容提供者可能導(dǎo)致內(nèi)容混淆和/或降低的緩存性能。在一些實(shí)施例中,對(duì)于特定內(nèi)容提供者,通過(guò)忽略所請(qǐng)求內(nèi)容的URL內(nèi)的IP地址,可以降低或消除由于與相同內(nèi)容相關(guān)聯(lián)的URL之中的IP地址差異引起的內(nèi)容混淆和緩存性能降低。在一些實(shí)施例中,存儲(chǔ)在內(nèi)容緩存上或內(nèi)容緩存外部的存儲(chǔ)器中的文件可以包含識(shí)別了內(nèi)容緩存應(yīng)當(dāng)針對(duì)哪個(gè)內(nèi)容提供者忽略URL內(nèi)的IP地址的配置信息。在其它實(shí)施例中,識(shí)別內(nèi)容緩存應(yīng)當(dāng)針對(duì)哪個(gè)內(nèi)容提供者忽略URL內(nèi)的IP地址的配置信息可以被存儲(chǔ)在數(shù)據(jù)庫(kù)中,該數(shù)據(jù)庫(kù)在內(nèi)容緩存之內(nèi)或者在內(nèi)容緩存外部。盡管上文所指出的涉及內(nèi)容和與其相關(guān)聯(lián)的解決方案,但從所請(qǐng)求內(nèi)容的URL解析根域名或IP地址可以幫助避免站點(diǎn)間的內(nèi)容混淆,并因此為了索引的目的可以有助于表征所請(qǐng)求內(nèi)容。對(duì)哈希算法的第三輸入,作為表征數(shù)據(jù)的一種形式,可以是所請(qǐng)求內(nèi)容的內(nèi)容長(zhǎng)度。使用內(nèi)容長(zhǎng)度來(lái)表征所請(qǐng)求視頻的一個(gè)好處是區(qū)分所請(qǐng)求內(nèi)容的副本之間存在差異的情況,但是超出被用作對(duì)哈希算法輸入的所請(qǐng)求內(nèi)容的部分的那些差異是存在的。例如,電影的兩個(gè)版本可用于在視頻共享網(wǎng)站上下載。一個(gè)版本可以是完整長(zhǎng)度的電影副本。第二個(gè)版本可以是縮短的版本,僅包括電影的最初幾分鐘。兩個(gè)版本都可以比之前所討論的用作對(duì)哈希算法輸入的部分的長(zhǎng)度更長(zhǎng)(例如,在一些實(shí)施例中,內(nèi)容的最初45KB)。在不使用內(nèi)容長(zhǎng)度作為對(duì)哈希算法輸入的情況下,當(dāng)被內(nèi)容緩存所表征和緩存時(shí),上述兩個(gè)內(nèi)容文件可能混淆。因此,使用內(nèi)容長(zhǎng)度作為輸入,哈希算法可減少內(nèi)容緩存中的混淆,并且當(dāng)為了索引目而表征所請(qǐng)求內(nèi)容時(shí),哈希算法能夠因此有所幫助。因此,在步驟512中,所請(qǐng)求內(nèi) 容的(完整)長(zhǎng)度被確定。在步驟512中所尋求的長(zhǎng)度是所請(qǐng)求內(nèi)容的完整長(zhǎng)度,而不是在步驟502中尋求的所請(qǐng)求內(nèi)容的固定部分的預(yù)定長(zhǎng)度。在一些實(shí)施例中,用戶(hù)請(qǐng)求的內(nèi)容的被請(qǐng)求部分中包括所請(qǐng)求內(nèi)容的完整長(zhǎng)度。然而,一些所請(qǐng)求的內(nèi)容不提供內(nèi)容長(zhǎng)度指示符作為內(nèi)容的一部分。在這種情況下,內(nèi)容緩存可以緩存所請(qǐng)求內(nèi)容,而不使用內(nèi)容長(zhǎng)度作為對(duì)哈希算法的輸入,或者可以根本不緩存所請(qǐng)求的內(nèi)容。一般情況下,不含內(nèi)容長(zhǎng)度指示符的所請(qǐng)求內(nèi)容只發(fā)生在極少數(shù)情況下。因此,在一些實(shí)施例中,內(nèi)容緩存可選擇不對(duì)這樣的所請(qǐng)求內(nèi)容進(jìn)行緩存。然而,這個(gè)默認(rèn)條件,可以通過(guò)在內(nèi)容緩存上所存儲(chǔ)的配置文件中進(jìn)行設(shè)定來(lái)在每個(gè)站點(diǎn)基礎(chǔ)上克服。可替代地,在其它實(shí)施例中,該默認(rèn)條件可以通過(guò)存儲(chǔ)在內(nèi)容緩存上數(shù)據(jù)庫(kù)中的設(shè)定或通過(guò)存儲(chǔ)在外部數(shù)據(jù)庫(kù)服務(wù)器上數(shù)據(jù)庫(kù)中的設(shè)定來(lái)克服。第四類(lèi)型的表征數(shù)據(jù)可以是特定參數(shù)或包含在所請(qǐng)求內(nèi)容的URL內(nèi)的內(nèi)容文件名。在一種情況下,網(wǎng)站可以使用參數(shù),而不是所請(qǐng)求內(nèi)容的文件名,來(lái)識(shí)別所請(qǐng)求的內(nèi)容。在這種情況下,包含在URL中的文件名可以承載很少的或沒(méi)有信息值(且對(duì)所有所請(qǐng)求內(nèi)容可以是共同的),因此這些網(wǎng)站可以依賴(lài)參數(shù)值來(lái)識(shí)別所請(qǐng)求內(nèi)容。因此,在這種情況下,從URL解析參數(shù)并使用參數(shù)作為對(duì)哈希算法的輸入,可以幫助唯一地識(shí)別所請(qǐng)求的內(nèi)容。因此,在步驟514中,所請(qǐng)求內(nèi)容的URL中存在的任何參數(shù)從該URL中被解析。其它網(wǎng)站可能選擇不使用URL參數(shù)來(lái)識(shí)別所請(qǐng)求的內(nèi)容,而是依賴(lài)URL內(nèi)的唯一文件名來(lái)識(shí)別所請(qǐng)求的內(nèi)容。在這種情況下,包括在URL中的文件名可以識(shí)別所請(qǐng)求的內(nèi)容。如下所示簡(jiǎn)要討論每種情況。對(duì)于采用URL參數(shù)方案的網(wǎng)站,這些參數(shù)可以采取若干形式。例如,URL參數(shù)可能涉及,在URL內(nèi)的網(wǎng)頁(yè)后,由問(wèn)號(hào)開(kāi)始并由&符號(hào)分隔的一系列鍵-值組合。這種格式對(duì)Web應(yīng)用是常見(jiàn)的。例如,在 URL “http://v22.1scache4.c.youtube, com/videoplayback ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgoritm%2Cburst%2Cfactor&algorithm=throttle-factor&itag=34&ipbits=0&burst=40&sver=3&expire=1257984000&key=ytl&signature=6B08C4D879658DA664689898E2A87D2AD9383FB2.14F95F7263FF8AD49AB45D78BF740C34694C006&factor=l.25&id=bc90b0f Ibd492a64&” 中,鍵-值對(duì) “ itag=34,,、“key=ytl”和“id=bc9 0b0f Ibd492a64”可能與唯一地識(shí)別所請(qǐng)求的內(nèi)容有關(guān)。在另一個(gè)例子中,參數(shù)可能作為URL內(nèi)子目錄路徑的一部分被嵌入。例如,在URL “http://nyc_v53.pornhub.com/dl/a37364b7cealId5b814d0d0fecce6336/4afafa2b/videos/000/101/667/101667.flv r=58” 中,URL 的“dl/a37364b7cealld5b814d0d0fecce6336/4afafa2b/videos/000/101/667”部分通常代表Web服務(wù)器根目錄下的子目錄。然而,在這種情境中,URL的這部分可能不代表Web服務(wù)器內(nèi)的子目錄,而是可能代表組合起來(lái)唯一地識(shí)別網(wǎng)站上所請(qǐng)求內(nèi)容的標(biāo)識(shí)符。在這種情境中,包括在URL內(nèi)的文件名(例如,“101667.flv”)可能或可能不會(huì)有助于唯一地識(shí)別所請(qǐng)求的內(nèi)容。當(dāng)接收到任一種形式的URL時(shí),內(nèi)容緩存可以通過(guò)解析URL以識(shí)別并提取參數(shù)的名稱(chēng)和值(如果值存在),來(lái)對(duì)此類(lèi)URL作出響應(yīng)。在一些實(shí)施例中,URL解析器被配置為針對(duì)某些網(wǎng)站,基于在內(nèi)容緩存內(nèi)或內(nèi)容緩存外部的配置文件中枚舉和存儲(chǔ)的參數(shù)編碼數(shù)據(jù)和網(wǎng)站來(lái)識(shí)別如上所述的兩種形式的參數(shù)編碼。在其它實(shí)施例中,參數(shù)編碼數(shù)據(jù)和網(wǎng)站名稱(chēng)可以被存儲(chǔ)在數(shù)據(jù)庫(kù)中,該數(shù)據(jù)庫(kù)或者在內(nèi)容緩存內(nèi)或者在外部數(shù)據(jù)庫(kù)服務(wù)器上。對(duì)于特定網(wǎng)站,此配置文件中的信息可以采用URL參數(shù)編碼格式以及用來(lái)從該格式進(jìn)行提取的適當(dāng)參數(shù)名稱(chēng)的列表的形式。根據(jù)該信息,對(duì)于利用名稱(chēng)-值對(duì)的URL,URL解析器可以從其格式也在配置文件中被枚舉的URL中提取任意枚舉的參數(shù)名稱(chēng)和值。根據(jù)該信息,對(duì)于利用子目錄格式的URL,URL解析器可以從子目錄路徑中提取任意枚舉的參數(shù)名稱(chēng)。對(duì)于特定網(wǎng)站,如果格式和變量名在配置文件中被枚舉,則參數(shù)名稱(chēng)(以及可能是參數(shù)值,如果它們存在)可以從其它URL編碼格式中提取。配置文件中可以枚舉和存儲(chǔ)任意數(shù)量的格式和網(wǎng)站。在一些實(shí)施例中,在不影響URL解析結(jié)果的情況下,前述用于配置文件的編碼格式可以允許URL內(nèi)的參數(shù)名稱(chēng)或子目錄名以變化的或不一致的順序出現(xiàn)。例如,在上面的YouTube 示例中,在不阻礙URL的成功解析的情況下,“itag”和“id”參數(shù)可以出現(xiàn)在“itag”參數(shù)先于“id”參數(shù)的一個(gè)URL中,以及這些參數(shù)的順序顛倒的另一個(gè)URL中。在其它實(shí)施例中,對(duì)于某些網(wǎng)站,要識(shí)別的參數(shù)名稱(chēng)和值以及在URL內(nèi)其編碼的格式,可以通過(guò)存儲(chǔ)在內(nèi)容緩存上的數(shù)據(jù)庫(kù)中的,或存儲(chǔ)在內(nèi)容緩存外部的數(shù)據(jù)庫(kù)服務(wù)器內(nèi)的數(shù)據(jù)庫(kù)中的設(shè)定進(jìn)行配置。這些示例說(shuō)明了針對(duì)參數(shù)名稱(chēng)和值解析URL的簡(jiǎn)單性和實(shí)用性。然而,在內(nèi)容緩存的情境中,從所請(qǐng)求內(nèi)容的URL解析參數(shù)值可以有助于表征所請(qǐng)求的內(nèi)容??商娲?,如上文所提到的,一些網(wǎng)站可以不利用URL參數(shù)來(lái)唯一地識(shí)別所請(qǐng)求的內(nèi)容。這些網(wǎng)站可以替代地通過(guò)URL內(nèi)的內(nèi)容文件名來(lái)唯一地識(shí)別所請(qǐng)求的內(nèi)容。在上文的Pornhub 示例中,“ 101667.flv”是URL內(nèi)的文件名,并且對(duì)于所請(qǐng)求內(nèi)容可以是唯一的標(biāo)識(shí)符。在一些實(shí)施例中,對(duì)某些網(wǎng)站,URL解析器被配置為基于存儲(chǔ)在內(nèi)容緩存上的配置文件內(nèi)的設(shè)定,為URL的文件名部分解析所請(qǐng)求內(nèi)容的URL。在步驟516中,一個(gè)或多個(gè)類(lèi)型的表征數(shù)據(jù)被輸入到哈希函數(shù)以確定對(duì)內(nèi)容緩存的索引。在步驟518中,基于步驟516中對(duì)哈希函數(shù)的輸入,方法500以接收來(lái)自哈希函數(shù)的輸出作為結(jié)束。如先前所討論的,該來(lái)自哈希函數(shù)的輸出可以被用作對(duì)緩存數(shù)據(jù)結(jié)構(gòu)的索引。上文討論的另一個(gè)方面與基于特定于該用戶(hù)互聯(lián)網(wǎng)連接裝置的條件來(lái)將不同質(zhì)量水平的數(shù)據(jù)輸送給請(qǐng)求的用戶(hù)互聯(lián)網(wǎng)連接裝置的內(nèi)容緩存有關(guān)。特別是,創(chuàng)建要在互聯(lián)網(wǎng)上與他人共享的視頻內(nèi)容的用戶(hù)可以以未針對(duì)下載進(jìn)行優(yōu)化的分辨率和格式捕獲和上傳該視頻。這種分辨率的一個(gè)示例是“ 1080p”,一種形式的高清晰度視頻。此外,該高清晰度視頻文件可以不利用任何壓縮技術(shù)來(lái)減少用戶(hù)下載高清晰度文件所需的時(shí)間。例如,以IOSOp格式將電影下載到互聯(lián)網(wǎng)連接裝置上的用戶(hù)可能會(huì)發(fā)現(xiàn),由于網(wǎng)絡(luò)帶寬限制,下載花費(fèi)了難以接受的長(zhǎng)時(shí)間來(lái)完成,并且也可能發(fā)現(xiàn),基于互聯(lián)網(wǎng)連接裝置上的低分辨率屏幕,互聯(lián)網(wǎng)連接裝置不能充分利用高解析度內(nèi)容。因此,用戶(hù)、網(wǎng)絡(luò)基礎(chǔ)設(shè)施提供商和網(wǎng)站運(yùn)營(yíng)商可能會(huì)發(fā)現(xiàn)以原始分辨率和格式的文件是不方便處理的。本文所討論方法的一個(gè)方面,涉及以不同的質(zhì)量水平(即,優(yōu)化水平)存儲(chǔ)若干個(gè)版本的緩存數(shù)據(jù)的內(nèi)容緩存 。例如,在一些實(shí)施例中,內(nèi)容緩存可以以原始格式以及以高、中、低分辨率格式中的一個(gè)或多個(gè)來(lái)存儲(chǔ)一段緩存內(nèi)容。高、中、低分辨率格式化的內(nèi)容可以代表為了不同容量的用戶(hù)裝置接收和顯示該內(nèi)容所已經(jīng)創(chuàng)建的原始格式內(nèi)容的優(yōu)化版本。例如,基于針對(duì)該裝置的降低的網(wǎng)絡(luò)通信能力和降低的屏幕分辨率,低分辨率內(nèi)容文件可能適合于互聯(lián)網(wǎng)連接裝置上的用戶(hù)。在一個(gè)實(shí)施例中,通過(guò)將質(zhì)量水平指示符附加到每個(gè)版本的內(nèi)容的文件名上,這些各種版本的內(nèi)容可以被識(shí)別并與以原始格式的內(nèi)容相區(qū)分。例如,如果一段內(nèi)容被識(shí)別為“123ab”,則對(duì)于該內(nèi)容以原始格式存儲(chǔ)的版本,文件名可以是“123ab.0”(其中“O”對(duì)應(yīng)于“原始”),而對(duì)于該內(nèi)容的高、中、和低質(zhì)量版本,文件名分別可以是“123ab.H”、“123ab.Μ”和“123ab.L”?;诖嗣麘T例,內(nèi)容緩存可以識(shí)別與其存儲(chǔ)的每個(gè)內(nèi)容文件相關(guān)聯(lián)的質(zhì)量水平,并可以容易地確認(rèn)所請(qǐng)求內(nèi)容在特定質(zhì)量水平的版本是否可用。在一些實(shí)施例中,這些各種質(zhì)量水平可以構(gòu)成相同編碼技術(shù)(例如,MP4)內(nèi)的更高或更低的分辨率格式,并且在其它實(shí)施例中,這些各種質(zhì)量水平可以代表以不同編碼格式存儲(chǔ)的內(nèi)容。在一些實(shí)施例中,分辨率和編碼格式二者都可以在質(zhì)量水平之間變化。在一些實(shí)施例中,如上文所討論的,內(nèi)容緩存在按需基礎(chǔ)上生成并存儲(chǔ)所請(qǐng)求內(nèi)容以適當(dāng)質(zhì)量水平的副本。例如,如果用戶(hù)互聯(lián)網(wǎng)連接裝置對(duì)來(lái)自?xún)?nèi)容緩存的內(nèi)容的做出請(qǐng)求,且內(nèi)容緩存確定所請(qǐng)求的內(nèi)容,即使是以原始格式,也沒(méi)有被存儲(chǔ)在內(nèi)容緩存中,則內(nèi)容緩存從Web服務(wù)器以原始格式獲得所請(qǐng)求的內(nèi)容。其后,以適合于對(duì)該內(nèi)容進(jìn)行請(qǐng)求的用戶(hù)的質(zhì)量水平,內(nèi)容緩存創(chuàng)建所請(qǐng)求內(nèi)容的優(yōu)化版本。然后,在內(nèi)容緩存內(nèi),內(nèi)容緩存以原始格式存儲(chǔ)所請(qǐng)求內(nèi)容,并同樣存儲(chǔ)所請(qǐng)求內(nèi)容的優(yōu)化版本。如上文所討論的,在一些實(shí)施例中,存儲(chǔ)在內(nèi)容緩存內(nèi)的所請(qǐng)求內(nèi)容的版本可以通過(guò)將質(zhì)量指示符附加到該內(nèi)容的文件名而被識(shí)別和區(qū)分。最后,內(nèi)容緩存將所請(qǐng)求內(nèi)容的優(yōu)化版本,傳送到用戶(hù)互聯(lián)網(wǎng)連接
>J-U ρ α裝直。類(lèi)似地,如果用戶(hù)互聯(lián)網(wǎng)連接裝置從內(nèi)容緩存請(qǐng)求內(nèi)容,并且內(nèi)容緩存具有以原始格式存儲(chǔ)的所請(qǐng)求內(nèi)容但內(nèi)容緩存沒(méi)有以適合于該用戶(hù)互聯(lián)網(wǎng)連接裝置的質(zhì)量水平存儲(chǔ)的所請(qǐng)求內(nèi)容,則在不與Web服務(wù)器進(jìn)行交互的情況下,內(nèi)容緩存可以?xún)?yōu)化原始格式內(nèi)容以便創(chuàng)建以適合于該用戶(hù)互聯(lián)網(wǎng)連接裝置的質(zhì)量水平的所請(qǐng)求內(nèi)容的副本。然后,內(nèi)容緩存將所請(qǐng)求內(nèi)容的優(yōu)化副本存儲(chǔ)在內(nèi)容緩存內(nèi),并將所請(qǐng)求內(nèi)容的副本傳送到請(qǐng)求的用戶(hù)互聯(lián)網(wǎng)連接裝置。這種以不同質(zhì)量水平輸送所請(qǐng)求內(nèi)容的方法避免了表征內(nèi)容緩存中每段內(nèi)容的每個(gè)優(yōu)化版本。此外,這種方法避免了為所請(qǐng)求內(nèi)容的每個(gè)優(yōu)化版本在內(nèi)容緩存索引中存儲(chǔ)條目。因此,內(nèi)容緩存有效地供應(yīng)不同質(zhì)量水平的內(nèi)容,同時(shí)避免冗余的緩存條目或不必要的內(nèi)容表征。在其它實(shí)施例中,根據(jù)對(duì)以特定質(zhì)量水平的所請(qǐng)求內(nèi)容的特定段的第一請(qǐng)求,內(nèi)容緩存可以創(chuàng)建與所有質(zhì)量水平對(duì)應(yīng)的所請(qǐng)求內(nèi)容的優(yōu)化副本。當(dāng)本文所討論的實(shí)施例是針對(duì)將內(nèi)容輸送給互聯(lián)網(wǎng)連接裝置時(shí),所討論的實(shí)施例也同樣較好地適用于將內(nèi)容輸送給采用有線(xiàn)網(wǎng)絡(luò)連接來(lái)訪問(wèn)由動(dòng)態(tài)URL所引用的視頻內(nèi)容的其它計(jì)算裝置。雖然上文所 公開(kāi)的實(shí)施例包括使用被輸入到哈希算法的多達(dá)四種類(lèi)型的表征數(shù)據(jù)來(lái)生成緩存索引,但本文的討論很容易適用于使用少于所有四種類(lèi)型的表征數(shù)據(jù)作為到哈希算法的輸入,或使用前述組件和技術(shù)的其它變型。
權(quán)利要求
1.一種用于對(duì)內(nèi)容緩存內(nèi)的緩存數(shù)據(jù)結(jié)構(gòu)中的內(nèi)容進(jìn)行索引的方法,所述方法包括: 從用戶(hù)互聯(lián)網(wǎng)連接裝置接收內(nèi)容請(qǐng)求; 從Web服務(wù)器請(qǐng)求與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容的部分; 針對(duì)與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容,識(shí)別至少一個(gè)表征數(shù)據(jù),其中,所述至少一個(gè)表征數(shù)據(jù)包括與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容的部分;以及 通過(guò)將所述至少一個(gè)被識(shí)別的表征數(shù)據(jù)輸入到哈希函數(shù)中,生成對(duì)應(yīng)于與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容的索引,其中,所生成的索引被用于在緩存數(shù)據(jù)結(jié)構(gòu)中識(shí)別與內(nèi)容相關(guān)聯(lián)的條目。
2.根據(jù)權(quán)利要求1的方法,其中識(shí)別至少一個(gè)表征數(shù)據(jù)包括從與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的統(tǒng)一資源定位符(URL)解析域名,其中域名包括第一部分和第二部分,其中第一部分包括URL內(nèi)的頂級(jí)域或國(guó)家代碼,以及第二部分包括在第一部分之前的URL的部分。
3.根據(jù)權(quán)利要求1的方法,其中識(shí)別至少一個(gè)表征數(shù)據(jù)包括從與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的統(tǒng)一資源定位符(URL)解析IP地址。
4.根據(jù)權(quán)利要求3的 方法,其中如果被解析的IP地址被包含在從所述至少一個(gè)表征數(shù)據(jù)排除的IP地址的集合中,則從與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的URL解析IP地址將被解析的IP地址從所述至少一個(gè)表征數(shù)據(jù)排除。
5.根據(jù)權(quán)利要求1的方法,其中識(shí)別至少一個(gè)表征數(shù)據(jù)包括為與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容進(jìn)行長(zhǎng)度確定。
6.根據(jù)權(quán)利要求1的方法,其中識(shí)別至少一個(gè)表征數(shù)據(jù)包括從與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的URL解析一個(gè)或多個(gè)參數(shù)。
7.根據(jù)權(quán)利要求1的方法,其中,在將與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容的部分輸入到哈希函數(shù)中之前,與內(nèi)容的所請(qǐng)求的部分相關(guān)聯(lián)的至少一個(gè)元數(shù)據(jù)值被設(shè)定為預(yù)定值,內(nèi)容的所請(qǐng)求的部分與從用戶(hù)互聯(lián)網(wǎng)連接裝置接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)。
8.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),在其上存儲(chǔ)一組指令,當(dāng)所述指令被執(zhí)行時(shí),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)提供包括以下內(nèi)容的方法: 從用戶(hù)互聯(lián)網(wǎng)連接裝置接收內(nèi)容請(qǐng)求; 從Web服務(wù)器請(qǐng)求與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容的部分; 針對(duì)與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容,識(shí)別至少一個(gè)表征數(shù)據(jù),其中,所述至少一個(gè)表征數(shù)據(jù)包括與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容的部分;以及 通過(guò)將所述至少一個(gè)被識(shí)別的表征數(shù)據(jù)輸入到哈希函數(shù)中,生成對(duì)應(yīng)于與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容的索引,其中,所生成的索引被用于在緩存數(shù)據(jù)結(jié)構(gòu)中識(shí)別與內(nèi)容相關(guān)聯(lián)的條目。
9.根據(jù)權(quán)利要求8的計(jì)算機(jī)可讀介質(zhì),其中識(shí)別至少一個(gè)表征數(shù)據(jù)包括從與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的統(tǒng)一資源定位符(URL)解析域名,其中域名包括第一部分和第二部分,其中第一部分包括URL內(nèi)的頂級(jí)域或國(guó)家代碼,以及第二部分包括在第一部分之前的URL的部分。
10.根據(jù)權(quán)利要求8的計(jì)算機(jī)可讀介質(zhì),其中識(shí)別至少一個(gè)表征數(shù)據(jù)包括從與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的統(tǒng)一資源定位符(URL)解析IP地址。
11.根據(jù)權(quán)利要求10的計(jì)算機(jī)可讀介質(zhì),其中如果被解析的IP地址被包含在從所述至少一個(gè)表征數(shù)據(jù)排除的IP地址的集合中,則從與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的URL解析IP地址將被解析的IP地址從所述至少一個(gè)表征數(shù)據(jù)排除。
12.根據(jù)權(quán)利要求8的計(jì)算機(jī)可讀介質(zhì),其中識(shí)別至少一個(gè)表征數(shù)據(jù)包括為與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容進(jìn)行長(zhǎng)度確定。
13.根據(jù)權(quán)利要求8的計(jì)算機(jī)可讀介質(zhì),其中識(shí)別至少一個(gè)表征數(shù)據(jù)包括從與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的URL解析一個(gè)或多個(gè)參數(shù)。
14.根據(jù)權(quán)利要求8的計(jì)算機(jī)可讀介質(zhì),其中,在將與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容的部分輸入到哈希函數(shù)中之前,與內(nèi)容的所請(qǐng)求的部分相關(guān)聯(lián)的至少一個(gè)元數(shù)據(jù)值被設(shè)定為預(yù)定值,內(nèi)容的所請(qǐng)求的部分與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)。
15.一種用于對(duì)內(nèi)容進(jìn)行索引的系統(tǒng),所述系統(tǒng)包括: 處理器;以及 存儲(chǔ)器,其中用指令編碼所述存儲(chǔ)器,當(dāng)所述指令被執(zhí)行時(shí),執(zhí)行包括以下內(nèi)容的步驟: 從用戶(hù)互聯(lián)網(wǎng)連接裝置接收內(nèi)容請(qǐng)求; 從Web服務(wù)器請(qǐng)求與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容的部分; 針對(duì)與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容,識(shí)別至少一個(gè)表征數(shù)據(jù),其中,所述至少一個(gè)表征數(shù)據(jù)包括與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容的部分;以及 通過(guò)將所述至少一個(gè)被識(shí)別的表征數(shù)據(jù)輸入到哈希函數(shù)中,生成對(duì)應(yīng)于與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容的索引,其中,所生成的索引被用于在緩存數(shù)據(jù)結(jié)構(gòu)中識(shí)別與內(nèi)容相關(guān)聯(lián)的條目。
16.根據(jù)權(quán)利要求15的系統(tǒng),其中識(shí)別至少一個(gè)表征數(shù)據(jù)包括從與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的統(tǒng)一資源定位符(URL)解析域名,其中域名包括第一部分和第二部分,其中第一部分包括URL內(nèi)的頂級(jí)域或國(guó)家代碼,以及第二部分包括在第一部分之前的URL的部分。
17.根據(jù)權(quán)利要求15的系統(tǒng),其中識(shí)別至少一個(gè)表征數(shù)據(jù)包括從與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的統(tǒng)一資源定位符(URL)解析IP地址。
18.根據(jù)權(quán)利要求17的系統(tǒng),其中如果被解析的IP地址被包含在從所述至少一個(gè)表征數(shù)據(jù)排除的IP地址的集合中,則從與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的URL解析IP地址將被解析的IP地址從所述至少一個(gè)表征數(shù)據(jù)排除。
19.根據(jù)權(quán)利要求15的系統(tǒng),其中識(shí)別至少一個(gè)表征數(shù)據(jù)包括為與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容進(jìn)行長(zhǎng)度確定。
20.根據(jù)權(quán)利要求15的系統(tǒng),其中識(shí)別至少一個(gè)表征數(shù)據(jù)包括從與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的URL解析一個(gè)或多個(gè)參數(shù)。
21.根據(jù)權(quán)利要求15的系統(tǒng),其中,在將與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容的部分輸入到哈希函數(shù)中之前,與內(nèi)容的所請(qǐng)求的部分相關(guān)聯(lián)的至少一個(gè)元數(shù)據(jù)值被設(shè)定為預(yù)定值,內(nèi)容的所請(qǐng)求的部分與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)。
全文摘要
本發(fā)明公開(kāi)了用于對(duì)在內(nèi)容緩存內(nèi)的緩存數(shù)據(jù)結(jié)構(gòu)中的內(nèi)容進(jìn)行索引的方法和系統(tǒng)。該方法和系統(tǒng)識(shí)別與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的至少一個(gè)表征數(shù)據(jù),并將該至少一個(gè)表征數(shù)據(jù)輸入到哈希函數(shù)中,以生成用于識(shí)別與緩存數(shù)據(jù)結(jié)構(gòu)中所請(qǐng)求內(nèi)容相關(guān)聯(lián)的條目的索引。該至少一個(gè)表征數(shù)據(jù)可以包括與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容的一部分、與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的統(tǒng)一資源定位符(URL)的一部分、與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的IP地址、與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的內(nèi)容長(zhǎng)度、以及從與所接收到的內(nèi)容請(qǐng)求相關(guān)聯(lián)的URL中解析的一個(gè)或多個(gè)參數(shù)。
文檔編號(hào)H04N21/472GK103222272SQ201180046902
公開(kāi)日2013年7月24日 申請(qǐng)日期2011年7月29日 優(yōu)先權(quán)日2010年7月30日
發(fā)明者F.庫(kù)普曼斯, M.梅爾尼克, R.巴利克 申請(qǐng)人:拜特移動(dòng)網(wǎng)絡(luò)公司