超文字傳輸協議工作原理
超文字傳輸協議是網際網路上應用最為廣泛的一種網路協議,那麼你對超文字傳輸協議瞭解多少呢?以下是由小編整理關於什麼是超文字傳輸協議的內容,希望大家喜歡!
超文字傳輸協議的技術架構
HTTP是一個客戶端和伺服器端請求和應答的標準***TCP***。客戶端是終端使用者,伺服器端是網站。通過使用Web瀏覽器、網路爬蟲或者其它的工具,客戶端發起一個到伺服器上指定埠***預設埠為80***的HTTP請求。***我們稱這個客戶端***叫使用者代理***user agent***。應答的伺服器上儲存著***一些***資源,比如HTML檔案和影象。***我們稱***這個應答伺服器為源伺服器***origin server***。在使用者代理和源伺服器中間可能存在多箇中間層,比如代理,閘道器,或者隧道***tunnels***。儘管TCP/IP協議是網際網路上最流行的應用,HTTP協議並沒有規定必須使用它和***基於***它支援的層。 事實上,HTTP可以在任何其他網際網路協議上,或者在其他網路上實現。HTTP只假定***其下層協議提供***可靠的傳輸,任何能夠提供這種保證的協議都可以被其使用。
通常,由HTTP客戶端發起一個請求,建立一個到伺服器指定埠***預設是80埠***的TCP連線。HTTP伺服器則在那個埠監聽客戶端傳送過來的請求。一旦收到請求,伺服器***向客戶端***發回一個狀態行,比如"HTTP/1.1 200 OK",和***響應的***訊息,訊息的訊息體可能是請求的檔案、錯誤訊息、或者其它一些資訊。
HTTP使用TCP而不是UDP的原因在於***開啟***一個網頁必須傳送很多資料,而TCP協議提供傳輸控制,按順序組織資料,和錯誤糾正。
通過HTTP或者HTTPS協議請求的資源由統一資源標示符***Uniform Resource Identifiers******或者,更準確一些,URLs***來標識。
超文字傳輸協議的功能
HTTP協議***HyperText Transfer Protocol,超文字傳輸協議***是用於從WWW伺服器傳輸超文字到本地瀏覽器的傳輸協議。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證計算機正確快速地傳輸超文字文件,還確定傳輸文件中的哪一部分,以及哪部分內容首先顯示***如文字先於圖形***等。
HTTP是客戶端瀏覽器或其他程式與Web伺服器之間的應用層通訊協議。在Internet上的Web伺服器上存放的都是超文字資訊,客戶機需要通過HTTP協議傳輸所要訪問的超文字資訊。HTTP包含命令和傳輸資訊,不僅可用於Web訪問,也可以用於其他因特網/內聯網應用系統之間的通訊,從而實現各類應用資源超媒體訪問的整合。
我們在瀏覽器的位址列裡輸入的網站地址叫做URL ***Uniform Resource Locator,統一資源定位符***。就像每家每戶都有一個門牌地址一樣,每個網頁也都有一個Internet地址。當你在瀏覽器的地址框中輸入一個URL或是單擊一個超級連結時,URL就確定了要瀏覽的地址。瀏覽器通過超文字傳輸協議***HTTP***,將Web伺服器上站點的網頁程式碼提取出來,並翻譯成漂亮的網頁。
超文字傳輸協議的運作方式
在WWW中,“客戶”與“伺服器”是一個相對的概念,只存在於一個特定的連線期間,即在某個連線中的客戶在另一個連線中可能作為伺服器。基於HTTP協議的客戶/伺服器模式的資訊交換過程,它分四個過程:建立連線、傳送請求資訊、傳送響應資訊、關閉連線。
HTTP協議是基於請求/響應正規化的。一個客戶機與伺服器建立連線後,傳送一個請求給伺服器,請求方式的格式為,統一資源識別符號、協議版本號,後邊是MIME資訊包括請求修飾符、客戶機資訊和可能的內容。伺服器接到請求後,給予相應的響應資訊,其格式為一個狀態行包括資訊的協議版本號、一個成功或錯誤的程式碼,後邊是MIME資訊包括伺服器資訊、實體資訊和可能的內容。
其實簡單說就是任何伺服器除了包括HTML檔案以外,還有一個HTTP駐留程式,用於響應使用者請求。你的瀏覽器是HTTP客戶,向伺服器傳送請求,當瀏覽器中輸入了一個開始檔案或點選了一個超級連結時,瀏覽器就向伺服器傳送了HTTP請求,此請求被送往由IP地址指定的URL。駐留程式接收到請求,在進行必要的操作後回送所要求的檔案。在這一過程中,在網路上傳送和接收的資料已經被分成一個或多個數據包***packet***,每個資料包包括:要傳送的資料;控制資訊,即告訴網路怎樣處理資料包。TCP/IP決定了每個資料包的格式。如果事先不告訴你,你可能不會知道資訊被分成用於傳輸和再重新組合起來的許多小塊。
許多HTTP通訊是由一個使用者代理初始化的並且包括一個申請在源伺服器上資源的請求。最簡單的情況可能是在使用者代理***UA***和源伺服器***O***之間通過一個單獨的連線來完成。
當一個或多箇中介出現在請求/響應鏈中時,情況就變得複雜一些。中介有三種:代理***Proxy***、閘道器***Gateway***和通道***Tunnel***。一個代理根據URI的絕對格式來接受請求,重寫全部或部分訊息,通過URI的標識把已格式化過的請求傳送到伺服器。閘道器是一個接收代理,作為一些其它伺服器的上層,並且如果必須的話,可以把請求翻譯給下層的伺服器協議。一個通道作為不改變訊息的兩個連線之間的中繼點。當通訊需要通過一箇中介***例如:防火牆等***或者是中介不能識別訊息的內容時,通道經常被使用。
超文字傳輸協議的工作原理
一次HTTP操作稱為一個事務,其工作過程可分為四步:
首先客戶機與伺服器需要建立連線。只要單擊某個超級連結,HTTP的工作就開始了。
建立連線後,客戶機發送一個請求給伺服器,請求方式的格式為:統一資源識別符號***URL***、協議版本號,後邊是MIME資訊包括請求修飾符、客戶機資訊和可能的內容。
伺服器接到請求後,給予相應的響應資訊,其格式為一個狀態行,包括資訊的協議版本號、一個成功或錯誤的程式碼,後邊是MIME資訊包括伺服器資訊、實體資訊和可能的內容。
客戶端接收伺服器所返回的資訊通過瀏覽器顯示在使用者的顯示屏上,然後客戶機與伺服器斷開連線。
如果在以上過程中的某一步出現錯誤,那麼產生錯誤的資訊將返回到客戶端,由顯示屏輸出。對於使用者來說,這些過程是由HTTP自己完成的,使用者只要用滑鼠點選,等待資訊顯示就可以了。
許多HTTP通訊是由一個使用者代理初始化的並且包括一個申請在源伺服器上資源的請求。最簡單的情況可能是在使用者代理和伺服器之間通過一個單獨的連線來完成。在Internet上,HTTP通訊通常發生在TCP/IP連線之上。預設埠是TCP 80,但其它的埠也是可用的。但這並不預示著HTTP協議在Internet或其它網路的其它協議之上才能完成。HTTP只預示著一個可靠的傳輸。
這個過程就好像我們打電話訂貨一樣,我們可以打電話給商家,告訴他我們需要什麼規格的商品,然後商家再告訴我們什麼商品有貨,什麼商品缺貨。這些,我們是通過電話線用電話聯絡***HTTP是通過TCP/IP***,當然我們也可以通過傳真,只要商家那邊也有傳真。