日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

内容协商 (Content Negotiation)

發(fā)布時(shí)間:2023/11/27 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 内容协商 (Content Negotiation) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
大多數(shù)響應(yīng)包含一個(gè)實(shí)體,此實(shí)體包含人類用戶能理解的信息。通常,希望提供給用戶相應(yīng)于請(qǐng)求最容易得到的實(shí)體。對(duì)服務(wù)器和緩存來說,不幸的是,并不是所有的用戶都對(duì)這個(gè)最容易得到的實(shí)體有喜好,并且并不是所有的用戶代理(如web瀏覽器)都能一致的呈現(xiàn)這些實(shí)體。所以,HTTP提供了一些“內(nèi)容協(xié)商”機(jī)制 — 當(dāng)有多個(gè)可得的表現(xiàn)形式的時(shí)候,對(duì)特定的響應(yīng)選擇最好的表現(xiàn)形式的處理過程。

注意:沒有稱做“格式協(xié)商”(譯注:“格式”指的是“媒體類型”)的,因?yàn)榭商鎿Q的表現(xiàn)形式可能會(huì)同原來的有相同的媒體類型,只是利用了此媒體類型不同的性質(zhì),例如一種不同的語言。

任何包含一個(gè)實(shí)體主體的響應(yīng)包括錯(cuò)誤響應(yīng)都可能會(huì)受協(xié)商的支配。

有兩種類型的內(nèi)容協(xié)商在HTTP中:服務(wù)器驅(qū)動(dòng)協(xié)商和代理驅(qū)動(dòng)協(xié)商。這兩種類型的協(xié)商具有正交性并且能被單獨(dú)使用或聯(lián)合使用。一個(gè)聯(lián)合使用方法的協(xié)商會(huì)被叫做透明協(xié)商,當(dāng)緩存利用代理驅(qū)動(dòng)協(xié)商的信息的時(shí)候,此代理驅(qū)動(dòng)協(xié)商的信息被為后續(xù)請(qǐng)求提供服務(wù)器驅(qū)動(dòng)協(xié)商的源服務(wù)器提供。

12.1 服務(wù)器驅(qū)動(dòng)協(xié)商(Server-driven Negotiation)
如果響應(yīng)的最好的表現(xiàn)形式的選擇是通過服務(wù)器上的算法來實(shí)現(xiàn),那么這種方式的協(xié)商稱做服務(wù)器驅(qū)動(dòng)協(xié)商。選擇是基于響應(yīng)可得的表現(xiàn)形式(根據(jù)不同的維度,響應(yīng)會(huì)不同;例如,語言,內(nèi)容編碼,等等)和請(qǐng)求消息里特定的頭域或關(guān)于請(qǐng)求的其他信息(如:網(wǎng)絡(luò)客戶端的地址)。

服務(wù)器驅(qū)動(dòng)協(xié)商是有優(yōu)點(diǎn)的,當(dāng)從可行的表現(xiàn)形式里進(jìn)行選擇的算法對(duì)用戶代理進(jìn)行描述是比較困難的時(shí)候(譯注:代理驅(qū)動(dòng)協(xié)商),或者當(dāng)服務(wù)器期望發(fā)送“最好的猜測(cè)”給客戶端而只通過一個(gè)響應(yīng)(以避免后續(xù)請(qǐng)求的回路(一個(gè)請(qǐng)求會(huì)返回一個(gè)響應(yīng))延遲如果此“最好的猜測(cè)“對(duì)用戶適合的時(shí)候)的時(shí)候。為了改善服務(wù)器的猜測(cè),用戶代理應(yīng)該包含請(qǐng)求頭域(Accept,Accept-Language,Accept-Encoding,等等),這些頭域能描述它對(duì)響應(yīng)的喜好。

服務(wù)驅(qū)動(dòng)協(xié)商有如下缺點(diǎn):

1. 對(duì)服務(wù)器不可能確切的決定對(duì)用戶來說什么是最好的,因?yàn)槟切枰獙?duì)用戶代理和用戶對(duì)此響應(yīng)目的的全面理解(如:用戶到底想把響應(yīng)展示到屏幕還是打印到紙上?)。

2. 使用戶代理描述請(qǐng)求里的能力是非常無效的(假設(shè)只有響應(yīng)的一小部分有多個(gè)表現(xiàn)形式)還有會(huì)侵犯用戶的隱私。

3. 使源服務(wù)器的實(shí)現(xiàn)變得復(fù)雜,也對(duì)為請(qǐng)求產(chǎn)生響應(yīng)的算法實(shí)現(xiàn)變得復(fù)雜。

4. 可能會(huì)限制公有緩存(public cache)為多個(gè)客戶請(qǐng)求利用相同響應(yīng)的能力

HTTP/1.1包含下面的請(qǐng)求頭域來使服務(wù)器驅(qū)動(dòng)協(xié)商啟動(dòng),這些請(qǐng)求頭域描述了用戶代理的能力和用戶喜好:Accept(14.1節(jié)),Accept-Charset(14.2節(jié)),Accept-Encoding(14.3節(jié)),Accept-Language(14.4節(jié)),和User-Agent(14.43節(jié))。然而,一些源服務(wù)器并不只局限于這些維度,這些服務(wù)器能基于請(qǐng)求的任何方面來讓響應(yīng)不同,這些方面包括請(qǐng)求頭域之外的信息或在此規(guī)范里沒有定義的擴(kuò)展頭域。

Vary頭域能被用來表達(dá)服務(wù)器選擇表現(xiàn)形式(representation)利用的參數(shù),表現(xiàn)形式受服務(wù)器驅(qū)動(dòng)協(xié)商的支配。見14.44節(jié)描述了Vary頭域如何被服務(wù)器的使用,13.6節(jié)描述了Vary頭域被緩存的使用。

12.2 代理驅(qū)動(dòng)協(xié)商 (Agent-driven Negotiation)
對(duì)代理驅(qū)動(dòng)協(xié)商來說,響應(yīng)的最好表現(xiàn)形式的選擇被用戶代理執(zhí)行,這在接收到源服務(wù)器一個(gè)初始的響應(yīng)后。選擇是基于響應(yīng)的一系列可得的表現(xiàn)形式,這些表現(xiàn)形式被包含在初始響應(yīng)的頭域或初始響應(yīng)的實(shí)體主體(entity-body)里,每個(gè)表現(xiàn)形式被一個(gè)屬于自己的URI指定。從這些表現(xiàn)形式中選擇可能被自動(dòng)執(zhí)行(如果用戶代理有能力這樣做)或者被用戶從超文本連接菜單中手工選擇。

代理驅(qū)動(dòng)協(xié)商是有優(yōu)點(diǎn)的,當(dāng)響應(yīng)可能會(huì)根據(jù)一般用途的維度(如:類型,語義,編碼)而不同的時(shí)候,當(dāng)源服務(wù)器不能通過查看請(qǐng)求而判定用戶代理能力的時(shí)候,當(dāng)共有緩存(public cache)被用來分派服務(wù)器的承載和減少網(wǎng)絡(luò)使用的時(shí)候。

代理驅(qū)動(dòng)協(xié)商也同樣存在需要第二次請(qǐng)求而獲得最好表現(xiàn)形式的缺點(diǎn)。第二次請(qǐng)求只有當(dāng)緩存被使用時(shí)才是有效率的。另外,此規(guī)范沒有定義用戶代理自動(dòng)選擇表現(xiàn)形式的機(jī)制,所以不能防止任何這樣的機(jī)制被用于HTTP/1.1

HTTP/1.1定義了300(多個(gè)選擇)和406(不接受的)狀態(tài)響應(yīng),當(dāng)使用代理驅(qū)動(dòng)協(xié)商時(shí)服務(wù)器不能或不愿意利用服務(wù)器驅(qū)動(dòng)協(xié)商來提供一個(gè)不同的響應(yīng)的是時(shí)候。

12.3 透明協(xié)商(Transparent Negotiation)
透明協(xié)商是服務(wù)器驅(qū)動(dòng)協(xié)商和代理驅(qū)動(dòng)協(xié)商的結(jié)合體。當(dāng)一個(gè)緩存被提供了構(gòu)成響應(yīng)的一系列可得的表現(xiàn)形式(就像在代理驅(qū)動(dòng)協(xié)商里的響應(yīng)一樣)并且維度的差異能完全被緩存理解,那么此緩存變得有能力代表源服務(wù)器為那個(gè)資源的后續(xù)請(qǐng)求去執(zhí)行服務(wù)器驅(qū)動(dòng)協(xié)商。

透明協(xié)商的優(yōu)點(diǎn)在于它能分發(fā)源服務(wù)器的協(xié)商工作并且能移去代理驅(qū)動(dòng)協(xié)商的第二次請(qǐng)求的延遲,因?yàn)榫彺婺苷_的猜測(cè)到合適的響應(yīng)。

此規(guī)范沒有定義透明協(xié)商的機(jī)制,所以,它不能防止任何這樣的機(jī)制被用于HTTP/1.1。

總結(jié)

以上是生活随笔為你收集整理的内容协商 (Content Negotiation)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。