国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      對分片請求進(jìn)行定長對齊的緩存方法、系統(tǒng)及裝置制造方法

      文檔序號:7979645閱讀:246來源:國知局
      對分片請求進(jìn)行定長對齊的緩存方法、系統(tǒng)及裝置制造方法
      【專利摘要】本發(fā)明提出一種對分片請求進(jìn)行定長對齊的緩存方法、系統(tǒng)和裝置。其中方法包括以下步驟:接收具有第一播放范圍的第一用戶請求,并根據(jù)所述第一播放范圍將所述第一用戶請求切分為多個(gè)第一用戶子請求,其中,每個(gè)所述第一用戶子請求具有相同長度的播放范圍且所述多個(gè)第一用戶子請求之間相互對齊;分別將所述多個(gè)第一用戶子請求發(fā)送至源站進(jìn)行回源操作,并接收所述源站返回的多個(gè)分段;以及將所述多個(gè)分段中的每個(gè)分段作為單獨(dú)對象存儲至緩存中,每個(gè)所述單獨(dú)對象具有對應(yīng)的播放范圍。本發(fā)明將分片的請求轉(zhuǎn)換成為定長對齊的對象片段,然后將每個(gè)片段看作一個(gè)獨(dú)立對象再進(jìn)行回源和緩存的存取,既節(jié)約了帶寬,又避免了拼接分段的復(fù)雜度。
      【專利說明】對分片請求進(jìn)行定長對齊的緩存方法、系統(tǒng)及裝置
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及互聯(lián)網(wǎng)【技術(shù)領(lǐng)域】,尤其涉及一種對分片請求進(jìn)行定長對齊的緩存方法、系統(tǒng)及裝置。
      【背景技術(shù)】
      [0002]對于作為緩存功能的http服務(wù)器代理而言(典型應(yīng)用如CDN),對緩存不命中的對象,需要回源站取。
      [0003]具體地,現(xiàn)有的http代理對帶播放范圍的分片請求的處理方式有以下兩種:
      [0004]1、回源時(shí),讀取整個(gè)對象,并將整個(gè)對象存到緩存中,即整存整取。這種方式的問題是,如果每個(gè)分片的大小相對于整個(gè)對象的比例很小,而且分片較多,那么會(huì)造成大量的帶寬浪費(fèi)。而且如果用戶請求的播放范圍在對象的靠后位置,那么也會(huì)影響用戶響應(yīng)時(shí)間。針對上述問題,現(xiàn)有的解決方案是在每次源上有新對象時(shí),手動(dòng)請求代理服務(wù)器,把整個(gè)對象從源服務(wù)器填充到代理服務(wù)器中,但是這樣會(huì)增大人工成本,增加代理服務(wù)器的邏輯。
      [0005]2、回源時(shí),轉(zhuǎn)發(fā)用戶的具有播放范圍的請求,僅請求用戶請求的片段,然后在本地對片段進(jìn)行拼接。這種方式的問題是,要求代理的緩存系統(tǒng)支持分片存儲的功能,同時(shí)要求代理的緩存系統(tǒng)對分片進(jìn)行拼接,復(fù)雜度高。

      【發(fā)明內(nèi)容】

      [0006]本發(fā)明旨在至少解決上述技術(shù)問題之一。
      [0007]為此,本發(fā)明的一個(gè)目的在于提出一種能夠節(jié)約帶寬同時(shí)避免拼接分片的復(fù)雜度的對分片請求進(jìn)行定長對齊的緩存方法。
      [0008]本發(fā)明的另一目的在于提出一種對分片請求進(jìn)行定長對齊的緩存系統(tǒng)。
      [0009]本發(fā)明的再一個(gè)目的在于提出一種HTTP服務(wù)器。
      [0010]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的第一方面實(shí)施例的對分片請求進(jìn)行定長對齊的緩存方法,包括以下步驟:接收具有第一播放范圍的第一用戶請求,并根據(jù)所述第一播放范圍將所述第一用戶請求切分為多個(gè)第一用戶子請求,其中,每個(gè)所述第一用戶子請求具有相同長度的播放范圍且所述多個(gè)第一用戶子請求之間相互對齊;分別將所述多個(gè)第一用戶子請求發(fā)送至源站進(jìn)行回源操作,并接收所述源站返回的多個(gè)分段;以及將所述多個(gè)分段中的每個(gè)分段作為單獨(dú)對象存儲至緩存中,每個(gè)所述單獨(dú)對象具有對應(yīng)的播放范圍。
      [0011]根據(jù)本發(fā)明實(shí)施例的對分片請求進(jìn)行定長對齊的緩存方法,將分片的請求轉(zhuǎn)換成為定長對齊的對象片段,然后將每個(gè)片段看作一個(gè)獨(dú)立對象再進(jìn)行回源和緩存的存取,既節(jié)約了帶寬,又避免了拼接分段的復(fù)雜度。
      [0012]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的第二方面實(shí)施例的對分片請求進(jìn)行定長對齊的緩存系統(tǒng),包括:源站;HTTP服務(wù)器,所述HTTP服務(wù)器具有緩存功能,用于接收具有第一播放范圍的第一用戶請求,并根據(jù)所述第一播放范圍將所述第一用戶請求切分為多個(gè)第一用戶子請求,其中,每個(gè)所述第一用戶子請求具有相同長度的播放范圍且所述多個(gè)第一用戶子請求之間相互對齊,以及分別將所述多個(gè)第一用戶子請求發(fā)送至所述源站進(jìn)行回源操作,并接收所述源站返回的多個(gè)分段,和將所述多個(gè)分段中的每個(gè)分段作為單獨(dú)對象存儲至所述緩存中,其中,每個(gè)所述單獨(dú)對象具有對應(yīng)的播放范圍。
      [0013]根據(jù)本發(fā)明實(shí)施例的對分片請求進(jìn)行定長對齊的緩存系統(tǒng),將分片的請求轉(zhuǎn)換成為定長對齊的對象片段,然后將每個(gè)片段看作一個(gè)獨(dú)立對象再進(jìn)行回源和緩存的存取,既節(jié)約了帶寬,又避免了拼接分段的復(fù)雜度。
      [0014]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的第三方面實(shí)施例的HTTP服務(wù)器,包括:接收模塊,用于接收具有第一播放范圍的第一用戶請求;切分模塊,用于根據(jù)所述第一播放范圍將所述第一用戶請求切分為多個(gè)第一用戶子請求,其中,每個(gè)所述第一用戶子請求具有相同長度的播放范圍且所述多個(gè)第一用戶子請求之間相互對齊;回源模塊,用于分別將所述多個(gè)第一用戶子請求發(fā)送至源站進(jìn)行回源操作,并接收所述源站返回的多個(gè)分段;以及緩存模塊,用于將所述多個(gè)分段中的每個(gè)分段作為單獨(dú)對象存儲至緩存中,每個(gè)所述單獨(dú)對象具有對應(yīng)的播放范圍。
      [0015]根據(jù)本發(fā)明實(shí)施例的HTTP服務(wù)器,將分片的請求轉(zhuǎn)換成為定長對齊的對象片段,然后將每個(gè)片段看作一個(gè)獨(dú)立對象再進(jìn)行回源和緩存的存取,既節(jié)約了帶寬,又避免了拼接分段的復(fù)雜度。
      [0016]本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
      【專利附圖】

      【附圖說明】
      [0017]本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對實(shí)施例的描述中將變得明顯和容易理解,其中,
      [0018]圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的對分片請求進(jìn)行定長對齊的緩存方法的流程圖;
      [0019]圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的對分片請求進(jìn)行定長對齊的緩存方法的流程圖;
      [0020]圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的對分片請求進(jìn)行定長對齊的緩存方法的流程圖;
      [0021]圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的對分片請求進(jìn)行定長對齊的緩存系統(tǒng)的結(jié)構(gòu)示意圖;
      [0022]圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的HTTP服務(wù)器的結(jié)構(gòu)示意圖;
      [0023]圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的HTTP服務(wù)器的結(jié)構(gòu)示意圖;以及
      [0024]圖7是根據(jù)本發(fā)明一個(gè)實(shí)施例的HTTP服務(wù)器的結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0025]下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。相反,本發(fā)明的實(shí)施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
      [0026]在本發(fā)明的描述中,需要理解的是,術(shù)語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。在本發(fā)明的描述中,需要說明的是,除非另有明確的規(guī)定和限定,術(shù)語“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連。對于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。此外,在本發(fā)明的描述中,除非另有說明,“多個(gè)”的含義是兩個(gè)或兩個(gè)以上。
      [0027]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個(gè)或更多個(gè)用于實(shí)現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實(shí)施方式的范圍包括另外的實(shí)現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時(shí)的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本發(fā)明的實(shí)施例所屬【技術(shù)領(lǐng)域】的技術(shù)人員所理解。
      [0028]下面參考附圖描述根據(jù)本發(fā)明實(shí)施例的報(bào)文過濾/限速方法。
      [0029]一種對分片請求進(jìn)行定長對齊的緩存方法,包括以下步驟:接收具有第一播放范圍的第一用戶請求,并根據(jù)第一播放范圍將第一用戶請求切分為多個(gè)第一用戶子請求,其中,每個(gè)第一用戶子請求具有相同長度的播放范圍且多個(gè)第一用戶子請求之間相互對齊;分別將多個(gè)第一用戶子請求發(fā)送至源站進(jìn)行回源操作,并接收源站返回的多個(gè)分段;以及將多個(gè)分段中的每個(gè)分片作為單獨(dú)對象存儲至緩存中,每個(gè)單獨(dú)對象具有對應(yīng)的播放范圍。
      [0030]圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的對分片請求進(jìn)行定長對齊的緩存方法的流程圖。
      [0031]如圖1所示,根據(jù)本發(fā)明實(shí)施例的對分片請求進(jìn)行定長對齊的緩存方法包括下述步驟。
      [0032]步驟S 101,接收具有第一播放范圍的第一用戶請求,并根據(jù)第一播放范圍將第一用戶請求切分為多個(gè)第一用戶子請求,其中,每個(gè)第一用戶子請求具有相同長度的播放范圍且多個(gè)第一用戶子請求之間相互對齊。
      [0033]具體地,多個(gè)用戶子請求之間相互對齊指的是,每個(gè)用戶子請求都是從O、100、200等類似固定的點(diǎn)開始。
      [0034]此外,HTTP協(xié)議的播放范圍的格式有三種:一種是包括起始字節(jié)和結(jié)束字節(jié);一種是包括起始字節(jié)和播放范圍的總長度;另一種是起始字節(jié)和結(jié)束字節(jié)均不知道。
      [0035]因此,在本發(fā)明的一個(gè)實(shí)施例中,對于包括起始字節(jié)和結(jié)束字節(jié)的播放范圍請求,可根據(jù)用戶子請求中播放范圍的長度、起始字節(jié)和結(jié)束字節(jié)對用戶請求進(jìn)行劃分。例如,假設(shè)定長分段長度(用戶子請求中播放范圍的長度)為100,用戶一次請求的播放范圍是50-350,那么此次用戶請求會(huì)被切分成0-99,100-199, 200-299, 300-399四個(gè)用戶子請求。
      [0036]在本發(fā)明的另一個(gè)實(shí)施例中,對于包括起始字節(jié)和播放范圍總長度的播放范圍請求,可根據(jù)播放范圍的總長度和起始字節(jié)對用戶請求進(jìn)行劃分。具體地,首先根據(jù)起始字節(jié)可以構(gòu)造出第一個(gè)子請求;根據(jù)HTTP協(xié)議,根據(jù)第一子請求返回的響應(yīng)頭中會(huì)包含Content-Length頭,標(biāo)明此對象的總長度,據(jù)此就可以得到用戶請求的結(jié)束字節(jié),然后構(gòu)造后續(xù)子請求。
      [0037]在本發(fā)明的又一個(gè)實(shí)施例中,對于起始字節(jié)和結(jié)束字節(jié)均不知道的情況,由于無法構(gòu)造出第一個(gè)子請求,因此可以首先發(fā)出一個(gè)頭請求,以從源獲得對象總長度,然后計(jì)算用戶請求分片位置。但是,由于部分源服務(wù)器不支持頭請求,因此在本發(fā)明的一個(gè)實(shí)施例中是發(fā)出一個(gè)只請求第一字節(jié)的播放范圍請求,進(jìn)而獲得對象總長度,然后計(jì)算用戶請求分片位置。由于只請求第一字節(jié),所以浪費(fèi)的流量可以忽略。
      [0038]步驟S 102,分別將多個(gè)第一用戶子請求發(fā)送至源站進(jìn)行回源操作,并接收源站返回的多個(gè)分段。
      [0039]由于將一個(gè)用戶請求拆分為多個(gè)子請求,這些子請求間的時(shí)間間隔會(huì)增大用戶接收響應(yīng)的延時(shí)。因此,在本發(fā)明的一個(gè)實(shí)施例中,可以一次并行發(fā)送多個(gè)第一用戶子請求,實(shí)現(xiàn)加速。
      [0040]步驟S103,將多個(gè)分段中的每個(gè)分段作為單獨(dú)對象存儲至緩存中,每個(gè)單獨(dú)對象具有對應(yīng)的播放范圍。
      [0041]根據(jù)本發(fā)明實(shí)施例的對分片請求進(jìn)行定長對齊的緩存方法,將分片的請求轉(zhuǎn)換成為定長對齊的對象片段,然后將每個(gè)片段看作一個(gè)獨(dú)立對象再進(jìn)行回源和緩存的存取,既節(jié)約了帶寬,又避免了拼接分段的復(fù)雜度。
      [0042]圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的對分片請求進(jìn)行定長對齊的緩存方法的流程圖。
      [0043]如圖2所示,根據(jù)本發(fā)明實(shí)施例的對分片請求進(jìn)行定長對齊的緩存方法包括下述步驟。
      [0044]步驟S201,接收具有第一播放范圍的第一用戶請求,并根據(jù)第一播放范圍將第一用戶請求切分為多個(gè)第一用戶子請求,其中,每個(gè)第一用戶子請求具有相同長度的播放范圍且多個(gè)第一用戶子請求之間相互對齊。
      [0045]步驟S202,分別將多個(gè)第一用戶子請求發(fā)送至源站進(jìn)行回源操作,并接收源站返回的多個(gè)分段。
      [0046]步驟S203,將多個(gè)分段中的每個(gè)分段作為單獨(dú)對象存儲至緩存中,每個(gè)單獨(dú)對象具有對應(yīng)的播放范圍。
      [0047]步驟S204,接收具有第二播放范圍的第二用戶請求,并根據(jù)第二播放范圍將第二用戶請求切分為多個(gè)第二用戶子請求,其中,每個(gè)第二用戶子請求具有相同長度的播放范圍且多個(gè)第二用戶子請求之間相互對齊。
      [0048]步驟S204的具體實(shí)現(xiàn)過程可與步驟S201相同,此處不再詳細(xì)描述。
      [0049]步驟S205,判斷多個(gè)第二用戶子請求中是否有播放范圍與緩存中保存的單獨(dú)對象的播放范圍相同的第二用戶子請求。
      [0050]步驟S206,如果有播放范圍相同的第二用戶子請求,則從緩存中獲得與播放范圍相同的第二用戶子請求所對應(yīng)的單獨(dú)對象。
      [0051]如果沒有播放范圍相同的第二用戶子請求,則執(zhí)行與步驟S202類似的操作,也就是分別將多個(gè)第二用戶子請求發(fā)送至源站進(jìn)行回源操作,并接受源站返回的多個(gè)分段,然后將多個(gè)分段中的每個(gè)分段作為單獨(dú)對象存儲至緩存中。
      [0052]例如,假設(shè)配置定長分段長度為100,用戶第一次請求的播放范圍是50-350,那么此第一用戶請求會(huì)被切分為0-99、100-199、200-299、300-399四個(gè)第一用戶子請求,分別回源,并將取回的四個(gè)分段作為四個(gè)單獨(dú)對象存儲在緩存中。如果再有請求的播放范圍是310-410,那么該第二用戶請求會(huì)被拆分為300-399和400-499兩個(gè)第二用戶子請求。由于第一個(gè)第二用戶子請求對應(yīng)的分段已經(jīng)存儲在緩存中,所以緩存命中;第二個(gè)第二用戶子請求對應(yīng)的分段則需要回源取回并存到緩存中。
      [0053]應(yīng)理解,同樣地,多個(gè)第二用戶子請求也可并行發(fā)送,實(shí)現(xiàn)加速。[0054]根據(jù)本發(fā)明實(shí)施例的對分片請求進(jìn)行定長對齊的緩存方法,通過從緩存中直接獲取播放范圍與第二用戶子請求的播放范圍相同的單獨(dú)對象,節(jié)省大量的流量。
      [0055]圖3為本發(fā)明一個(gè)實(shí)施例的對分片請求進(jìn)行定長對齊的緩存方法的流程圖。
      [0056]如圖3所示,根據(jù)本發(fā)明實(shí)施例的對分片請求進(jìn)行定長對齊的緩存方法包括下述步驟。
      [0057]步驟S301,接收具有第一播放范圍的第一用戶請求,并根據(jù)第一播放范圍將第一用戶請求切分為多個(gè)第一用戶子請求,其中,每個(gè)第一用戶子請求具有相同長度的播放范圍且多個(gè)第一用戶子請求之間相互對齊。
      [0058]步驟S302,分別將多個(gè)第一用戶子請求發(fā)送至源站進(jìn)行回源操作,并接收源站返回的多個(gè)分段。
      [0059]步驟S303,將多個(gè)分段中的每個(gè)分段作為單獨(dú)對象存儲至緩存中,每個(gè)單獨(dú)對象具有對應(yīng)的播放范圍。
      [0060]步驟S304,接收具有第二播放范圍的第二用戶請求,并根據(jù)第二播放范圍將第二用戶請求切分為多個(gè)第二用戶子請求,其中,每個(gè)第二用戶子請求具有相同長度的播放范圍且多個(gè)第二用戶子請求之間相互對齊。
      [0061]步驟S305,判斷多個(gè)第二用戶子請求中是否有播放范圍與緩存中保存的單獨(dú)對象的播放范圍相同的第二用戶子請求。
      [0062]步驟S306,如果有播放范圍相同的第二用戶子請求,則從緩存中獲得與播放范圍相同的第二用戶子請求所對應(yīng)的單獨(dú)對象。
      [0063]步驟S307,在處理完第一和第二用戶請求所屬用戶的全部用戶請求之后,釋放多個(gè)第一和第二用戶子請求所占用的資源。
      [0064]為了實(shí)現(xiàn)簡單,在本發(fā)明的實(shí)施例中,子請求在結(jié)束后并不會(huì)立即釋放資源,而是當(dāng)全部用戶請求之后才一起釋放資源。由此,應(yīng)理解,如果用戶請求的播放范圍遠(yuǎn)大于分片長度(每個(gè)用戶子請求的長度),就會(huì)產(chǎn)生大量子請求,進(jìn)而占用大量內(nèi)存。因此,為了解決上述問題,在本發(fā)明的一個(gè)實(shí)施例中,通過對子請求各種狀態(tài)的綜合分析,可以對子請求的實(shí)際結(jié)束時(shí)間點(diǎn)進(jìn)行精確判斷,進(jìn)而可以復(fù)用已經(jīng)確認(rèn)結(jié)束的子請求的內(nèi)存和緩存等資源,避免生成大量子請求而導(dǎo)致的內(nèi)存浪費(fèi)。
      [0065]根據(jù)本發(fā)明實(shí)施例的對分片請求進(jìn)行定長對齊的緩存方法,在整個(gè)用戶請求結(jié)束后才一起釋放子請求所占用的資源,實(shí)現(xiàn)簡單。
      [0066]在本發(fā)明的一個(gè)實(shí)施例中,步驟S304至步驟S307為可選的。
      [0067]下面結(jié)合附圖詳細(xì)描述根據(jù)本發(fā)明實(shí)施例的對分片請求進(jìn)行定長對齊的緩存系統(tǒng)。
      [0068]一種對分片請求進(jìn)行定長對齊的緩存系統(tǒng),包括:源站;HTTP服務(wù)器,HTTP服務(wù)器具有緩存功能,用于接收具有第一播放范圍的第一用戶請求,并根據(jù)第一播放范圍將第一用戶請求切分為多個(gè)第一用戶子請求,其中,每個(gè)第一用戶子請求具有相同長度的播放范圍且多個(gè)第一用戶子請求之間相互對齊,以及分別將多個(gè)第一用戶子請求發(fā)送至源站進(jìn)行回源操作,并接收源站返回的多個(gè)分段,和將多個(gè)分段中的每個(gè)分段作為單獨(dú)對象存儲至緩存中,其中,每個(gè)單獨(dú)對象具有對應(yīng)的播放范圍。
      [0069]圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的對分片請求進(jìn)行定長對齊的緩存系統(tǒng)的結(jié)構(gòu)示意圖。如圖4所示,該緩存系統(tǒng)包括:源站I和HTTP服務(wù)器2。
      [0070]HTTP服務(wù)器2具有緩存功能,用于接收具有第一播放范圍的第一用戶請求,并根據(jù)第一播放范圍將第一用戶請求切分為多個(gè)第一用戶子請求,其中,每個(gè)第一用戶子請求具有相同長度的播放范圍且多個(gè)第一用戶子請求之間相互對齊,然后分別將多個(gè)第一用戶子請求發(fā)送至源站I進(jìn)行回源操作,并接收源站I返回的多個(gè)分段,之后將多個(gè)分段中的每個(gè)分段作為單獨(dú)對象存儲至緩存中,其中,每個(gè)單獨(dú)對象具有對應(yīng)的播放范圍。
      [0071]根據(jù)本發(fā)明實(shí)施例的對分片請求進(jìn)行定長對齊的緩存系統(tǒng),將分片的請求轉(zhuǎn)換成為定長對齊的對象片段,然后將每個(gè)片段看作一個(gè)獨(dú)立對象再進(jìn)行回源和緩存的存取,既節(jié)約了帶寬,又避免了拼接分段的復(fù)雜度。
      [0072]在本發(fā)明的一個(gè)實(shí)施例中,HTTP服務(wù)器為Nginx服務(wù)器。Nginx服務(wù)器是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/P0P3/SMTP代理服務(wù)器,具有穩(wěn)定性高、功能集豐富、示例配置文件和系統(tǒng)資源消耗低的優(yōu)點(diǎn),此外Nginx的模塊化機(jī)制非常強(qiáng)大,通過增加模塊而不修改主體代碼就能實(shí)現(xiàn)期望功能。
      [0073]在本發(fā)明的一個(gè)實(shí)施例中,HTTP服務(wù)器2還用于接收具有第二播放范圍的第二用戶請求,并根據(jù)第二播放范圍將第二用戶請求切分為多個(gè)第二用戶子請求,其中,每個(gè)第二用戶子請求具有相同長度的播放范圍且多個(gè)第二用戶子請求之間相互對齊,然后判斷多個(gè)第二用戶子請求是否有播放范圍與緩存中保存的單獨(dú)對象的播放范圍相同的第二用戶子請求,并在多個(gè)第二用戶子請求中有播放范圍與緩存中保存的單獨(dú)對象的播放范圍相同的第二用戶子請求時(shí),從緩存中獲得與播放范圍相同的第二用戶子請求所對應(yīng)的單獨(dú)對象。由此,相對于整存整取的每次回源需要取回整個(gè)對象,本發(fā)明實(shí)施例節(jié)省了大量帶寬。另夕卜,由于每個(gè)分段都作為獨(dú)立對象單獨(dú)存放在緩存中,因此避免了拼接的復(fù)雜度。
      [0074]在本發(fā)明的一個(gè)實(shí)施例中,第一或第二播放范圍包括起始字節(jié)和結(jié)束字節(jié)。因此,HTTP服務(wù)器2根據(jù)每個(gè)第一或第二用戶子請求中播放范圍的長度、起始字節(jié)和結(jié)束字節(jié)將第一或第二用戶請求切分為多個(gè)第一或第二用戶子請求。
      [0075]在本發(fā)明的另一個(gè)實(shí)施例中,第一或第二播放范圍包括起始字節(jié)、第一或第二播放范圍的總長度。因此,HTTP服務(wù)器2根據(jù)每個(gè)第一或第二播放范圍的總長度和起始字節(jié)將第一或第二用戶請求切分為多個(gè)第一或第二用戶子請求。
      [0076]在本發(fā)明的又一個(gè)實(shí)施例中,對用戶請求的第一或第二播放范圍的起始字節(jié)和結(jié)束字節(jié)均不知道,無法構(gòu)造出第一個(gè)有效子請求,對此可以首先發(fā)出一個(gè)頭請求,以從源站獲得對象總長度,然后計(jì)算用戶請求分片的位置。但是,由于部分源服務(wù)器不支持頭請求,因此在本發(fā)明的一個(gè)實(shí)施例中,HTTP服務(wù)器2發(fā)出一個(gè)只請求第一字節(jié)的播放范圍請求,進(jìn)而獲得對象總長度,然后計(jì)算用戶請求分片位置。由于只請求第一字節(jié),因此浪費(fèi)的流量可以忽略。
      [0077]應(yīng)理解,由于本發(fā)明將一個(gè)用戶請求拆分為多個(gè)子請求,這些子請求間的間隔時(shí)間就增大了用戶接收響應(yīng)的延遲。因此,在本發(fā)明的一個(gè)實(shí)施例中,在確認(rèn)需要發(fā)出的請求個(gè)數(shù)后,可以一次并行發(fā)送多個(gè)第一或第二用戶子請求,實(shí)現(xiàn)加速。應(yīng)理解,子請求的并發(fā)數(shù)可以自行配置。
      [0078]此外,在本發(fā)明的一個(gè)實(shí)施例中,為了實(shí)現(xiàn)簡單,HTTP服務(wù)器2還用于在處理完第一或第二用戶請求所屬用戶的全部用戶請求之后,才釋放多個(gè)第一或第二用戶子請求所占用的資源。
      [0079]下面結(jié)合附圖詳細(xì)描述根據(jù)本發(fā)明實(shí)施例的HTTP服務(wù)器。
      [0080]圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的HTTP服務(wù)器的結(jié)構(gòu)示意圖。如圖5所示,該HTTP服務(wù)器包括:接收模塊110、切分模塊120、回源模塊130和緩存模塊140。
      [0081]接收模塊110用于接收具有第一播放范圍的第一用戶請求。切分模塊120用于根據(jù)第一播放范圍將第一用戶請求切分為多個(gè)第一用戶子請求,其中,每個(gè)第一用戶子請求具有相同長度的播放范圍且多個(gè)第一用戶請求之間相互對齊?;卦茨K130用于分別將多個(gè)第一用戶子請求發(fā)送至源站進(jìn)行回源操作,并接收源站返回的多個(gè)分段。緩存模塊140用于將多個(gè)分段中的每個(gè)分段作為單獨(dú)對象進(jìn)行存儲,其中每個(gè)單獨(dú)對象具有對應(yīng)的播放范圍。
      [0082]根據(jù)本發(fā)明實(shí)施例的HTTP服務(wù)器,將分片的請求轉(zhuǎn)換成為定長對齊的對象片段,然后將每個(gè)片段看作一個(gè)獨(dú)立對象再進(jìn)行回源和緩存的存取,既節(jié)約了帶寬,又避免了拼接分段的復(fù)雜度。
      [0083]圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的HTTP服務(wù)器的結(jié)構(gòu)示意圖。如圖6所示,該HTTP服務(wù)器還包括調(diào)取模塊150。
      [0084]在本發(fā)明的實(shí)施例中,接收模塊110還用于接收具有第二播放范圍的第二用戶請求。切分模塊120還用于根據(jù)第二播放范圍將第二用戶請求切分為多個(gè)第二用戶子請求,其中,每個(gè)第二用戶子請求具有相同長度的播放范圍且多個(gè)第二用戶子請求之間相互對齊。
      [0085]調(diào)取模塊150用于在多個(gè)第二用戶子請求中具有播放范圍與緩存模塊140中保存的單獨(dú)對象的播放范圍相同的第二用戶子請求時(shí),從緩存模塊140中獲得與播放范圍相同的第二用戶子請求所對應(yīng)的單獨(dú)對象。
      [0086]根據(jù)本發(fā)明實(shí)施例的HTTP服務(wù)器,通過從緩存中直接調(diào)取播放范圍與第二用戶子請求的播放范圍相同的單獨(dú)對象,節(jié)省大量的流量。
      [0087]在本發(fā)明的一個(gè)實(shí)施例中,第一或第二用戶子請求并行發(fā)送,實(shí)現(xiàn)加速,避免因子請求之間的間隔時(shí)間而增大用戶接收響應(yīng)的延遲。
      [0088]圖7為根據(jù)本發(fā)明一個(gè)實(shí)施例的HTTP服務(wù)器的結(jié)構(gòu)示意圖。如圖所示,該HTTP服務(wù)器還包括釋放模塊160。
      [0089]釋放模塊160用于在處理完第一或第二用戶請求所屬用戶的全部用戶請求之后,釋放多個(gè)第一或第二用戶子請求所占用的資源。
      [0090]應(yīng)理解,如果用戶請求的播放范圍遠(yuǎn)大于分片長度(每個(gè)用戶子請求的長度),就會(huì)產(chǎn)生大量子請求,進(jìn)而占用大量內(nèi)存。因此,為了解決上述問題,在本發(fā)明的一個(gè)實(shí)施例中,通過對子請求各種狀態(tài)的綜合分析,可以對子請求的實(shí)際結(jié)束時(shí)間點(diǎn)進(jìn)行精確判斷,進(jìn)而可以復(fù)用已經(jīng)確認(rèn)結(jié)束的子請求的內(nèi)存和緩存等資源,避免生成大量子請求而導(dǎo)致的內(nèi)
      存浪費(fèi)。
      [0091]根據(jù)本發(fā)明實(shí)施例的HTTP服務(wù)器,在整個(gè)用戶請求結(jié)束后才一起釋放子請求所占用的資源,實(shí)現(xiàn)簡單。
      [0092]在本發(fā)明的一個(gè)實(shí)施例中,調(diào)取模塊150為可選的。
      [0093]應(yīng)理解,上述各個(gè)模塊或者裝置的具體實(shí)現(xiàn)過程可與上述方法實(shí)施例的描述相對應(yīng),此處不再詳細(xì)描述。
      [0094]應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實(shí)現(xiàn)。例如,如果用硬件來實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來實(shí)現(xiàn):具有用于對數(shù)據(jù)信號實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
      [0095]在本說明書的描述中,參考術(shù)語“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。
      [0096]盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,對于本領(lǐng)域的普通技術(shù)人員而言,可以理解在不脫離本發(fā)明的原理和精神的情況下可以對這些實(shí)施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由所附權(quán)利要求及其等同限定。
      【權(quán)利要求】
      1.一種對分片請求進(jìn)行定長對齊的緩存方法,其特征在于,包括以下步驟: 接收具有第一播放范圍的第一用戶請求,并根據(jù)所述第一播放范圍將所述第一用戶請求切分為多個(gè)第一用戶子請求,其中,每個(gè)所述第一用戶子請求具有相同長度的播放范圍且所述多個(gè)第一用戶子請求之間相互對齊; 分別將所述多個(gè)第一用戶子請求發(fā)送至源站進(jìn)行回源操作,并接收所述源站返回的多個(gè)分段;以及 將所述多個(gè)分段中的每個(gè)分段作為單獨(dú)對象存儲至緩存中,每個(gè)所述單獨(dú)對象具有對應(yīng)的播放范圍。
      2.如權(quán)利要求1所述的對分片請求進(jìn)行定長對齊的緩存方法,其特征在于,還包括: 接收具有第二播放范圍的第二用戶請求,并根據(jù)所述第二播放范圍將所述第二用戶請求切分為多個(gè)第二用戶子請求,其中,每個(gè)所述第二用戶子請求具有相同長度的播放范圍且所述多個(gè)第二用戶子請求之間相互對齊; 判斷所述多個(gè)第二用戶子請求中是否有播放范圍與所述緩存中保存的所述單獨(dú)對象的播放范圍相同的第二用戶子請求; 如果有播放范圍相同的第二用戶子請求,則從所述緩存中獲得與所述單獨(dú)對象的播放范圍相同的第二用戶子請求所對應(yīng)的所述單獨(dú)對象。
      3.如權(quán)利要求1或2所述的對分片請求進(jìn)行定長對齊的緩存方法,其特征在于,所述第一或第二播放范圍包括起始字節(jié)和結(jié)束字節(jié)。
      4.如權(quán)利要求3所述的對分片請求進(jìn)行定長對齊的緩存方法,其特征在于,所述根據(jù)第一或第二播放范圍將所述第一或第二用戶請求切分為多個(gè)第一或第二用戶子請求進(jìn)一步包括: 根據(jù)每個(gè)所述第一或第二用戶子請求中播放范圍的長度、所述起始字節(jié)和所述結(jié)束字節(jié)對所述第一或第二用戶請求進(jìn)行切分。
      5.如權(quán)利要求1或2所述的對分片請求進(jìn)行定長對齊的緩存方法,其特征在于,所述第一或第二播放范圍包括起始字節(jié)、第一或第二播放范圍的總長度。
      6.如權(quán)利要求5所述的對分片請求進(jìn)行定長對齊的緩存方法,其特征在于,所述根據(jù)第一或第二播放范圍將所述第一或第二用戶請求切分為多個(gè)第一或第二用戶子請求進(jìn)一步包括: 根據(jù)每個(gè)所述第一或第二播放范圍的總長度、所述起始字節(jié)對所述第一或第二用戶請求進(jìn)行切分。
      7.如權(quán)利要求1或2所述的對分片請求進(jìn)行定長對齊的緩存方法,其特征在于,還包括: 向所述源站發(fā)送播放范圍請求,所述播放范圍請求只請求第一字節(jié)。
      8.如權(quán)利要求1-7任一項(xiàng)所述的對分片請求進(jìn)行定長對齊的緩存方法,其特征在于,還包括: 所述多個(gè)第一或第二用戶子請求為并行發(fā)送。
      9.如權(quán)利要求1-8任一項(xiàng)所述的對分片請求進(jìn)行定長對齊的緩存方法,其特征在于,還包括: 在處理完所述第一或第二用戶請求所屬用戶的全部用戶請求之后,釋放所述多個(gè)第一或第二用戶子請求所占用的資源。
      10.一種對分片請求進(jìn)行定長對齊的緩存系統(tǒng),其特征在于,包括: 源站; HTTP服務(wù)器,所述HTTP服務(wù)器具有緩存功能,用于接收具有第一播放范圍的第一用戶請求,并根據(jù)所述第一播放范圍將所述第一用戶請求切分為多個(gè)第一用戶子請求,其中,每個(gè)所述第一用戶子請求具有相同長度的播放范圍且所述多個(gè)第一用戶子請求之間相互對齊,以及分別將所述多個(gè)第一用戶子請求發(fā)送至所述源站進(jìn)行回源操作,并接收所述源站返回的多個(gè)分段,和將所述多個(gè)分段中的每個(gè)分段作為單獨(dú)對象存儲至所述緩存中,其中,每個(gè)所述單獨(dú)對象具有對應(yīng)的播放范圍。
      11.如權(quán)利要求10所述的對分片請求進(jìn)行定長對齊的緩存系統(tǒng),其特征在于,所述HTTP服務(wù)器為Nginx服務(wù)器。
      12.如權(quán)利要求10所述的對分片請求進(jìn)行定長對齊的緩存系統(tǒng),其特征在于,所述HTTP服務(wù)器還用于接收具有第二播放范圍的第二用戶請求,并根據(jù)所述第二播放范圍將所述第二用戶請求切分為多個(gè)第二用戶子請求,其中,每個(gè)所述第二用戶子請求具有相同長度的播放范圍且所述多個(gè)第二用戶子請求之間相互對齊,以及在所述多個(gè)第二用戶子請求中有播放范圍與所述緩存中保存的所述單獨(dú)對象的播放范圍相同的第二用戶子請求時(shí),從所述緩存中獲得與所述播放范圍相同的第二用戶子請求所對應(yīng)的所述單獨(dú)對象。
      13.如權(quán)利要求10或12所述的對分片請求進(jìn)行定長對齊的緩存系統(tǒng),其特征在于,所述第一或第二播放范圍包括起始字節(jié)和結(jié)束字節(jié)。
      14.如權(quán)利要求13所述的對分片請求進(jìn)行定長對齊的緩存系統(tǒng),其特征在于,所述HTTP服務(wù)器根據(jù)每個(gè)所述第一或第二用戶子請求中播放范圍的長度、所述起始字節(jié)和所述結(jié)束字節(jié)對所述第一或第 二用戶請求進(jìn)行切分。
      15.如權(quán)利要求10或12所述的對分片請求進(jìn)行定長對齊的緩存系統(tǒng),其特征在于,所述第一或第二播放范圍包括起始字節(jié)、第一或第二播放范圍的總長度。
      16.如權(quán)利要求15所述的對分片請求進(jìn)行定長對齊的緩存系統(tǒng),其特征在于,所述HTTP服務(wù)器根據(jù)每個(gè)所述第一或第二播放范圍的總長度、所述起始字節(jié)對所述第一或第二用戶請求進(jìn)行切分。
      17.如權(quán)利要求10或12所述的對分片請求進(jìn)行定長對齊的緩存方法,其特征在于,所述HTTP服務(wù)器還用于向所述源站發(fā)送播放范圍請求,所述播放范圍請求只請求第一字節(jié)。
      18.如權(quán)利要求10或12所述的對分片請求進(jìn)行定長對齊的緩存方法,其特征在于,其中,所述多個(gè)第一或第二用戶子請求為并行發(fā)送。
      19.如權(quán)利要求10或12所述的對分片請求進(jìn)行定長對齊的緩存方法,其特征在于,所述HTTP服務(wù)器還用于在處理完所述第一或第二用戶請求所屬用戶的全部用戶請求之后,釋放所述多個(gè)第一或第二用戶子請求所占用的資源。
      20.—種HTTP服務(wù)器,其特征在于,包括: 接收模塊,用于接收具有第一播放范圍的第一用戶請求; 切分模塊,用于根據(jù)所述第一播放范圍將所述第一用戶請求切分為多個(gè)第一用戶子請求,其中,每個(gè)所述第一用戶子請求具有相同長度的播放范圍且所述多個(gè)第一用戶子請求之間相互對齊;回源模塊,用于分別將所述多個(gè)第一用戶子請求發(fā)送至源站進(jìn)行回源操作,并接收所述源站返回的多個(gè)分段;以及 緩存模塊,用于將所述多個(gè)分段中的每個(gè)分段作為單獨(dú)對象進(jìn)行存儲,每個(gè)所述單獨(dú)對象具有對應(yīng)的播放范圍。
      21.如權(quán)利要求20所述的HTTP服務(wù)器,其特征在于, 所述接收模塊,還用于接收具有第二播放范圍的第二用戶請求; 所述切分模塊,還用于根據(jù)所述第二播放范圍將所述第二用戶請求切分為多個(gè)第二用戶子請求,其中,每個(gè)所述第二用戶子請求具有相同長度的播放范圍且所述多個(gè)第二用戶子請求之間相互對齊。
      22.如權(quán)利要求21所述的HTTP服務(wù)器,其特征在于,還包括: 調(diào)取模塊,用于在所述多個(gè)第二用戶子請求中具有播放范圍與所述緩存模塊中保存的所述單獨(dú)對象的播放范圍相同的第二用戶子請求時(shí),從所述緩存模塊中獲得與所述播放范圍相同的第二用戶子請求所對應(yīng)的所述單獨(dú)對象。
      23.如權(quán)利要求21或22所述的HTTP服務(wù)器,其特征在于,所述多個(gè)第一或第二用戶子請求為并行發(fā)送。
      24.如權(quán)利要求21所述的HTTP服務(wù)器,其特征在于,還包括: 釋放模塊,用于在處理完所述第一或第二用戶請求所屬用戶的全部用戶請求之后,釋放所述多個(gè)第一或第二用戶子請求所占用的資源。
      【文檔編號】H04L29/08GK103475679SQ201210185452
      【公開日】2013年12月25日 申請日期:2012年6月6日 優(yōu)先權(quán)日:2012年6月6日
      【發(fā)明者】武炳正 申請人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1