3W的核心之HTTP協議基礎概念
在我們瀏覽互聯網的時候,大多數,我們在地址欄中鍵入地址,都會看到HTTP字樣,但是,大家都清楚HTTP是什么嗎?HTTP是一種協議,全名叫超文本傳輸協議?,F在,我們針對HTTP協議基礎概念進行一下講解。希望大家都能了解這個WWW的核心協議。
超文本傳輸協議(HTTP)是一種為分布式,合作式,多媒體信息系統服務,面向應用層的協議。它是一種通用的,不分狀態(stateless)的協議,除了諸如名稱服務和分布對象管理系統之類的超文本用途外,還可以通過擴展它的請求方式,錯誤代碼和報頭來完成許多任務。HTTP的一個特點是數據表示方式的典型性和可協商性允許獨立于傳輸數據而建立系統。
在1990年WWW全球信息剛剛起步的時候HTTP就得到了應用。HTTP的***個版本叫做HTTP/0.9,是一種為互聯網原始數據傳輸服務的簡單協議。由RFC 1945定義的HTTP/1.0進一步完善了這個協議。它允許消息以類似MIME的格式傳送,包括有關數據傳輸的維護信息和關于請求/應答的句法修正。但是,HTTP/1.0沒有充分考慮到分層代理,高速緩存的作用以及對穩定連接和虛擬主機的需求。并且隨著不完善的進程應用的激增,HTTP/1.0迫切需要一個新的版本,以便使兩個通信應用程序能夠確定彼此的真實性能。
這里規定的協議叫做“HTTP/1.1".這個協議與HTTP/1.0相比,要求更為嚴格,以確保各項功能得到可靠實現。
實際的信息系統除了簡單的檢索外,要求更多的功能性(functionality),包括查找(search),前端更新(front-end update)和注解(annotation)。HTTP允許可擴充的方法集和報頭集以指示請求的目的[47]。它是建立在統一資源標識符(URI)[3]提供的地址(URL)[4]和名字(URN)上[20],以指出方法應用于哪個資源的。消息以類似于一種叫做多用途網絡郵件擴展(MIME)[7] 的互聯網郵件的格式傳送。
HTTP也是用于用戶代理之間及代理/網關到其他網絡系統的通用通信協議,這樣的網絡系統可能由SMTP,NNTP,FTP,Gopher和WAIS協議支持。這樣,HTTP允許不同的應用程序對資源進行基本的超媒體訪問。
HTTP協議基礎概念——總體操作
HTTP協議是一種請求/應答協議。 與主機建立連接后,客戶以請求方法,URI和協議版本的形式向服務器發送請求,繼以類MIME信息,其中包括請求修改,客戶信息和可能的正文內容。
服務器用包括消息協議版本和成功或錯誤代碼的狀態進行應答,繼以包括服務器信息,實體維護信息和可能的實體內容的類MIME消息。
大部分的HTTP通信由用戶代理引發,由應用到一些原服務器上資源的請求構成。最簡單的情形,可以經用戶代理(UA)和原服務器(O)之間的單一連接(v)完成。
請求鏈---->用戶代理(UA)-----單一連接(v)----原服務器(O) <----應答鏈
當一個或一個以上的中介在請求/應答鏈中出現的時候,會出現更復雜的情形。常見的中介形式有三種:代理,網關和隧道。代理是一種轉送工具,它接收絕對形式的URI請求,重寫全部或部分消息,然后把重新格式化后的請求發送到URI確定的服務器上。網關是一種接收工具,它充當其他服務器的上層,必要時將請求翻譯為下層服務器的協議。隧道不改變消息而充當兩個連接之間的中繼點;它用于通信需要穿過中介(如防火墻),甚至中介不能理解信息內容的時候。
請求鏈---->UA-----v-----A-----v-----B-----v-----C-----v-----O <----應答鏈
顯示了用戶代理和原服務器之間的三個中介(A,B和C)。游歷整條鏈的請求或應答消息需通過四個獨立的連接。這個特性很重要,因為某些HTTP通信選項只能應用于到最近的非隧道鄰居,鏈的終點的連接,或者沿著鏈的所有連接。圖表盡管是線性的,每部分可能都在忙于多路同時通信。例如,B可以接收來自不同于A的許多客戶的請求,并且/或者轉送到不同于C的服務器,與此同時,它還在處理A的請求。
任何非隧道的通信成員都可以使用內部的高速緩存來處理請求。高速緩存的作用是如果沿著鏈的一個成員對請求采用了高速緩沖的應答,請求/應答鏈就會大大縮短。以下圖解作為結果產生的鏈,假定B擁有來自O(通過C)的一個從前應答的備份,請求尚未被UA或A緩存。
請求鏈---->UA-----v-----A-----v-----B-----C----O <----應答鏈
并不是所有的應答都能有效地緩存,一些請求可能含有修改量,對緩存動作有特殊的要求。
實際上,目前萬維網上有多種結構和配置的高速緩存和代理被實驗或使用。這些系統包括節省越洋帶寬的全國代理層,廣播或多點通信緩存接口, 通過CD-ROM分配子緩存數據的機構,等等。HTTP系統應用在寬頻帶連接的企業局域網中,通過PDAs的低耗無線連接和斷續連接的訪問。HTTP1.1的目標是支持各種各樣的應用配置,引進協議結構滿足那些需要較高可靠性,可以排除故障或至少指示故障的網絡應用的要求。
HTTP通信在通常發生在TCP/IP連接上。默認端口是TCP 80,不過其它端口也可以使用。在互聯網或其他網絡上,這并不妨礙HTTP應用在其他協議的頂端。http僅僅期望可靠的傳輸;任何提供這種保證的協議都可以使用;協議傳輸數據單元的HTTP/1.1請求和應答結構的映象已經超出了本說明書的范圍。
在http/1.0中,大部分的實現為每個請求/應答交換使用了新連接。而http/1.1中,一個連接可以用于一個或更多請求/應答交換,雖然連接可能會因為各種原因中斷。
那么到這里HTTP協議基礎概念我們就先講到這里,之后的一系列文章,希望大家能繼續關注。