天天看點

HTTP

超文本傳輸協定HTTP

  1. HTTP操作過程
    • HTTP協定定義了浏覽器(網際網路客戶程序)怎麼向網際網路伺服器請求網際網路文檔,以及伺服器怎麼把文檔傳送給浏覽器。從層次的角度來看,

      HTTP是面向事物的應用層協定。

    • HTTP使用了面向連接配接的TCP作為運輸層協定,保證了資料的可靠傳輸,但是HTTP協定本身是無連接配接的。

      這就是為什麼雖然HTTP協定采用了TCP連接配接,但是通信雙方在交換HTTP封包之前不需要建立HTTP連接配接。在1997年采用的是RFC 1945

      定義的HTTP/1.0協定。現在普遍使用的是更新版本HTTP/1.1[RFC 7231]。

    • HTTP協定是無狀态的,使得HTTP更容易支援大量并發的HTTP請求。
  2. HTTP/1.0協定的主要缺點,就是每次請求封包的時候,就是每次請求一個文檔就需要兩倍RTT時間的開銷,

    這種非持續連接配接會使得網際網路伺服器負擔很重。是以使用并行TCP連接配接可以很好的解決這個問題。

  3. HTTP/1.1剛好解決了這個問題,它使用持續連接配接,所謂持續連接配接就是就是網際網路伺服器在發送響應後仍然在一段時間内能夠繼續保持這條連接配接,

    使同一個客戶和該伺服器可以繼續在這條連接配接上傳送後續的HTTP請求封包和響應封包。

  4. HTTP/1.1的工作方式有兩種:
    1. 非流水線特點:是客戶在收到前一個響應後才能發出下一個請求。是以,在TCP建立連接配接後,客戶每通路一次對象都要用去一個往返時間RTT,

      這比非持續連接配接要用去兩倍RTT時間的開銷,節省了建立TCP連接配接所需的一個RTT時間。這比非持續連接配接要用去兩倍的RTT開銷,

      節省了建立TCP連接配接所需的一個RTT時間,但非流水線方式還是有缺陷的,因為伺服器發完一個對象後,其TCP處于空閑狀态,浪費了伺服器資源。

    2. 流水線特點:是客戶收到HTTP的響應封包之前就能夠發送新的請求封包。于是一個接着一個的請求封包到達伺服器後,

      伺服器就可以連續的發回響應封包。是以,适用流水線方式時,客戶通路所有的對象隻需要花費一個RTT時間,流水線工作方式使得TCP連接配接中的空閑時間減少

      ,提高了下載下傳文檔的效率。

  5. 代理伺服器
    • 代理伺服器是一種網絡實體,它又成為網際網路高速緩存(Web cache)。

      代理伺服器把最近的一些請求和響應暫存到本地磁盤中,當新的請求到達的時候,若代理伺服器發現這個請求

      與暫時存放的請求相同,就暫存傳回的響應,而并不需要要再根據URL再次請求網絡資源。代理伺服器可以再

      用戶端或者服務區工作。