欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于提供對內容資源的訪問的方法和裝置與流程

文檔序號:12719737閱讀:270來源:國知局
用于提供對內容資源的訪問的方法和裝置與流程
本發(fā)明的各實施方式涉及對內容資源的訪問,并且更具體地涉及用于例如在表述性狀態(tài)轉移(RepresentationalStateTransfer,REST)架構下的提供對內容資源的訪問的方法和裝置。
背景技術
:REST是一種軟件架構風格。訪問遵循REST風格(RESTful)的應用或服務的應用程序編程接口(ApplicationProgrammingInterface,API),被稱為RESTfulAPI或者RESTAPI。隨著企業(yè)數據系統(tǒng)中軟件即服務(SoftwareasaService,SaaS)的出現,越來越多的廠商正在向客戶端應用程序暴露RESTAPI。RESTAPI中的資源通過統(tǒng)一資源標識符(UniformResourceIdentifier,URI)來唯一地標識。Web服務器通過向客戶端提供URI來實現客戶端對URI處的資源的訪問。常規(guī)的URI的一般語法格式為:protocol://hostname[:port]/path,其中,“protocol(協(xié)議)”指定訪問資源所使用的傳輸協(xié)議,“hostname(主機名)”也被稱作“域名”,表示存儲資源的服務器的名稱,“port(端口號)”為可選項、表示傳輸協(xié)議的端口號,“path(路徑)”表示到達資源的路徑和資源本身的名稱。然而,常規(guī)的URI存在多種局限性。例如,常規(guī)的URI一般包含較多字符。例如,URIhttp://example.com/tenants/1b523c/spaces/02c6d/folders/9843a2f/docs/837b8包含73個字符。諸如移動電話這樣的應用對于有效載荷的大小非常敏感,并且某些消息收發(fā)系統(tǒng)(諸如短消息服務(SMS)、微博服務等)限制可以在消息中傳送的字符數目。此外,從常規(guī)的URI的一般語法格式可以看出,常規(guī)的URI包含機密信息,而該機密信息可能會被惡意客戶端濫用。例如,常規(guī)的URI反映了該URI所指向的服務器對資源的組織模式,惡意客戶端可以利用該模式來非法訪問服務器中的其他資源。技術實現要素:因此,為了解決一個或多個現有技術中存在的問題,需要一種利用長度縮短的URI來提供對資源的訪問的技術方案。根據本發(fā)明的實施方式提出一種在Web服務器和內容服務器所構成的安全網絡環(huán)境內部提供URI縮短服務的技術方案。根據本發(fā)明實施方式的第一方面,提供一種對內容資源的訪問的方法。該方法包括:響應于接收到訪問內容服務器中的內容資源的請求,與該內容服務器進行通信,以獲取該內容服務器中的、與該內容資源的第一統(tǒng)一資源標識符URI相關的元數據,其中該請求中包含該第一URI,該元數據至少指明該內容資源的該第一URI與該內容資源的第二URI之間的映射關系,其中該第一URI是該第二URI的縮短版本;解析該元數據,以獲取該第二URI;以及利用該第二URI對該請求進行響應。在一些實施方式中,該第二URI與該第一URI具有相同的域名并且該第二URI的字符長度長于該第一URI。在一些實施方式中,該方法進一步包括:在接收該第一請求之前,接收訪問該內容資源的第二請求,該第二請求中包含該第二URI;以及創(chuàng)建該第一URI與該第二URI之間的該映射關系,以生成與該第一URI相關的該元數據。在一些實施方式中,其中該第二請求中包含報頭信息,并且其中生成與該第一URI相關的該元數據包括:從該第二請求中提取出該報頭信息;以及將該報頭信息包括在該元數據中。在一些實施方式中,其中利用該第二URI對該請求進行響應包括:對該第二URI進行解析以識別由該第二URI標識的內容資源;識別與該內容資源對應的數據對象;以及與該內容服務器進行通信,以獲取該數據對象。在一些實施方式中,利用該第二URI對該請求進行響應進一步包括:對該數據對象進行解析,以確定與該內容資源相關聯的內容資源;識別該內容資源和該相關聯的內容資源之間的鏈接關系;基于該鏈接關系來生成該相關聯的內容資源的第二URI;以及基于該相關聯的內容資源的該第二URI,來確定與該相關聯的內容資源的該第二URI對應的該相關聯的內容資源的第一URI。在一些實施方式中,確定該相關聯的內容資源的該第一URI包括:針對該相關聯的內容資源的該第二URI,向該內容服務器查詢該相關聯的內容資源的該第一URI。在一些實施方式中,如果該內容服務器中存在該相關聯的內容資源的該第一URI,則從該內容服務器獲取該相關聯的內容資源的該第一URI。在一些實施方式中,如果該內容服務器中不存在該相關聯的內容資源的該第一URI,則創(chuàng)建該相關聯的內容資源的該第一URI與該相關聯的內容資源的該第二URI之間的該映射關系,以生成與該相關聯的內容資源的該第一URI相關的元數據。在一些實施方式中,利用該第二URI對該請求進行響應進一步包括:通過向該數據對象中添加該內容資源的該第一URI以及該相關聯的內容資源的該第一URI,來構建對該請求的響應。在一些實施方式中,該方法由網絡(Web)服務器來實施。根據本發(fā)明實施方式的第二方面,提供了一種提供對內容資源的訪問的裝置。該裝置包括:交互單元,被配置為響應于接收到訪問內容服務器中的內容資源的請求,與該內容服務器進行通信,以獲取該內容服務器中的、與該內容資源的第一統(tǒng)一資源標識符URI相關的元數據,其中該請求中包含該第一URI,該元數據至少指明該內容資源的該第一URI與該內容資源的第二URI之間的映射關系,其中該第一URI是該第二URI的縮短版本;解析單元,被配置為解析該元數據,以獲取該第二URI;以及響應單元,被配置為利用該第二URI對該請求進行響應。根據本發(fā)明實施方式的第三方面,提供了一種服務器。該服務器包括:一個或多個處理器;存儲有計算機程序指令的存儲器,當由該一個或多個處理器執(zhí)行該計算機程序指令時使得該服務器執(zhí)行根據本發(fā)明實施方式的用于提供對內容資源的訪問的方法。根據本發(fā)明實施方式的第五方面,提供了一種計算機程序產品。該計算機程序產品包括計算機程序指令,當由計算設備執(zhí)行該計算機程序指令時使得該計算設備執(zhí)行根據本發(fā)明實施方式的用于提供對內容資源的訪問的方法。根據本發(fā)明的實施方式,由于在Web服務器和內容服務器所構成的安全網絡環(huán)境內部提供URI縮短服務,而不是依賴于HTTP重定向機制來提供該URI縮短服務,因此根據本發(fā)明實施方式的方法能夠支持對內容資源的所有訪問方式,例如包括但是不限于:增加、修改和刪除等。此外,由于在Web服務器和內容服務器所構成的安全網絡環(huán)境內部提供URI縮短服務,因而可以避免跨域資源共享。由此,提高了資源訪問的安全性和效率,改善了用戶體驗。附圖說明結合附圖并參考以下詳細說明,本發(fā)明的各實施方式的特征、優(yōu)點及其他方面將變得更加明顯,在此以示例性而非限制性的方式示出了本發(fā)明的若干實施方式。在附圖中:圖1描繪了利用由URI縮短服務平臺提供的短URI服務來提供對資源的訪問的方法的流程;圖2示出根據本發(fā)明的一個實施方式的用于提供對內容服務器中的內容資源的訪問的方法的流程圖;圖3描繪了根據本發(fā)明的一個具體實施例的提供對內容資源的訪問的方法的流程;圖4示出了針對內容資源請求的示例性響應;以及圖5示出了能夠用于實現根據本發(fā)明實施方式的計算機系統(tǒng)的示意性框圖。具體實施方式下面將參考附圖中示出的若干示例實施方式來描述本發(fā)明的原理。應當理解,描述這些實施方式僅僅是為了使本領域技術人員能夠更好地理解進而實現本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。如前所述,常規(guī)的URI被用來唯一地標識內容服務器中所存儲的內容資源。Web服務器可以通過向客戶端提供常規(guī)的URI來實現客戶端對內容服務器中的資源的訪問。由于常規(guī)的URI一般包含較多數目的字符,因此常規(guī)的URI有時也被稱作“長URI”。此外,由于長URI的使用存在多種局限性,因此將長URI轉換為字符數目較少的“短URI”的URI縮短服務正逐漸得到推廣。目前,存在多個由第三方提供的URI縮短服務平臺,例如http://shorturl.com/、http://goo.gl/、https://bitly.com/、http://tinyurl.com/等。在下文中,將參照圖1來描述利用由URI縮短服務平臺提供的短URI服務來提供對資源的訪問的方法100。方法100涉及客戶端101(例如,Web瀏覽器)、Web服務器102、內容服務器103、以及第三方URI縮短服務平臺104(簡稱“第三方平臺104”)之間的交互。內容服務器103被配置為存儲與內容資源對應的數據對象的數據(未示出)以及與數據對象相關的元數據105。Web服務器102被配置為采用長URI來唯一地標識內容服務器中所存儲的內容資源。Web服務器102例如可以為采用REST架構的REST服務器。在REST架構中,采用HTTP方法來表示對內容資源的操作,例如獲取(GET)、增加(PUT)、修改(POST)、刪除(DELETE)。第三方平臺104被配置為提供URI縮短服務。具體而言,第三方平臺104提供短URI注冊服務并且存儲與短URI相關的元數據106,該元數據106至少包括長URI與相應的短URI之間的映射。在方法100中,假定用戶已經獲得了與期望訪問的內容資源的長URI對應的短URI,例如“http://shorturl.com/1fb5d”,其中“shorturl.com”為該短URI的域名,“1fb5d”為該短URI的標識符(ID)。例如,用戶可以通過電子郵件、網頁等獲得該短URI。在獲得了該短URI后,用戶可以通過客戶端101向第三方平臺104發(fā)送訪問內容資源的請求(如步驟S110所示),例如形式為“GEThttp://shorturl.com/1fb5d”的GET請求1100。在步驟S120,第三方平臺104可以對所接收的GET請求進行解析以獲得該短URI,在本地查詢該短URI所對應的長URI,并且向客戶端101發(fā)送攜帶有該長URI的響應以指示客戶端101重定向到該長URI。客戶端101接收到該響應后,從中提取出該長URI,并且利用該長URI再次向Web服務器102發(fā)送訪問內容資源的請求。在步驟S130,Web服務器102解析該長URI并識別其所標識的內容資源??梢岳斫?,在Web服務(例如REST服務)中,數據對象被抽象為資源。因此,識別長URI所標識的內容資源包括識別該資源所對應的數據對象。隨后,在步驟S140,Web服務器102向內容服務器103請求所識別的數據對象。接下來,在步驟S150,內容服務器103向Web服務器102返回所請求的數據對象。接下來,在步驟S160,Web服務器102基于所接收的數據對象構建針對內容資源請求的響應。隨后,在步驟S170,Web服務器102將針對內容資源請求的響應1700返回至客戶端101。通過以上描述可知,在方法100中,由第三方平臺104來提供URI縮短服務,并且該URI縮短服務依賴于HTTP重定向機制(如步驟S120所示)。然而,該HTTP重定向機制僅支持GET方法,而不支持POST、PUT和DELETE方法。換言之,如果客戶端101向第三方平臺104發(fā)起POST、PUT或DELETE請求,則第三方平臺104無法使得客戶端101進行URI重定向。此外,可以理解,Web服務器102和內容服務器103位于相同的域(domain)中,二者之間通過可信的網絡通道(例如局域網)進行通信。然而,第三方平臺104與Web服務器102和內容服務器103位于不同的域中。不同的域之間的網絡通道通常是不可信的,因而不同的域之間需要設置防火墻(例如圖1所示的防火墻107)以確保每個域內的信息安全。因此,跨域(跨防火墻)來訪問第三方平臺104會帶來安全隱患。此外,跨域來訪問第三方平臺104還會帶來附加的網絡延遲,從而影響用戶體驗。另外,在POST和PUT請求中,除了攜帶URI之外,還需要攜帶有效載荷。出于安全性考慮,用戶不希望第三方平臺104獲取有效載荷中的信息。再者,由于第三方平臺104維護長URI與相應的短URI之間的映射,而長URL包含與內容服務器103相關的信息,第三方平臺104可以從中抓取該信息進行分析。然而,這也是內容服務器103的提供者所不期望看到的。鑒于現有技術中存在的上述問題,需要一種在Web服務器和內容服務器所構成的安全網絡環(huán)境內部提供URI縮短服務的技術方案。圖2示出根據本發(fā)明的一個實施方式的用于提供對內容服務器中的內容資源的訪問的方法200的流程圖。在一些實施方式中,方法200可以在用于提供對內容服務器中的內容資源的訪問的計算設備中實施。該計算設備可以包括但是不限于:Web服務器、應用服務器、或任何其它適當類型的服務器。在采用Web服務器的情況下,Web服務器例如可以為采用REST架構的REST服務器。在REST架構中,采用HTTP方法來表示對內容資源的操作,例如獲取(GET)、增加(PUT)、修改(POST)、刪除(DELETE)。如圖2所示,在步驟S210,可以由Web服務器響應于接收到訪問內容資源的請求,與內容服務器進行通信,以獲取內容服務器中的與該內容資源的第一URI相關的元數據。該請求中包含該第一URI。該元數據至少指明內容資源的第一URI與內容資源的第二URI之間的映射關系。該第一URI是該第二URI的縮短版本。在一些實施方式中,該第二URI與該第一URI具有相同的域名并且該第二URI的字符長度長于該第一URI。隨后,在步驟S220,Web服務器解析該元數據,以獲取該第二URI。接下來,在步驟S230,Web服務器利用該第二URI對訪問內容資源的請求進行響應。應當理解,在本公開的上下文中,“第一URI”也被稱作“短URI”,二者可以互換地使用。類似地,“第二URI”也被稱作“常規(guī)的URI”、“原始URI”、或“長URI”,四者可以互換地使用。根據本發(fā)明的實施方式,在Web服務器和內容服務器所構成的安全網絡環(huán)境內部提供URI縮短服務。在該URI縮短服務中,長URI和對應的短URI具有相同的域名,因而二者指向相同的Web服務器。換言之,長URI及其對應的短URI均為Web服務器所創(chuàng)建的。此外,Web服務器不僅被配置為短URI的創(chuàng)建者,而且被配置為短URI的消費者(也稱作“使用者”),而內容服務器被配置為維護與短URI相關的元數據,該元數據至少指明短URI與長URI之間的映射關系。Web服務器從內容服務器獲取該元數據,并且解析該元數據以獲取與該短URI對應的長URI。由于長URI本身就是由Web服務器創(chuàng)建的,因而Web服務器理解長URI的含義。因此,在Web服務器本地即可利用所獲取的長URI來識別其所標識的內容資源,從而無需如第三方URI縮短服務平臺那樣依賴于HTTP重定向機制。由此,根據本發(fā)明的實施方式能夠支持對內容資源的所有訪問方式,例如包括但是不限于:增加、修改和刪除等。此外,根據本發(fā)明的實施方式,由于在Web服務器和內容服務器所構成的安全網絡環(huán)境內部提供URI縮短服務,因而可以避免跨域資源共享。由此,提高了資源訪問的安全性和效率,改善了用戶體驗。再者,根據本發(fā)明的實施方式,由內容服務器維護與短URI相關的元數據,該元數據至少指明短URI與對應的長URI之間的映射關系。換言之,與短URI相關的元數據是內容服務器私有的,因而可以避免與內容服務器相關的信息的泄露。以下將結合圖3來描述根據本發(fā)明的一個具體實施例的提供對內容資源的訪問的方法300的流程。根據本發(fā)明的實施方式,在Web服務器302和內容服務器303所構成的安全網絡環(huán)境內部提供URI縮短服務。在該URI縮短服務中,Web服務器302被配置為短URI的創(chuàng)建者和消費者(也稱作“使用者”),而內容服務器303被配置為維護與短URI相關的元數據。具體地,為了在Web服務器302處針對長URI創(chuàng)建相應的短URI,可以預先定義短URI數據字典(也稱作“數據類型”)“shorten_uri”來容納與短URI相關的元數據。作為一個示例,短URI數據字典“shorten_uri”至少包含以下三個屬性:●object-id(對象id)○datatype(數據類型):字符串○modifier(修改者)(修改者):由系統(tǒng)生成;只讀○description(描述):內容服務器中的短URI實例的唯一標識●original-uri(原始URI)○datatype(數據類型):字符串○modifier(修改者):在創(chuàng)建時寫入○description(描述):短URI從其進行映射的URI●shorten-uri(短URI)○datatype(數據類型):字符串○modifier(修改者):在創(chuàng)建時寫入○description(描述):原始URI所映射到的URI此外,短URI數據字典“shorten_uri”還可以可選地包括以下屬性中的一個或多個?!馽reator(創(chuàng)建者)○datatype(數據類型):字符串○modifier(修改者):由系統(tǒng)生成;只讀○description(描述):短URI的創(chuàng)建者●creation-date(創(chuàng)建日期)○datatype(數據類型):日期○modifier(修改者):由系統(tǒng)生成;只讀○description(描述):短URI的創(chuàng)建日期●expiration-date(失效日期)○datatype(數據類型):日期○modifier(修改者):在創(chuàng)建時寫入○description(描述):短URI的失效日期;該失效日期不應早于短URI的創(chuàng)建日期;當訪問時間晚于該失效日期時,短URI失效。●last-access-date(上次訪問日期)○datatype(數據類型):日期○modifier(修改者):由系統(tǒng)生成;只讀○description(描述):短URI的上次訪問日期;每當從內容服務器獲取短URI時刷新該值?!馻ccess-count(訪問次數)○datatype(數據類型):整數○modifier(修改者):由系統(tǒng)生成;只讀○description(描述):短URI的總訪問次數●one-time-use(一次性)○datatype(數據類型):布爾○modifier(修改者):在創(chuàng)建時寫入○description(描述):用于一次性的標記;“真(True)”表示短URI為一次性的;“假(False)”表示短URI可被重復使用;缺省值為“真”。當該值為“真”并且“訪問次數”屬性不小于1時,短URI變?yōu)闊o效。●forbidden-accessors(被禁止的訪問者)○datatype(數據類型):重復的字符串○modifier(修改者):在創(chuàng)建時寫入○description(描述):不允許讀取短URI的用戶的列表;值為“空”表示無被禁止的訪問者●exclusive-accessors(排他訪問者)○datatype(數據類型):重復的字符串○modifier(修改者):在創(chuàng)建時寫入○description(描述):僅列表中指定的用戶可以讀取短URI;值為“空”表示不存在對訪問者的限制●http-header-names(http頭部名稱)○datatype(數據類型):重復的字符串○modifier(修改者):在創(chuàng)建時寫入○description(描述):與原始URI相關聯的http頭部的名稱的列表●http-header-values(http頭部值)○datatype(數據類型):重復的字符串○modifier(修改者):在創(chuàng)建時寫入○description(描述):與原始URI相關聯的http頭部值的列表可以理解,利用expiration-date屬性和one-time-use屬性,Web服務器302可以控制所創(chuàng)建的短URI的使用期。此外,應當理解,盡管可以通過在Web服務器302側定義forbidden-accessors屬性和exclusive-accessors屬性來控制用戶對短URI的訪問,但是在不依賴于forbidden-accessors等屬性的情況下,內容服務器303仍然可以采用自身的訪問控制列表(AccessControlList,ACL)模型來進一步管理短URI實例,例如授權用戶對短URI對短URI實例的讀取權限、廢除用戶對短URI對短URI實例的讀取權限等。另外,應當理解,Web服務器302(例如Web服務器302上的應用程序)可以基于如上定義的短URI數據字典“shorten_uri”而利用API來針對長URI創(chuàng)建相應的短URI。該API可以采用任何適當的已知算法,例如Java算法、.NET算法等,因而,在本文中省略了對該已知算法的詳細描述。再者,Web服務器302(例如Web服務器302上的應用程序)可以利用API來消費(使用)所創(chuàng)建的短URI。為此,根據本發(fā)明的實施方式定義了“短URI數據傳輸對象(DataTransferObject)以及相關的API方法集合,來使得Web服務器302可以消費所創(chuàng)建的短URI。例如,Web服務器302可以例如通過Java應用程序、.NET應用程序、SOAPWeb服務、或RESTful服務等來消費該API。具體地,“短URI數據傳輸對象”被用于Web服務器302與內容服務器303之間的交互。作為一個示例,短URI數據傳輸對象“ShortenUri”可以被定義如下:ShortenUri·originalUri(原始URI)字符串;映射到original-uri;由短URI數據傳輸對象“ShortenUri”的調用方來提供·shortenUri(短URI)字符串;映射到shorten-uri;由短URI數據傳輸對象“ShortenUri”的接收方來提供·expirationDate(失效日期)日期;映射到失效日期;由短URI數據傳輸對象“ShortenUri”的調用方來提供·oneTimeUse(一次性)布爾;映射到one-time-access;由短URI數據傳輸對象“ShortenUri”的調用方來提供·forbiddenAccessors(被禁止的訪問者)列表<字符串>;映射到forbidden-accessors;由短URI數據傳輸對象“ShortenUri”的調用方來提供·exclusiveAccessors(排他訪問者)列表<字符串>;映射到exclusive-accessors;由短URI數據傳輸對象“ShortenUri”的調用方來提供·httpHeaders(http頭部)映射<字符串,字符串[]>;映射到http-header-names和http-header-values;由短URI數據傳輸對象“ShortenUri”的調用方和接收方來提供·其他映射<字符串,對象>;保留;可選的??梢岳斫?,與短URI數據字典“shorten_uri”類似,短URI數據傳輸對象“ShortenUri”應至少包括originalUri屬性和shortenUri屬性,并且可以可選地包括expirationDate等可選屬性中的一項或多項。此外,與短URI數據傳輸對象“ShortenUri”相關的API方法集合可定義如下。ShortenUrimakeShortenUri(ShortenUrishortenUri)Description(描述):在Web服務器中創(chuàng)建新的短URI。Input(輸入):shortenUri–針對短URI的請求,必需的屬性為originalUri,其他可選屬性可包括expirationDate、oneTimeAccess、exclusiveAccessors和httpHeaders。Output(輸出):新的短URI。必須在短URI數據傳輸對象“ShortenUri”中返回shortenUri。需要注意的是,關于方法ShortenUrimakeShortenUri(ShortenUrishortenUri)中的(ShortenUrishortenUri)而言,“ShortenUri”表示如上定義的短URI數據傳輸對象“ShortenUri”,而“shortenUri”表示該短URI數據傳輸對象的一個實例。ShortenUrigetOriginalUri(StringshortenUri,Stringaccessor)Description(描述):通過短URI獲得原始URI。如果該短URI限制訪問者,則提示訪問異常。Input(輸入):shortenUri–短URIaccessor–該短URI的訪問者。該參數是可選的。Output(輸出):原始URI。必須在短URI數據傳輸對象“ShortenUri”中返回該原始URI。booleanremoveShortenUri(StringshortenUri)Description(描述):移除短URI。只有創(chuàng)建者和系統(tǒng)管理員有權移除短URI。Input(輸入):shortenUri–短URIOutput(輸出):指示移除是否成功的布爾值。應當理解,以上僅定義了用于使得Web服務器可以消費短URI的相關的API方法集合中的示例性方法。根據具體的應用場景,可以定義更多的方法并將其添加至上述API方法集合中。此外,可以采用任何適當的實現方式或算法設計來實施這些示例性方法,本發(fā)明實施方式的范圍在此發(fā)明不受限制。如上所述,在根據本發(fā)明實施方式提供的URI縮短服務中,內容服務器303被配置為維護與短URI相關的元數據。內容服務器303可以包括用于存儲與短URI相關的元數據的數據庫。例如,與短URI相關的元數據可以以數據庫表單的形式存儲于內容服務器303的數據庫中。以下的表1至5示出了以數據庫表單形式存儲的與短URI相關的元數據的示例。注意,在表1至5中,為了簡明起見,針對原始URI(original-uri)和短URI(shorten-uri)均為示出相應的傳輸協(xié)議名稱和域名,而僅示出了路徑名稱。表1:具有失效日期(expirationdate)的活躍的短URI表2:失效的短URI屬性值original-uri/tenants/1b523c/spaces/02c6d/folders/9843a2f/docs/837b8shorten-uri/s/1fb5dcreatordavecreation-date2015-09-15T07:52:07.277+00:00expiration-date2015-09-25T08:00:00.000+00:00last-access-date2015-09-27T14:37:51.213+00:00access-count2one-time-useFalseforbidden-accessors-exclusive-accessorshttp-header-names-http-header-values-表3:有效的一次性的短URI屬性值original-uri/tenants/1b523c/spaces/02c6d/folders/9843a2f/docs/837b8shorten-uri/s/1fb5dcreatordavecreation-date2015-09-15T07:52:07.277+00:00expiration-date2015-09-25T08:00:00.000+00:00last-access-date-access-count0one-time-useTrueforbidden-accessors-exclusive-accessorshttp-header-names-http-header-values-表4:具有受限制的用戶的短URI屬性值original-uri/tenants/1b523c/spaces/02c6d/folders/9843a2f/docs/837b8shorten-uri/s/1fb5dcreatordavecreation-date2015-09-15T07:52:07.277+00:00expiration-date2015-09-25T08:00:00.000+00:00last-access-date2015-09-15T08:24:21.478+00:00access-count2one-time-useFalseforbidden-accessorsAlice,Bobexclusive-accessorshttp-header-names-http-header-values-表5:具有認證(Authorization)頭部的短URI屬性值original-uri/tenants/1b523c/spaces/02c6d/folders/9843a2f/docs/837b8shorten-uri/s/1fb5dcreatordavecreation-date2015-09-15T07:52:07.277+00:00expiration-date2015-09-25T08:00:00.000+00:00last-access-date2015-09-15T08:24:21.478+00:00access-count2one-time-useFalseforbidden-accessors-exclusive-accessorshttp-header-namesAuthorizationhttp-header-valuesBasicZGF2ZTpwYXNzd29yZA==在下文中,將結合圖3來描述方法300中客戶端301、Web服務器302、以及內容服務器303之間的交互。與方法100類似,在方法300中同樣假定用戶已經獲得了與期望訪問的內容資源的長URI對應的短URI。應當理解,用戶可以采用任何適當的方式來獲取該短URI。例如,用戶可以針對長URI向Web服務器302進行注冊以獲得相應的短URI。例如,用戶可以針對長URI“http://example.com/tenants/1b523c/spaces/02c6d/folders/9843a2f/docs/837b8”向Web服務器302進行注冊而獲得相應的短URI,例如“http://example.com/s/1fb5d”。其中,“example.com”為Web服務器302的名稱,即該短URI的域名,“/s/1fb5d”為該短URI的標識符(ID)。又例如,用戶可以通過電子郵件、網頁等獲得該短URI。在獲得了該短URI后,用戶可以通過客戶端301(例如Web瀏覽器)向Web服務器302發(fā)送訪問內容資源的請求(如步驟S310所示),例如形式為“GEThttp://example.com/s/1fb5d”的GET請求3100。從GET請求3100中可見,該GET請求3100中包含用于期望訪問的內容資源的短URI“http://example.com/s/1fb5d”。在步驟S320,響應于接收到該GET請求,Web服務器302與內容服務器303進行通信,以獲取內容服務器中的與該短URI相關的元數據。例如,Web服務器302可以利用如前所述的短URI數據傳輸對象“ShortenUri”和ShortenUrigetOriginalUri(StringshortenUri,Stringaccessor)方法來與內容服務器303進行通信,以獲取所需的元數據。在步驟S330,內容服務器303向Web服務器302返回所需的元數據306。例如,內容服務器303可以以表1至5中任一個所示的形式返回該元數據306。在步驟S340,Web服務器302解析該元數據306,以獲取與短URI對應的長URI。根據本發(fā)明的實施方式,由于長URI及其對應的短URI均為Web服務器302所創(chuàng)建的,因而二者均指向Web服務器302,即長URI及其對應的短URI具有相同的域名,但是長URI的字符長度長于短URI。根據本發(fā)明的實施方式,內容服務器303所返回的元數據306中可進一步包括利用長URI發(fā)起的訪問內容資源的請求中的報頭信息。該報頭信息例如可以包括客戶端所指定的與針對請求的響應有關的信息、客戶端的認證信息等。作為一個示例,在客戶端301和Web服務器302之間采用HTTP協(xié)議進行通信的情況下,該報頭信息可以包括http請求的httpheader(http頭部)信息。具體而言,如本領域技術人員所理解的,HTTP協(xié)議采用請求/響應模型,客戶端(例如客戶端301)向服務器(例如Web服務器302)發(fā)出http請求,服務器給與http響應。http請求通常包括httpheader(http頭部)和httpbody(http消息體)兩部分。該httpheader(http頭部)例如可以包括表6所示示例性信息中的一項或多項。表6根據本發(fā)明的實施方式,可以在針對長URI創(chuàng)建相應的短URI期間獲取上述與長URI相關聯的信息,例如httpheader中的信息。具體而言,在利用短URI向Web服務器302發(fā)送GET請求3100之前,用戶可以首先利用長URI、通過客戶端301向Web服務器302發(fā)送另一GET請求。該另一GET請求的httpheader可以包含以上表6所示的信息中的一項或多項。例如,該另一GET請求的httpheader可以包含以上表6中所示的headername為“Authorization”并且headervalue為“BasicZGF2ZTpwYXNzd29yZA==”的信息。隨后,Web服務器302可以響應于接收到該另一GET請求,創(chuàng)建與該另一GET請求中的長URI對應的短URI。具體地,在創(chuàng)建與長URI對應的短URI時,Web服務器302可以生成與短URI相關的元數據并且向內容服務器303提供所生成的元數據。此外,在生成與短URI相關的元數據時,Web服務器302可以將與長URI相關聯的信息(例如,以上表6中所示的headername為“Authorization”并且headervalue為“BasicZGF2ZTpwYXNzd29yZA==”的信息)包括在該元數據中。例如,上述的表5示出了包括以上表6中所示的headername為“Authorization”并且headervalue為“BasicZGF2ZTpwYXNzd29yZA==”的信息的元數據的示例。由于預先將與長URI相關聯的信息包括在與短URI相關的元數據中、并且將該元數據存儲在內容服務器303中,因此在利用短URI向Web服務器302發(fā)送GET請求3100時無需再次攜帶與長URI相關聯的該信息,從而降低了泄露與長URI相關聯的信息的風險,提高了訪問的安全性。繼續(xù)參照圖3。在步驟S350,Web服務器302對該長URI進行解析以識別由該長URI標識的內容資源、并且進一步識別與該內容資源對應的數據對象。在步驟S360,Web服務器302與內容服務器303進行通信,以獲取該數據對象。在步驟S370,內容服務器303向Web服務器302返回所需的數據對象。接下來,Web服務器302可以基于所接收的數據對象構建針對內容資源請求的響應。隨后,在步驟S380,Web服務器302將針對內容資源請求的響應返回至客戶端101。此外,基于所接收的數據對象構建針對內容資源請求的響應可以進一步包括如圖3虛線箭頭所示的可選步驟S390和S3100。具體而言,在步驟S390,Web服務器302向內容服務器303查詢與期望訪問的內容資源相關聯的內容資源的短URI。在一些實施方式中,步驟S390可以包括如下操作:首先,Web服務器302對從內容服務器303接收的數據對象進行解析,以確定與期望訪問的內容資源相關聯的內容資源;然后,Web服務器302識別期望訪問的內容資源與相關聯的內容資源之間的鏈接關系(linkrelation),并基于該鏈接關系生成該相關聯的內容資源的長URI;接下來,Web服務器302在內容服務器303中查詢是否存在該相關聯的內容資源的長URI對應的短URI。如果內容服務器303中存在該相關聯的內容資源的長URI對應的短URI,則內容服務器303在步驟S3100返回該短URI。另一方面,如果內容服務器303中不存在該相關聯的內容資源的長URI對應的短URI,則Web服務器302針對該相關聯的內容資源的長URI生成對應的短URI,并創(chuàng)建該長URI與對應的短URI之間的映射關系以生成與該短URI相關的元數據(圖3中未示出)。隨后,Web服務器302可以向內容服務器303提供該元數據以進行存儲。在獲得了該相關聯的內容資源的短URI后,Web服務器302可以向從內容服務器303接收的數據對象中添加期望訪問的內容資源的短URI以及該相關聯的內容資源的短URI,以構建針對內容資源請求的響應并將其返回至客戶端301。應當理解,在本文中對于Web服務器的描述僅旨在給出用于提供對內容服務器中的內容資源的訪問的計算設備的一個示例,而并非以該示例中的任何細節(jié)對本公開的范圍進行任何限制。本領域的技術人員可以理解,還可以采用任何其它適當類型的計算設備來實施根據本發(fā)明的各個實施方式。此外,應當理解,盡管在本文中以GET請求為例描述了用于提供對內容資源的訪問的方法,但是本發(fā)明實施方式的范圍并不局限于此。事實上,根據本發(fā)明實施方式的用于提供對內容資源的訪問的方法同樣適用于POST、PUT、DELETE請求等。圖4示出了針對內容資源請求的示例性響應400。在示例性響應400中,采用JSON(JavaScriptObjectNotation,JavaScript對象表示法)格式來表示針對文檔資源的響應中的數據對象。具體地,響應400中的數據對象被示出為包括四個屬性:“type(類型)”、“definition(定義)”、“properties(屬性)”、以及“l(fā)inks(鏈接)”。對于“l(fā)inks”屬性而言,其包括指向所期望訪問的文檔資源自身的鏈接“http://example.com/s/91fy3m”(其鏈接關系的名稱為“self”)以及指向與其相關聯的內容資源的鏈接“http://example.com/s/91fy3m”(其鏈接關系的名稱為“edit”)、“http://example.com/s/84z05f”(其鏈接關系的名稱為“parent”)等。應當理解,盡管在圖4中示出了采用JSON格式來表示的響應,但是也可以采用任何其他適當的格式來表示針對內容資源請求的響應,例如采用XML(ExtensiveMarkupLanguage,可擴展標記語言)格式等。本發(fā)明實施方式的范圍在此方面不受限制。本發(fā)明的實施方式還提供了一種用于提供對內容資源的訪問的裝置。圖4示出根據本發(fā)明的一個實施方式的用于提供對內容資源的訪問的裝置400的框圖。裝置400可以在任何適當的服務器上實現。該服務器可以包括但是不限于:Web服務器、應用服務器、或任何其它適當類型的服務器。在采用Web服務器的情況下,Web服務器例如可以為采用REST架構的REST服務器。如圖4所示,裝置400包括:交互單元410,被配置為響應于接收到訪問內容服務器中的內容資源的請求,與該內容服務器進行通信,以獲取該內容服務器中的、與該內容資源的第一統(tǒng)一資源標識符URI相關的元數據,其中該請求中包含該第一URI,該元數據至少指明該內容資源的該第一URI與該內容資源的第二URI之間的映射關系,其中該第一URI是該第二URI的縮短版本;解析單元420,被配置為解析該元數據,以獲取該第二URI;以及響應單元430,被配置為利用該第二URI對該請求進行響應。在一些實施方式中,該第二URI與該第一URI具有相同的域名并且該第二URI的字符長度長于該第一URI。在一些實施方式中,交互單元410被進一步配置為:在接收第一請求之前,接收訪問內容資源的第二請求,第二請求中包含長URI;并且裝置400進一步包括:創(chuàng)建單元,被配置為創(chuàng)建該第一URI與該第二URI之間的該映射關系,以生成與該第一URI相關的該元數據。在一些實施方式中,該第二請求中包含報頭信息,并且其中該創(chuàng)建單元被進一步配置為:從該第二請求中提取出該報頭信息;以及將該報頭信息包括在該元數據中。在一些實施方式中,響應單元430被進一步配置為:對該第二URI進行解析以識別由該第二URI標識的內容資源;識別與該內容資源對應的數據對象;以及與該內容服務器進行通信,以獲取該數據對象。在一些實施方式中,響應單元430被進一步配置為:對該數據對象進行解析,以確定與該內容資源相關聯的內容資源;以及識別該內容資源和該相關聯的內容資源之間的鏈接關系;并且該創(chuàng)建單元被進一步配置為:基于該鏈接關系來生成該相關聯的內容資源的第二URI;以及基于該相關聯的內容資源的該第二URI,來確定與該相關聯的內容資源的該第二URI對應的該相關聯的內容資源的第一URI。在一些實施方式中,該創(chuàng)建單元被進一步配置為:針對該相關聯的內容資源的該第二URI,向該內容服務器查詢該相關聯的內容資源的該第一URI。在一些實施方式中,該創(chuàng)建單元被進一步配置為:如果該內容服務器中存在該相關聯的內容資源的該第一URI,則從該內容服務器獲取該相關聯的內容資源的該第一URI。在一些實施方式中,該創(chuàng)建單元被進一步配置為:如果該內容服務器中不存在該相關聯的內容資源的該第一URI,則創(chuàng)建該相關聯的內容資源的該第一URI與該相關聯的內容資源的該第二URI之間的該映射關系,以生成與該相關聯的內容資源的該第一URI相關的元數據。在一些實施方式中,響應單元430被進一步配置為:通過向該數據對象中添加該內容資源的該第一URI以及該相關聯的內容資源的該第一URI,來構建對該請求的響應。圖5是示出能夠用于實現根據本發(fā)明實施方式的計算機系統(tǒng)的示意性框圖。下面參考圖5,其示出了適于用來實現本發(fā)明實施方式的計算機系統(tǒng)500的示意性框圖。如圖5所示,計算機系統(tǒng)500包括中央處理單元(CPU)501,其可以根據存儲在只讀存儲器(ROM)502中的程序或者從存儲部分508加載到隨機訪問存儲器(RAM)503中的程序而執(zhí)行各種適當的動作和處理。在RAM503中,還存儲有計算機系統(tǒng)500操作所需的各種程序和數據。CPU501、ROM502以及RAM503通過總線404彼此相連。輸入/輸出(I/O)接口505也連接至總線504。以下部件連接至I/O接口505:包括鍵盤、鼠標等的輸入部分506;包括諸如陰極射線管(CRT)、液晶顯示器(LCD)等以及揚聲器等的輸出部分507;包括存儲盤等的存儲部分508;以及包括諸如LAN卡、調制解調器等的網絡接口卡的通信部分509。通信部分509經由諸如因特網的網絡執(zhí)行通信處理。驅動器510也根據需要連接至I/O接口505??刹鹦督橘|511,諸如存儲盤、光盤、磁光盤、半導體存儲器等等,根據需要安裝在驅動器510上,以便于從其上讀出的計算機程序根據需要被安裝入存儲部分508。特別地,根據本發(fā)明的實施方式,上文參考圖2和3描述的過程可以被實現為計算機軟件程序。例如,本發(fā)明的實施方式包括一種計算機程序產品,其包括有形地包含在計算機可讀介質上的計算機程序,所述計算機程序包含用于執(zhí)行方法200和300的程序代碼。一般而言,本發(fā)明的各種示例實施方式可以在硬件或專用電路、軟件、邏輯,或其任何組合中實施。某些方面可以在硬件中實施,而其他方面可以在可以由控制器、微處理器或其他計算設備執(zhí)行的固件或軟件中實施。當本發(fā)明的實施方式的各方面被圖示或描述為框圖、流程圖或使用某些其他圖形表示時,將理解此處描述的方框、裝置、系統(tǒng)、技術或方法可以作為非限制性的示例在硬件、軟件、固件、專用電路或邏輯、通用硬件或控制器或其他計算設備,或其某些組合中實施。而且,流程圖中的各框可以被看作是方法步驟,和/或計算機程序代碼的操作生成的操作,和/或理解為執(zhí)行相關功能的多個耦合的邏輯電路元件。例如,本發(fā)明的實施方式包括計算機程序產品,該計算機程序產品包括有形地實現在計算機可讀介質上的計算機程序,該計算機程序包含被配置為實現上文描述方法的程序代碼。在公開的上下文內,計算機可讀介質可以是包含或存儲用于或有關于指令執(zhí)行系統(tǒng)、裝置或設備的程序的任何有形介質。計算機可讀介質可以是機器可讀信號介質或機器可讀存儲介質。計算機可讀介質可以包括但不限于電子的、磁的、光學的、電磁的、紅外的或半導體系統(tǒng)、裝置或設備,或其任意合適的組合。機器可讀存儲介質的更詳細示例包括帶有一根或多根導線的電氣連接、便攜式計算機存儲盤、存儲盤、隨機存儲存取器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPROM或閃存)、光存儲設備、磁存儲設備,或其任意合適的組合。用于實現本發(fā)明的方法的計算機程序代碼可以用一種或多種編程語言編寫。這些計算機程序代碼可以提供給通用計算機、專用計算機或其他可編程的數據處理裝置的處理器,使得程序代碼在被計算機或其他可編程的數據處理裝置執(zhí)行的時候,引起在流程圖和/或框圖中規(guī)定的功能/操作被實施。程序代碼可以完全在計算機上、部分在計算機上、作為獨立的軟件包、部分在計算機上且部分在遠程計算機上或完全在遠程計算機或服務器上執(zhí)行。另外,盡管操作以特定順序被描繪,但這并不應該理解為要求此類操作以示出的特定順序或以相繼順序完成,或者執(zhí)行所有圖示的操作以獲取期望結果。在某些情況下,多任務或并行處理會是有益的。同樣地,盡管上述討論包含了某些特定的實施細節(jié),但這并不應解釋為限制任何發(fā)明或權利要求的范圍,而應解釋為對可以針對特定發(fā)明的特定實施方式的描述。本說明書中在分開的實施方式的上下文中描述的某些特征也可以整合實施在單個實施方式中。相反地,在單個實施方式的上下文中描述的各種特征也可以分離地在多個實施方式或在任意合適的子組合中實施。針對前述本發(fā)明的示例實施方式的各種修改、改變將在連同附圖查看前述描述時對相關
技術領域
的技術人員變得明顯。任何及所有修改將仍落入非限制的和本發(fā)明的示例實施方式范圍。此外,前述說明書和附圖存在啟發(fā)的益處,涉及本發(fā)明的這些實施方式的
技術領域
的技術人員將會想到此處闡明的本發(fā)明的其他實施方式。將會理解,本發(fā)明的實施方式不限于公開的特定實施方式,并且修改和其他實施方式都應包含于所附的權利要求范圍內。盡管此處使用了特定的術語,但是它們僅在通用和描述的意義上使用,而并不用于限制目的。當前第1頁1 2 3 
當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
古田县| 思茅市| 山阳县| 昌邑市| 永修县| 文山县| 海南省| 易门县| 浮梁县| 焦作市| 桂平市| 弋阳县| 苏州市| 高平市| 通道| 罗平县| 望城县| 安平县| 金坛市| 措勤县| 莒南县| 开远市| 涿鹿县| 建昌县| 丰城市| 平江县| 清新县| 靖边县| 普陀区| 哈巴河县| 顺昌县| 四平市| 乐陵市| 墨竹工卡县| 澄迈县| 会泽县| 米泉市| 山东| 金山区| 长岛县| 绥滨县|