在Fielding博士論文中說:“HTTP並不是一種傳輸協議”,具體的內容是什麼?

李錕發表於2012-01-22

答:以下內容摘自Fielding博士論文中文版(《架構風格與基於網路的軟體架構設計》)6.5.3小節“HTTP並不是一種傳輸協議”。 HTTP並不是被設計為一種傳輸協議(transport protocol),它是一種轉移協議(transfer protocol)。在HTTP協議中,訊息通過在那些資源的表述上的轉移和操作,來對資源執一些動作,從而反映出Web架構的語義。使用這個非常簡單的介面來獲得廣泛的功能是完全有可能的,但是必須要遵循這個介面,以便HTTP的語義被保持為對於中間元件是可見的。 這就是為何HTTP可以穿越防火牆的原因。大多數當前提議的對於HTTP的擴充套件,除了WebDAV以外,僅僅使用HTTP作為一種使其他的應用協議穿越防火牆的方法,這從根本上來說是一種有誤導性的想法。不僅僅是因為這種擴充套件方式挫敗了擁有一個防火牆的目的,而且從長遠來看它將無法工作,因為防火牆的廠商將會不得不執行額外的協議過濾。因此這種擴充套件方式對於那些在HTTP之上的擴充套件而言是沒有意義的,因為在這種情況下HTTP所完成的唯一的事情就是新增了來自一個遺留語法的負載(譯者注:即新增了額外的 HTTP 協議負載)。一個真正的HTTP應用應該將協議使用者的動作對映到能夠使用HTTP語義來表達的某個事物,以這種方式建立一個基於網路的API來提供服務,能夠被使用者代理和中間元件所理解,而不需要知道關於應用的任何知識。

相關文章