本發明涉及網絡技術領域,尤其涉及一種基于CDN的訪問控制方法及相關設備。
背景技術:
內容分發網絡(CDN,Content Delivery Network)是一種在現有互聯網基礎之上通過在網絡各處放置的節點服務器所構成的一層智能虛擬網絡。CDN能夠實時地根據網絡流量和各節點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節點上,其目的是能夠選擇離用戶相對較近的節點向用戶發送用戶所需的內容,緩解網絡擁擠的狀況,提高網站的響應速度。
現有技術中提供一種基于CDN的訪問控制方法大致如下所示:
當用戶通過用戶代理(例如,瀏覽器、下載工具或流媒體播放器)訪問業務服務器的內容資源時,業務服務器根據CDN服務器提供的算法及密鑰生成統一資源定位器(URL,Uniform Resource Locator),該URL指向CDN服務器中的內容資源,用戶通過該URL訪問CDN服務器中的內容資源,CDN服務器將用戶請求的內容資源發送給用戶。
但是,如果入侵者對通過用戶代理獲取的URL進行破解,就可以獲取內容資源的實際地址,入侵者可能繞過業務服務器,通過該實際地址獲取內容資源,因此CDN服務器存儲的內容資源存在一定風險。
技術實現要素:
本發明實施例提供了一種基于CDN的訪問控制方法以及CDN服務器、業務服務器,能夠提高存儲于CDN服務器的內容資源的安全性。
本發明實施例第一方面提供了一種基于CDN的訪問控制方法,包括:
CDN服務器接收用戶終端發送的HTTP請求及用戶終端的標識信息,上述HTTP請求包含訪問票據,上述訪問票據用于標識用戶訪問權限;
上述CDN服務器將上述用戶終端的標識信息及上述HTTP請求發送給業 務服務器,以使得上述業務服務器利用上述用戶終端的標識信息對上述訪問票據進行認證;
若認證結果為上述訪問票據合法,上述CDN服務器接收上述業務服務器返回的包含內容指紋的HTTP響應,上述內容指紋用于標識內容資源;
上述CDN服務器根據上述內容指紋獲取內容資源后發送給上述用戶終端。
結合本發明實施例第一方面,本發明實施例第一方面的第一種實現方式中,所述CDN服務器接收用戶終端發送的HTTP請求及用戶終端的標識信息之前包括:
上述CDN服務器接收上述業務服務器發送的內容指紋及內容資源;
上述CDN服務器檢查其自身是否已存儲上述內容指紋或內容資源,若否,則保存上述內容指紋及內容資源,若是,丟棄上述內容指紋及上述內容資源。
結合本發明第一方面,本發明第一方面的第二種實現方式中,上述CDN服務器將上述內容資源發送給上述用戶終端之后包括:
若在預設時段內上述內容資源被訪問的次數不大于預設閾值,上述CDN服務器從上述業務服務器獲取更新的內容資源以及內容指紋。
本發明實施例第二方面提供了一種基于CDN的訪問控制方法,包括:
業務服務器接收CDN服務器發送的HTTP請求及用戶終端的標識信息,上述HTTP請求包含有訪問票據,上述訪問票據用于標識用戶訪問權限;
上述業務服務器利用上述用戶終端的標識信息對上述訪問票據進行認證;
若認證結果為上述訪問票據合法,上述業務服務器將包含內容指紋的HTTP響應返回給上述CDN服務器,以使得上述CDN服務器根據上述內容指紋獲取內容資源。
結合本發明實施例第二方面,本發明實施例第二方面的第一種實現方式中,上述業務服務器將包含內容指紋的HTTP響應返回給上述CDN服務器之前包括:
上述業務服務器對內容資源進行哈希運算得到內容指紋;
上述業務服務器將內容資源及內容指紋發送給上述CDN服務器。
結合本發明實施例第二方面,本發明實施例第二方面的第二種實現方式中,上述業務服務器將包含上述內容指紋的HTTP響應返回給上述CDN服務器之后包括:
上述業務服務器接收上述CDN服務器發送的包含URL的內容更新請求;
上述業務服務器根據上述URL查找內容資源及內容指紋;
上述業務服務器將上述URL對應的內容資源及上述內容指紋返回給上述CDN服務器。
本發明實施例第三方面提供了一種基于CDN的訪問控制方法,包括:
業務服務器接收用戶終端發送的HTTP請求,所述HTTP請求用于獲取內容資源;
上述業務服務器根據上述HTTP請求生成URL,上述URL包含上述內容資源對應的內容指紋;
上述業務服務器將上述URL返回給用戶終端,以使得上述用戶終端向CDN服務器發送包含上述URL的HTTP請求。
本發明實施例第四方面提供了一種基于CDN的訪問控制方法,包括:
CDN服務器接收用戶終端發送的HTTP請求,上述HTTP請求包含內容指紋;
上述CDN服務器根據上述內容指紋獲取對應的內容資源;
上述CDN服務器將上述內容資源發送給上述用戶終端。
本發明實施例第五方面提供了一種基于CDN的訪問控制方法,包括:
用戶終端向業務服務器發送HTTP請求,HTTP請求用于獲取內容資源;
上述用戶終端接收業務服務器返回的URL,上述URL包含上述內容資源對應的內容指紋;
上述用戶終端向CDN服務器發送HTTP請求,上述HTTP請求包含上述內容指紋,以使得上述CDN服務器根據上述內容指紋獲取對應的內容資源;
上述用戶終端接收上述CDN服務器返回的上述內容資源。
本發明實施例第六方面提供了一種CDN服務器,包括:
接收模塊,用于接收用戶終端發送的HTTP請求及用戶終端的標識信息,上述HTTP請求包含訪問票據,上述訪問票據用于標識用戶訪問權限;
發送模塊,用于將上述用戶終端的標識信息及上述HTTP請求發送給業務服務器,以使得上述業務服務器利用上述用戶終端的標識信息對上述訪問票據進行認證;
上述接收模塊,還用于若認證結果為上述訪問票據合法,接收上述業務服務器返回的包含內容指紋的HTTP響應,上述內容指紋用于標識內容資源;
獲取模塊,用于根據上述內容指紋獲取內容資源后發送給上述用戶終端。
結合本發明實施例第六方面,本發明實施例第六方面的第一種實現方式中,上述接收模塊,還用于接收上述業務服務器發送的內容指紋及內容資源;
上述CDN服務器還包括:
檢查模塊,用于檢查其自身是否已存儲上述內容指紋,若否,則觸發保存模塊保存上述內容指紋及上述內容資源的步驟,若是,則觸發執行模塊丟棄上述內容指紋及上述內容資源;
保存模塊,用于保存上述內容指紋及上述內容資源;
執行模塊,用于丟棄上述內容指紋及上述內容資源。
結合本發明實施例第六方面,本發明實施例第六方面的第二種實現方式中,
上述獲取模塊,還用于若在預設時段內所述內容資源被訪問的次數不大于預設閾值,從所述業務服務器獲取更新的內容資源以及內容指紋。
本發明實施例第七方面提供了一種業務服務器,包括:
接收模塊,用于接收CDN服務器發送的HTTP請求及用戶終端的標識信息,上述HTTP請求包含有上述訪問票據;
認證模塊,用于利用上述用戶終端的標識信息對上述訪問票據進行認證;
發送模塊,用于若認證結果為所述訪問票據合法,將包含內容指紋的HTTP響應返回給上述CDN服務器,以使得上述CDN服務器根據上述內容指紋獲取內容資源。
結合本發明實施例第七方面,本發明實施例第七方面的第一種實現方式中,上述業務服務器還包括:
運算模塊,用于對內容資源進行哈希運算得到內容指紋,上述內容指紋用于標識內容資源;
上述發送模塊,還用于將上述內容資源及內容指紋發送給上述CDN服務器。
結合本發明實施例第七方面,本發明實施例第七方面的第二種實現方式中,
上述接收模塊,還用于接收上述CDN服務器發送的包含URL的內容更新請求;
所述業務服務器還包括:查找模塊,用于根據上述URL查找內容資源及內容指紋;
上述發送模塊,還用于將上述URL對應的內容資源及上述內容指紋返回給上述CDN服務器。
本發明實施例第八方面提供了一種業務服務器,包括:
接收模塊,用于接收用戶終端發送的HTTP請求,所述HTTP請求用于獲取內容資源;
生成模塊,用于根據上述HTTP請求生成URL,上述URL包含上述內容資源對應的內容指紋;
發送模塊,用于將上述URL返回給用戶終端,以使得上述用戶終端向CDN服務器發送包含上述URL的HTTP請求。
本發明實施例第九方面提供了一種CDN服務器,包括:
接收模塊,用于接收用戶終端發送的HTTP請求,上述HTTP請求包含內容指紋;
獲取模塊,用于根據上述內容指紋獲取對應的內容資源;
發送模塊,用于將上述內容資源發送給上述用戶終端。
本發明實施例第十方面提供了一種用戶終端,包括:
發送模塊,用于向業務服務器發送HTTP請求,上述HTTP請求用于獲取內容資源;
接收模塊,用于接收業務服務器返回的URL,上述URL包含上述內容資源對應的內容指紋;
上述發送模塊,還用于向CDN服務器發送HTTP請求,上述HTTP請求包含上述內容指紋;
上述接收模塊,接收上述CDN服務器返回的內容資源。
本發明實施例第十一方面提供了一種CDN服務器,包括:
接收裝置,用于接收用戶終端發送的HTTP請求及用戶終端的標識信息,上述HTTP請求包含訪問票據,上述訪問票據用于標識用戶訪問權限;
發送裝置,用于將上述用戶終端的標識信息及上述HTTP請求發送給業務服務器,以使得上述業務服務器利用上述用戶終端的標識信息對上述訪問票據進行認證;
上述接收裝置,用于若認證結果為上述訪問票據合法,接收上述業務服務器返回的包含內容指紋的HTTP響應,上述內容指紋用于標識內容資源;
處理器,用于根據上述內容指紋獲取內容資源后發送給所述用戶終端。
結合本發明實施例第十一方面,本發明實施例第十一方面的第一種實現方式中,
上述接收裝置,還用于接收上述業務服務器發送的內容指紋及內容資源;
上述處理器,還用于檢查其自身是否已存儲上述內容指紋,若否,則保存上述內容指紋及上述內容資源,若是,則丟棄上述內容指紋及上述內容資源。
結合本發明實施例第十一方面,本發明實施例第十一方面的第二種實現方式中,所述處理器,還用于若在預設時段內所述內容資源被訪問的次數不大于預設閾值,從所述業務服務器獲取更新的內容資源以及內容指紋。
本發明實施例第十二方面提供了一種業務服務器,包括:
接收裝置,用于接收CDN服務器發送的HTTP請求及用戶終端的標識信息,上述HTTP請求包含有訪問票據;
處理器,用于利用上述用戶終端的標識信息對上述訪問票據進行認證;
發送裝置,用于若認證結果為所述訪問票據合法,將包含上述內容指紋的HTTP響應返回給上述CDN服務器,以使得上述CDN服務器根據上述內容指紋獲取內容資源。
結合本發明實施例第十二方面,本發明實施例第十二方面的第一種實現方式中,上述處理器,還用于對內容資源進行哈希運算得到內容指紋,上述內容指紋用于標識內容資源;
上述發送裝置,用于將上述內容資源及內容指紋發送給上述CDN服務器。
結合本發明實施例第十二方面,本發明實施例第十二方面的第二種實現方式中,上述接收裝置,還用于接收上述CDN服務器發送的包含URL的內容更新請求;
上述處理器,還用于根據上述URL查找內容資源及內容指紋;
上述發送裝置,還用于將上述URL對應的內容資源及上述內容指紋返回給上述CDN服務器。
本發明實施例第十三方面提供了一種業務服務器,包括:
接收裝置,用于接收用戶終端發送的HTTP請求,所述HTTP請求用于獲取內容資源;
處理器,用于根據上述HTTP請求生成URL,上述URL包含上述內容資源對應的內容指紋;
發送裝置,用于將上述URL返回給用戶終端,以使得上述用戶終端向CDN服務器發送包含上述URL的HTTP請求。
本發明實施例第十四方面提供了一種CDN服務器,包括:
接收裝置,用于接收用戶終端發送的HTTP請求,上述HTTP請求包含內容指紋;
處理器,用于根據上述內容指紋獲取對應的內容資源;
發送裝置,用于將上述內容資源發送給上述用戶終端。
本發明實施例第十五面提供了一種用戶終端,包括:
發送裝置,用于向業務服務器發送HTTP請求,HTTP請求用于獲取內容資源;
接收裝置,用于接收業務服務器返回的URL,上述URL包含上述內容資源對應的內容指紋;
上述發送裝置,還用于向CDN服務器發送HTTP請求,上述HTTP請求包含上述內容指紋,以使得上述CDN服務器根據上述內容指紋獲取對應的內容資源;
上述接收裝置,還用于接收上述CDN服務器返回的內容資源。
從以上技術方案可以看出,本發明實施例具有以下優點:
本發明實施例中,CDN服務器接收用戶終端發送的HTTP請求以及用戶終端的標識信息,HTTP請求包含訪問票據,訪問票據用于標識用戶訪問權限,將用戶終端的標識信息及HTTP請求發送給業務服務器,以使得業務服務器利用用戶終端的標識信息對訪問票據進行認證,若認證結果為訪問票據合法,接收業務服務器返回的包含內容指紋的HTTP響應,內容指紋用于標識內容資源,根據內容指紋獲取內容資源后,將內容資源發送給用戶終端,CDN服務器不會根據HTTP請求將內容資源直接返回給用戶終端,而是接收業務服務器對HTTP請求認證成功的結果之后,根據內容指紋查找并返回內容資源,內容指紋由業務服務器與CDN服務器存儲,不經過用戶終端,入侵者無法通過用戶終端獲取內容指紋,而沒有內容指紋無法獲取內容資源,因此提高了內容資源的安全性。
附圖說明
圖1為現有技術中基于CDN的訪問控制方法的一個信令流程示意圖;
圖2為本發明實施例中基于CDN的訪問控制方法的一個信令流程示意圖;
圖3為本發明實施例中基于CDN的訪問控制方法的一個流程示意圖;
圖4為本發明實施例中基于CDN的訪問控制方法的另一個流程示意圖;
圖5為本發明實施例中基于CDN的訪問控制方法的另一個信令流程示意圖;
圖6為本發明實施例中基于CDN的訪問控制方法的另一個流程示意圖;
圖7為本發明實施例中基于CDN的訪問控制方法的另一個流程示意圖;
圖8為本發明實施例中基于CDN的訪問控制方法的另一個流程示意圖;
圖9為本發明實施例中CDN服務器的一個結構示意圖;
圖10為本發明實施例中CDN服務器的另一個結構示意圖;
圖11為本發明實施例中業務服務器的一個結構示意圖;
圖12為本發明實施例中業務服務器的另一個結構示意圖;
圖13為本發明實施例中業務服務器的另一個結構示意圖;
圖14為本發明實施例中CDN服務器的另一個結構示意圖;
圖15為本發明實施例中用戶終端的一個結構示意圖;
圖16為本發明實施例中CDN服務器的另一個結構示意圖;
圖17為本發明實施例中業務服務器的另一個結構示意圖;
圖18為本發明實施例中用戶終端的另一個結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明實施例中基于CDN的訪問控制方法可以應用的網絡架構包括:
業務服務器,用于對用戶進行鑒權,認證,向CDN服務器提供內容資源,接收用戶終端發送的內容請求之后,向用戶提供CDN服務器中內容資源的地址;
CDN服務器,用于存儲業務服務器提供的內容資源,接收用戶終端發送的內容請求之后,將內容資源返回給用戶終端。
用戶終端,用于發起HTTP請求,獲取內容資源。
請參閱圖1,基于上述網絡架構,現有技術中基于CDN的訪問控制方法的一個實施例包括:
CDN服務器向業務服務器提供加解密算法以及密鑰,業務服務器根據加解密算法及密鑰對URL進行加密。
用戶終端訪問業務服務器中的內容資源時,業務服務器會生成內容資源對應的HTTP響應,其中,HTTP響應包括:用戶終端的IP地址、發送內容請求的時間及URL,用戶終端會向上述URL指定的CDN服務器發送內容請求報文,用戶信息通過CDN服務器認證之后,CDN服務器根據上述URL獲取內容資源,若CDN服務器中不存在內容資源,CDN服務器會將來自用戶終端的內容請求報文發送給業務服務器,業務服務器根據內容請求報文查找到內容資源之后,將內容資源發送給CDN服務器,CDN服務器將內容資源返回給用戶終端,并保存內容資源。可以理解的是,用戶終端與服務器側的 交互是通過用戶代理(例如,瀏覽器、下載工具或流媒體播放器)來實現的,具體可參考現有技術,此處不再贅述。
現有技術中,業務服務器會將CDN服務器中內容資源的URL發送給用戶,雖然此URL經過加密,但是入侵者可以獲取此URL訪問CDN服務器,CDN服務器卻無法對用戶鑒權,無疑存在風險。
同時,業務服務器為CDN服務器分配內容資源時,會給內容資源分配一個URL,CDN服務器通過URL來識別內容資源,由于不同用戶存儲的內容對應的URL不同,因此CDN服務器會存儲很多內容相同的內容資源。
為了提高內容資源的安全性,本發明實施例提供了一種基于CDN的訪問控制方法,可以實現通過內容指紋查找內容資源,由于內容指紋保存在CDN服務器與業務服務器中,因此可以避免攻擊者通過用戶終端直接獲取URL,通過URL獲取內容資源的可能,請參閱圖2所示的信令流程圖。
201、用戶終端向業務服務器發送HTTP請求,該HTTP請求用于獲取內容資源;
202、業務服務器根據上述HTTP請求生成URL,將該URL發送給用戶終端,該URL攜帶有訪問票據;
203、用戶終端向CDN服務器發送HTTP請求以及用戶終端的標識信息,該HTTP請求攜帶有訪問票據;
204、CDN服務器將來自用戶終端的HTTP請求以及用戶終端的標識信息發送給業務服務器;
205、業務服務器根據用戶終端的標識信息對訪問票據進行認證;
206、若訪問票據合法,業務服務器根據訪問票據查找內容指紋,將內容指紋發送給CDN服務器;
207、CDN服務器根據內容指紋查找內容資源;
208、CDN服務器將內容資源發送給用戶終端。
請參閱圖3,本發明實施例中基于CDN的訪問控制方法的一個實施例包括:
301、CDN服務器接收用戶終端發送的HTTP請求及用戶終端的標識信息,HTTP請求包含訪問票據,訪問票據用于標識用戶訪問權限;
本實施例中,當用戶訪問業務服務器中的內容資源時,業務服務器生成指向CDN服務器中內容資源的URL,并將該URL發送給用戶終端,用戶終端可以利用該URL生成HTTP請求,CDN服務器接收該請求。CDN服務器還可以接收用戶終端發送的標識信息,用戶終端的標識信息可以是用戶終端的IP地址,攜帶在TCP/IP請求中。
該URL包含訪問票據,訪問票據用于標識用戶可以訪問的內容資源的權限,該URL還包含用戶會話信息,用戶會話信息用于維護用戶終端與業務服務器之間的關聯請求。
需要說明的是,本實施例中,CDN服務器不會根據來自用戶終端的URL查找內容資源或內容指紋。
302、CDN服務器將用戶終端的標識信息及HTTP請求發送給業務服務器,以使得業務服務器利用用戶終端的標識信息對訪問票據進行認證;
其中,CDN服務器將用戶終端的標識信息及HTTP請求發送給業務服務器,業務服務器可以利用用戶終端的標識信息對訪問票據進行認證。如果訪問票據通過認證,表明用戶有權獲取內容資源,否則表明用戶無權獲取內容資源。
303、若認證結果為訪問票據合法,CDN服務器接收業務服務器返回的包含內容指紋的HTTP響應,內容指紋用于標識內容資源;
其中,內容指紋是對內容資源提取內容摘要,并對內容摘要進行哈希運算得到的字符串,即內容資源的數字指紋,能夠唯一標識內容資源。相同的內容資源加密所得內容指紋相同,不同的內容資源加密所得內容指紋不同。需要說明的是,即使內容相同的內容資源的名稱或存儲位置不同,內容指紋仍然相同。
304、CDN服務器根據內容指紋獲取內容資源;
其中,CDN服務器存儲有內容指紋及內容資源,內容指紋與內容資源對應,CDN服務器獲取內容指紋之后,可以根據內容指紋獲取內容資源。
305、CDN服務器將內容資源發送給用戶終端。
CDN服務器獲取內容資源之后,將內容資源發送給用戶終端。
本發明實施例中,CDN服務器接收用戶終端發送的HTTP請求及用戶終 端的標識信息,HTTP請求包含訪問票據,訪問票據用于標識用戶訪問權限,將用戶終端的標識信息及HTTP請求發送給業務服務器,以使得業務服務器利用用戶終端的標識信息對訪問票據進行認證,若認證結果為訪問票據合法,接收業務服務器返回的包含內容指紋的HTTP響應,內容指紋用于標識內容資源,根據內容指紋獲取內容資源,將內容資源發送給用戶終端,CDN服務器不會根據HTTP請求將內容資源直接返回給用戶終端,而是接收業務服務器對HTTP請求認證成功的結果之后,根據內容指紋查找并返回內容資源,內容指紋由業務服務器與CDN服務器存儲,不經過用戶終端,入侵者無法通過用戶終端獲取內容指紋,而沒有內容指紋無法獲取內容資源,因此提高了內容資源的安全性。
可選的,在本發明的一些實施例中,CDN服務器根據內容指紋獲取內容資源具體通過以下方式實現:若CDN服務器中未存儲內容資源,則CDN服務器向業務服務器發送包含有內容指紋的內容請求,以使得業務服務器根據內容指紋查找內容資源,CDN服務器接收業務服務器返回的內容資源。
具體的,當CDN服務器中未存儲內容資源時,CDN服務器可以根據內容指紋從業務服務器獲取內容資源。
可選的,在本發明的另一些實施例中,CDN服務器接收用戶終端發送的HTTP請求及用戶終端的標識信息之前包括:CDN服務器接收業務服務器發送的內容資源及內容指紋;CDN服務器檢查其自身是否已存儲內容指紋或內容資源,若否,則保存內容資源及內容指紋,若是,則丟棄內容指紋及內容資源。
本實施例中,CDN服務器可以接收業務服務器發送的內容資源及內容指紋,檢查其自身是否已存儲內容指紋,若是,則表明CDN服務器已存儲內容資源,僅保留一個內容資源即可,可以丟棄此內容資源,若否,則表明CDN服務器未存儲此內容資源,需要存儲此內容資源,用來向用戶提供CDN加速服務。需要說明的是,當CDN服務器已存儲內容資源時,CDN服務器也可以保留最后接收的內容資源,并丟棄已存儲的內容資源,具體此處不作限定。
需要說明的是,以上CDN服務器保留一個內容資源為減少冗余的最佳方案,在實際應用中,CDN服務器可以保留預定數量的相同的內容資源,當相 同的內容資源的數量達到預定數量之后,CDN服務器再接收與上述內容相同的內容資源時,不再保存該內容資源,以減少冗余。
可選的,在本發明的另一些實施例中,若在預設時段內內容資源被訪問的次數不大于預設閾值,CDN服務器從業務服務器獲取更新的內容資源以及內容指紋。
具體的,預設閾值的大小可以根據經驗或實際測試獲取,此處不作限定。若在預設時段內內容資源被訪問的次數小于或等于預設閾值,表明內容資源在此時段內不受關注,需要更換內容資源,CDN服務器可以向業務服務器發送內容更新請求,業務服務器將更新后的內容資源及內容指紋發送給CDN服務器,CDN服務器從而完成內容更新。
若在預設時段內內容資源被訪問的次數大于預設閾值,表明內容資源受人歡迎,無需更換該內容資源。與現有技術中CDN服務器通過定期清理內容資源的方式更新內容資源相比,本發明可以立即更新被訪問較少的內容資源,同時可以將受人歡迎的內容資源不更新,使得用戶可以繼續訪問該內容資源,提高了用戶體驗。
需要說明的是,當CDN服務器將URL指定的原內容資源及原內容指紋,替換為更新后的內容資源及更新后的內容指紋之后,CDN服務器可以立即刪除原內容資源,也可以不立即刪除原內容資源,由于業務服務器將URL指向更新后的內容資源,原內容資源不會再被用戶訪問,CDN服務器可以通過定期刪除訪問次數過低的內容資源的方式,將原內容資源刪除。
請參閱圖4,本發明實施例中基于CDN的訪問控制方法的另一實施例包括:
401、業務服務器接收CDN服務器發送的HTTP請求及用戶終端的標識信息,HTTP請求包含有訪問票據;
本實施例中,業務服務器可以接收CDN服務器發送的HTTP請求及用戶終端的標識信息,HTTP請求包含有訪問票據,所述訪問票據用于標識用戶訪問權限。HTTP請求還包含有用戶會話信息,用戶會話信息用于維護用戶終端與業務服務器之間的關聯請求。
402、業務服務器利用用戶終端的標識信息對訪問票據進行認證;
其中,業務服務器可以檢查訪問票據是否與上述用戶終端的標識信息對應,訪問票據是否與用戶會話對應,訪問票據是否在有效期以內等。可以理解的是,在實際應用中,可以使用其中一種或多種認證方式對訪問票據進行認證,此處不作限定。
業務服務器對訪問票據進行認證的具體過程可參閱現有技術,此處不再贅述。
403、若認證結果為訪問票據合法,業務服務器將包含內容指紋的HTTP響應返回給CDN服務器,以使得CDN服務器根據內容指紋獲取內容資源。
可選的,本發明一些實施例中,上述方法還包括:業務服務器接收CDN服務器發送的包含內容指紋的內容請求;業務服務器根據內容指紋查找內容資源;業務服務器將內容資源發送給CDN服務器。
具體的,若CDN服務器中沒有存儲內容資源,CDN服務器可以向業務服務器發送包含內容指紋的內容請求,業務服務器可以根據內容指紋查找內容資源,并將內容資源返回給CDN服務器。
可選的,本發明一些實施例中,所述業務服務器將包含內容指紋的HTTP響應返回給所述CDN服務器之前包括:業務服務器對內容資源進行哈希運算得到內容指紋,內容指紋用于標識內容資源;業務服務器將內容資源及內容指紋發送給CDN服務器。
具體的,業務服務器對內容資源進行哈希運算所用算法可以為SHA512,SHA224,SHA256或SHA384,還可以為其他安全哈希算法,此處不作限定。可以理解的是,業務服務器可以將一部分或全部的內容資源及內容指紋發送給CDN服務器。
可選的,本發明一些實施例中,所述業務服務器將包含所述內容指紋的HTTP響應返回給所述CDN服務器之后包括:業務服務器接收CDN服務器發送的包含URL的內容更新請求;業務服務器根據URL查找內容資源及內容指紋;業務服務器將URL對應的內容資源及內容指紋返回給所述CDN服務器。
本實施例中,在實際應用中,由于業務服務器隔一段時間會更新內容資源,URL所對應的內容指紋和內容資源會發生變化,CDN服務器上的內容資 源也需要隨之更新,CDN服務器可以向業務服務器發送URL,業務服務器可以根據URL查找到內容資源及內容指紋,將該內容資源及內容指紋返回給CDN服務器,CDN服務器將URL指定的原內容資源及原內容指紋替換為更新后的內容資源及更新后的內容指紋。
為便于理解,下面以一個具體應用場景對本發明中的基于CDN的訪問控制方法進行詳細描述:
當用戶打開名為“http://media.orgin.com”的網站,點擊觀看該網站的付費內容“2.pdf”時,網站會跳轉至付費頁面,當用戶付費之后,業務服務器生成一個URL,例如:http://media.orgin.com/2.pdf?ticket=1?session=2,將該URL返回給瀏覽器,瀏覽器通過該URL向CDN服務器發起訪問“2.pdf”的請求,CDN服務器將該URL發送給業務服務器,業務服務器對ticket進行認證,若通過認證,則根據該URL查找內容指紋1,將內容指紋1返回給CDN服務器,CDN服務器根據內容指紋1查找“2.pdf”,將“2.pdf”返回給用戶。
可選的,CDN服務器根據內容指紋1查找“2.pdf”之前,業務服務器可以對“2.pdf”進行哈希運算得到內容指紋1,將內容指紋1及“2.pdf”發送給CDN服務器。
在實際應用中,本發明實施例還提供一種快捷的訪問內容資源的方法,可用于用戶訪問業務服務器中無需保護的內容資源,請參閱圖5,圖5為本發明實施例中基于CDN的訪問控制方法的另一信令流程圖。
501、用戶終端向業務服務器發送HTTP請求,該HTTP請求用于獲取內容資源;
502、業務服務器根據上述HTTP請求生成包含內容指紋的URL,發送給用戶終端;
503、用戶終端向CDN服務器發送HTTP請求,HTTP請求攜帶有內容指紋;
504、CDN服務器根據內容指紋查找內容資源;
505、CDN服務器將內容資源發送給用戶終端。
請參閱圖6,本發明實施中基于CDN的訪問控制方法的另一個實施例包括:
601、業務服務器接收用戶終端發送的HTTP請求;
本實施例中,當用戶訪問業務服務器中內容資源時,業務服務器接收用戶終端發送的HTTP請求,HTTP請求用于獲取內容資源。
602、業務服務器根據HTTP請求生成URL,URL包含內容資源對應的內容指紋;
其中,業務服務器檢查上述HTTP請求訪問的內容資源是否需要保護,若該內容資源為無需保護的內容類型,業務服務器可以生成包含內容指紋的URL,該內容指紋與無需保護的內容資源對應。
603、業務服務器將URL返回給用戶終端,以使得用戶終端向CDN服務器發送包含URL的HTTP請求。
業務服務器獲取URL之后,將URL返回給用戶終端,用戶終端可以向CDN服務器發送包含URL的HTTP請求。
請參閱圖7,本發明實施中基于CDN的訪問控制方法的另一個實施例包括:
701、CDN服務器接收用戶終端發送的HTTP請求,HTTP請求包含內容指紋;
本實施例中,CDN服務器可以接收用戶終端發送的HTTP請求,HTTP請求包含內容指紋。
702、CDN服務器根據內容指紋獲取對應的內容資源;
其中,CDN服務器存儲有內容指紋及內容資源,內容指紋與內容資源對應,CDN服務器獲取HTTP請求之后,由于HTTP請求攜帶有內容指紋,可以根據內容指紋獲取內容資源。
703、CDN服務器將內容資源發送給用戶終端。
CDN服務器獲取內容資源之后,可以將內容資源發送給用戶終端。
請參閱圖8,本發明實施中基于CDN的訪問控制方法的另一個實施例包括:
801、用戶終端向業務服務器發送HTTP請求,HTTP請求用于獲取內容資源;
本實施例中,用戶終端可以向業務服務器發送HTTP請求,HTTP請求用 于獲取內容資源。
802、用戶終端接收業務服務器返回的URL,URL包含內容資源的內容指紋;
用戶終端可以接收業務服務器返回的URL,URL包含內容資源的內容指紋。
803、用戶終端向CDN服務器發送HTTP請求,HTTP請求包含內容指紋;
用戶終端獲取URL之后,向CDN服務器發送包含該URL的HTTP請求,以使得CDN服務器根據URL中的內容指紋獲取對應的內容資源。
804、用戶終端接收CDN服務器返回的內容資源。
為便于理解,下面以另一個具體應用場景對本發明實施例中的基于CDN的訪問控制方法進行詳細描述:
當用戶打開“http://media.orgin.com”的網站,點擊觀看該網站的免費內容“1.gif”時,業務服務器生成一個URL,例如:http://media.orgin.com/1.gif?Fingerprint=3,將該URL返回給瀏覽器,瀏覽器通過該URL向CDN服務器發起訪問“1.gif”的請求,CDN服務器檢查該URL存在內容指紋3,CDN服務器根據內容指紋3查找“1.gif”,將“1.gif”返回給用戶。
以上從方法角度對本發明實施例中的基于CDN的訪問控制方法進行了說明,下面從裝置角度對本發明實施例中CDN服務器進行詳細描述,請參閱圖9,本發明實施例中CDN服務器的一個實施例包括:
接收模塊901,用于接收用戶終端發送的HTTP請求及用戶終端的標識信息,HTTP請求包含訪問票據,訪問票據用于標識用戶訪問權限;
發送模塊902,用于將用戶終端的標識信息及HTTP請求發送給業務服務器,以使得業務服務器利用用戶終端的標識信息對訪問票據進行認證;
接收模塊901,還用于若認證結果為訪問票據合法,CDN服務器接收業務服務器返回的包含內容指紋的HTTP響應,內容指紋用于標識內容資源;
獲取模塊903,用于根據內容指紋獲取內容資源后發送給用戶終端。
本發明實施例中,接收模塊901接收用戶終端發送的HTTP請求及用戶終端的標識信息,HTTP請求包含訪問票據,訪問票據用于標識用戶訪問權限,發送模塊902將用戶終端的標識信息及HTTP請求發送給業務服務器,以使 得業務服務器利用用戶終端的標識信息對訪問票據進行認證,若認證結果為訪問票據合法,接收模塊901接收業務服務器返回的包含內容指紋的HTTP響應,內容指紋用于標識內容資源,獲取模塊903根據內容指紋獲取內容資源后發送給用戶終端,CDN服務器不會根據HTTP請求將內容資源直接返回給用戶終端,而是接收業務服務器對HTTP請求認證成功的結果之后,根據內容指紋查找并返回內容資源,內容指紋由業務服務器與CDN服務器存儲,不經過用戶終端,入侵者無法通過用戶終端獲取內容指紋,而沒有內容指紋無法獲取內容資源,因此提高了內容資源的安全性。
可選的,在本發明的一些實施例中,
發送模塊902,還用于若CDN服務器900中未存儲內容資源,則向業務服務器發送包含有內容指紋的HTTP請求,以使得業務服務器根據內容指紋查找內容資源,
接收模塊901,還用于接收業務服務器返回的內容資源。
可選的,請參閱圖10,在本發明的一些實施例中,
接收模塊901,還用于接收業務服務器發送的內容指紋及內容資源;
CDN服務器900還包括:
檢查模塊1001,用于檢查其自身是否已存儲內容指紋,若否,則觸發保存模塊1002保存內容資源及內容指紋的步驟,若是,則觸發執行模塊1003丟棄內容指紋及內容資源。
保存模塊1002,用于保存內容指紋及內容資源;
執行模塊1003,用于丟棄內容指紋及內容資源。
可選的,在本發明的一些實施例中,
獲取模塊903,還用于若在預設時段內所述內容資源被訪問的次數不大于預設閾值,從所述業務服務器獲取更新的內容資源以及內容指紋。
請參閱圖11,本發明實施例中業務服務器的一個實施例包括:
接收模塊1101,用于接收CDN服務器發送的HTTP請求及用戶終端的標識信息,HTTP請求包含有訪問票據;
認證模塊1102,用于利用用戶終端的標識信息對訪問票據進行認證;
發送模塊1103,用于若認證結果為訪問票據合法,將包含內容指紋的 HTTP響應返回給CDN服務器,以使得CDN服務器根據內容指紋獲取內容資源。
可選的,在本發明的一些實施例中,
接收模塊1101,還用于接收CDN服務器發送的包含內容指紋的內容請求;
發送模塊1103,還用于將內容指紋對應的內容資源發送給CDN服務器。
可選的,在本發明的另一些實施例中,業務服務器1100還包括:
運算模塊1201,用于對內容資源進行哈希運算得到內容指紋,內容指紋用于標識內容資源;
發送模塊1103,還用于將內容資源及內容指紋發送給CDN服務器。
可選的,在本發明的另一些實施例中,
接收模塊1101,還用于接收CDN服務器發送的包含URL的內容更新請求;
業務服務器1100還包括:
查找模塊1202,用于根據URL查找內容資源及內容指紋;
發送模塊1103,還用于將所述URL對應的內容資源及內容指紋返回給所述CDN服務器。
為便于理解,下面以一個具體應用場景對本發明實施例中基于CDN的訪問控制方法中的各網元或各網元中模塊之間的交互進行詳細描述:
在本發明實施例的具體應用場景中,用戶終端的標識信息為用戶IP地址,當用戶打開名為“http://media.orgin.com”的網站,點擊觀看該網站的付費內容“2.pdf”時,網站會跳轉至付費頁面,當用戶付費之后,業務服務器的接收模塊1101接收用戶終端發送的HTTP請求及用戶終端的標識信息,生成一個URL,例如:http://media.orgin.com/2.pdf?ticket=1?session=2,將該URL返回給瀏覽器,瀏覽器通過該URL向CDN服務器發起訪問“2.pdf”的請求,CDN服務器的接收模塊901接收用戶終端發送的HTTP請求及用戶IP地址,CDN服務器的發送模塊902將該URL及用戶IP地址發送給業務服務器的接收模塊1101,業務服務器的認證模塊1102利用用戶的IP地址對ticket進行認證,若ticket通過認證,則業務服務器的發送模塊1103將該URL對應的內容 指紋1返回給CDN服務器的接收模塊901,CDN服務器的獲取模塊903根據內容指紋1獲取“2.pdf”,并將“2.pdf”返回給用戶終端。
可選的,CDN服務器將“2.pdf”返回給用戶終端之前,業務服務器的運算模塊1201可以對“2.pdf”進行哈希運算得到內容指紋1,業務服務器的發送模塊1103將內容指紋1及“2.pdf”發送給CDN服務器。
請參閱圖13,本發明實施例中業務服務器的另一個實施例包括:
接收模塊1301,用于接收用戶終端發送的HTTP請求,HTTP請求用于獲取內容資源;
生成模塊1302,用于根據HTTP請求生成URL,URL包含內容資源對應的內容指紋;
發送模塊1303,用于將URL返回給用戶終端,以使得用戶終端向CDN服務器發送包含URL的HTTP請求。
請參閱圖14,本發明實施例中CDN服務器的另一個實施例包括:
接收模塊1401,用于接收用戶終端發送的HTTP請求,HTTP請求包含內容指紋;
獲取模塊1402,用于根據內容指紋獲取對應的內容資源;
發送模塊1403,用于將內容資源發送給用戶終端。
請參閱圖15,本發明實施例中用戶終端的一個實施例包括:
發送模塊1501,用于向業務服務器發送HTTP請求,HTTP請求用于獲取內容資源;
接收模塊1502,用于接收業務服務器返回的URL,URL包含內容資源對應的內容指紋;
發送模塊1501,還用于向CDN服務器發送HTTP請求,HTTP請求包含內容指紋;
接收模塊1502,還用于接收CDN服務器返回的內容資源。
為便于理解,下面以一個具體應用場景對本發明實施例中基于CDN的訪問控制方法中的各網元或各網元中模塊之間的交互進行詳細描述:
內容資源以“1.gif”為例,當用戶打開名為“http://media.orgin.com”的網站,點擊觀看該網站的免費內容“1.gif”時,用戶終端的發送模塊1501向業 務服務器發送HTTP請求,業務服務器的接收模塊1301接收用戶終端發送的HTTP請求,生成模塊1302生成一個URL,例如:http://media.orgin.com/1.gif?Fingerprint=3,業務服務器的發送模塊1303將該URL返回給用戶終端的接收模塊1502,用戶終端的發送模塊1501通過該URL向CDN服務器發起訪問“1.gif”的HTTP請求,CDN服務器的接收模塊1401接收HTTP請求,由于該URL包含內容指紋3,CDN服務器的獲取模塊1402根據內容指紋3獲取“1.gif”,CDN服務器的發送模塊1403將“1.gif”返回給用戶終端,用戶終端的接收模塊1502接收“1.gif”。
上面從單元化功能實體的角度對本發明實施例中的CDN服務器進行了描述,下面從硬件處理的角度對本發明實施例中的CDN服務器進行描述,請參閱圖16,本發明實施例中CDN服務器1600的另一個實施例包括:
接收裝置1601、發送裝置1602、處理器1603及存儲器1604,其中CDN服務器1600中的處理器1603的數量可以一個或多個,圖16中以一個處理器1603為例。處理器1603和存儲器1604通過接收裝置1601接收UE外部的信息,處理器1603和存儲器1604通過發送裝置1602將信息發射到UE外部。在本發明的一些實施例中,接收裝置1601、發送裝置1602、處理器1603和存儲器1604可通過總線或其它方式連接,其中,圖16中以通過總線連接為例。
接收裝置1601,用于接收用戶終端發送的HTTP請求及用戶終端的標識信息,HTTP請求包含訪問票據,訪問票據用于標識用戶訪問權限;
發送裝置1602,用于將用戶終端的標識信息及HTTP請求發送給業務服務器,以使得業務服務器利用用戶終端的標識信息對訪問票據進行認證;
接收裝置1601,用于若認證結果為訪問票據合法,接收業務服務器返回的包含內容指紋的HTTP響應,內容指紋用于標識內容資源;
處理器1603,用于根據內容指紋獲取內容資源后發送給用戶終端。
存儲器1604可以包括只讀存儲器和隨機存取存儲器,并向處理器1603提供指令和數據,存儲器1604的一部分還可以包括可能包含高速隨機存取存儲器(RAM,Random Access Memory),也可能還包括非不穩定的存儲器(Non-Volatile Memory)。
存儲器1604存儲了如下的元素:可執行模塊或者數據結構,或者它們的子集,或者它們的擴展集;操作指令包括各種操作指令,用于實現各種操作;操作系統包括各種系統程序,用于實現各種基礎業務以及處理基于硬件的任務。
其中,接收裝置1601,還用于接收業務服務器發送的內容指紋及內容資源;
處理器1603,還用于檢查其自身是否已存儲內容指紋,若否,則保存內容指紋及內容資源,若是,則丟棄內容指紋及內容資源。
其中,處理器1603,還用于若在預設時段內內容資源被訪問的次數不大于預設閾值,從業務服務器獲取更新的內容資源以及內容指紋。
請參閱圖17,本發明實施例中業務服務器的另一個實施例包括:
接收裝置1701、發送裝置1702、處理器1703及存儲器1704,其中業務服務器1700中的處理器1703的數量可以一個或多個,圖17中以一個處理器1703為例。處理器1703和存儲器1704通過接收裝置1701接收UE外部的信息,處理器1703和存儲器1704通過發送裝置1702將信息發射到UE外部。在本發明的一些實施例中,接收裝置1701、發送裝置1702、處理器1703和存儲器1704可通過總線或其它方式連接,其中,圖17中以通過總線連接為例。
接收裝置1701,用于接收CDN服務器發送的HTTP請求及用戶終端的標識信息,HTTP請求包含有訪問票據;
處理器1703,用于利用用戶終端的標識信息對訪問票據進行認證;
發送裝置1702,用于若認證結果為訪問票據合法,將包含內容指紋的HTTP響應返回給CDN服務器,以使得CDN服務器根據內容指紋獲取內容資源。
存儲器1704可以包括只讀存儲器和隨機存取存儲器,并向處理器1703提供指令和數據,存儲器1704的一部分還可以包括可能包含RAM,也可能還包括非不穩定的存儲器。
存儲器1704存儲了如下的元素:可執行模塊或者數據結構,或者它們的子集,或者它們的擴展集;操作指令包括各種操作指令,用于實現各種操作; 操作系統包括各種系統程序,用于實現各種基礎業務以及處理基于硬件的任務。
其中,處理器1703,還用于對內容資源進行哈希運算得到內容指紋,內容指紋用于標識內容資源;
發送裝置1702,用于將內容資源及內容指紋發送給CDN服務器。
其中,接收裝置1701,還用于接收CDN服務器發送的包含URL的內容更新請求;
處理器1703,還用于根據URL查找內容資源及內容指紋;
發送裝置1702,還用于將URL對應的內容資源及內容指紋返回給CDN服務器。
請參閱圖17,本發明實施例中業務服務器的另一個實施例包括:
接收裝置1701,用于接收用戶終端發送的HTTP請求,HTTP請求用于獲取內容資源;
處理器1703,用于根據HTTP請求生成URL,URL包含內容資源對應的內容指紋;
發送裝置1702,用于將URL返回給用戶終端,以使得用戶終端向CDN服務器發送包含URL的HTTP請求。
請參閱圖16,本發明實施例中CDN服務器的另一個實施例包括:
接收裝置1601,用于接收用戶終端發送的HTTP請求,HTTP請求包含內容指紋;
處理器1603,用于根據內容指紋獲取對應的內容資源;
發送裝置1602,用于將內容資源發送給用戶終端。
請參閱圖18,本發明實施例中用戶終端的另一個實施例包括:
接收裝置1801、發送裝置1802、處理器1803及存儲器1804,其中業務服務器1800中的處理器1803的數量可以一個或多個,圖18中以一個處理器1803為例。處理器1803和存儲器1804通過接收裝置1801接收UE外部的信息,處理器1803和存儲器1804通過發送裝置1802將信息發射到UE外部。在本發明的一些實施例中,接收裝置1801、發送裝置1802、處理器1803和存儲器1804可通過總線或其它方式連接,其中,圖18中以通過總線連接為 例。
發送裝置1802,用于向業務服務器發送HTTP請求,HTTP請求用于獲取內容資源;
接收裝置1801,用于接收業務服務器返回的URL,URL包含內容資源對應的內容指紋;
發送裝置1802,還用于向CDN服務器發送HTTP請求,HTTP請求包含內容指紋;
接收裝置1801,還用于接收CDN服務器返回的內容資源。
存儲器1804可以包括只讀存儲器和隨機存取存儲器,并向處理器1803提供指令和數據,存儲器1804的一部分還可以包括可能包含RAM,也可能還包括非不穩定的存儲器。
存儲器1804存儲了如下的元素:可執行模塊或者數據結構,或者它們的子集,或者它們的擴展集;操作指令包括各種操作指令,用于實現各種操作;操作系統包括各種系統程序,用于實現各種基礎業務以及處理基于硬件的任務。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述,以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。