http1 0和1 1的區別

2021-07-25 03:54:16 字數 1961 閱讀 6314

客戶端和源伺服器之間的訊息傳遞可能要經過很多中間節點的**,這是一種逐跳傳遞(hop-by-hop)。http/1.1相應地引入了hop-by-hop頭域,這種頭域僅作用於一次hop,而非整個傳遞路徑。每乙個中間節點(如proxy,gateway)接收到的訊息中如果包含connection頭域,會查詢connection頭域中的乙個頭網域名稱列表,並在將訊息**給下乙個節點之前先刪除訊息中這些頭域。 

通常,http/1.0的proxy不支援connection頭域,為了不讓它們**可能誤導接收者的頭域,協議規定所有出現在connection頭域中的頭網域名稱都將被忽略。 

5 訊息傳遞 

http訊息中可以包含任意長度的實體,通常它們使用content-length來給出訊息結束標誌。但是,對於很多動態產生的響應,只能通過緩衝完整的訊息來判斷訊息的大小,但這樣做會加大延遲。如果不使用長連線,還可以通過連線關閉的訊號來判定乙個訊息的結束。 

http/1.1中引入了chunkedtransfer-coding來解決上面這個問題,傳送方將訊息分割成若干個任意大小的資料塊,每個資料塊在傳送時都會附上塊的長度,最後用乙個零長度的塊作為訊息結束的標誌。這種方法允許傳送方只緩衝訊息的乙個片段,避免緩衝整個訊息帶來的過載。 

在http/1.0中,有乙個content-md5的頭域,要計算這個頭域需要傳送方緩衝完整個訊息後才能進行。而http/1.1中,採用chunked分塊傳遞的訊息在最後乙個塊(零長度)結束之後會再傳遞乙個拖尾(trailer),它包含乙個或多個頭域,這些頭域是傳送方在傳遞完所有塊之後再計算出值的。傳送方會在訊息中包含乙個trailer頭域告訴接收方這個拖尾的存在。 

6 host頭域 

在http1.0中認為每台伺服器都繫結乙個唯一的ip位址,因此,請求訊息中的url並沒有傳遞主機名(hostname)。但隨著虛擬主機技術的發展,在一台物理伺服器上可以存在多個虛擬主機(multi-homed web servers),並且它們共享乙個ip位址。

http1.1的請求訊息和響應訊息都應支援host頭域,且請求訊息中如果沒有host頭域會報告乙個錯誤(400 bad request)。此外,伺服器應該接受以絕對路徑標記的資源請求。 

7 錯誤提示 

http/1.0中只定義了16個狀態響應碼,對錯誤或警告的提示不夠具體。http/1.1引入了乙個warning頭域,增加對錯誤或警告資訊的描述。 

此外,在http/1.1中新增了24個狀態響應碼,如409(conflict)表示請求的資源與資源的當前狀態發生衝突;410(gone)表示伺服器上的某個資源被永久性的刪除。 

8 內容協商 

為了滿足網際網路使用不同母語和字符集的使用者,一些網路資源有不同的語言版本(如中文版、英文版)。http/1.0定義了內容協商(contentnegotiation)的概念,也就是說客戶端可以告訴伺服器自己可以接收以何種語言(或字符集)表示的資源。例如如果伺服器不能明確客戶端需要何種型別的資源,會返回300(multiple choices),幷包含乙個列表,用來宣告該資源的不同可用版本,然後客戶端在請求訊息中包含accept-language和accept-charset頭域指定需要的版本。 

就像有些人會說幾門外語,但每種外語的流利程度並不相同。類似地,網路資源也可以有不同的表達形式,比如有母語版和各種翻譯版本。http引入了乙個品質因子(quality values)的概念來表示不同版本的可用性,它的取值從0.0到1.0。例如乙個母語是英語的人也能**語、甚至還學了點丹麥語,那麼他的瀏覽器可用作如下配置:accept-language: en, fr;q=0.5, da;q=0.1。這時,伺服器會優先選取品質因子高的值對應的資源版本作為響應。

參考資料 

http1 0和1 1的區別

1 http 1.1支援長連線 persistentconnection 和請求的流水線 pipelining 處理 http 1.0規定瀏覽器與伺服器只保持短暫的連線,瀏覽器的每次請求都需要與伺服器建立乙個tcp連線,伺服器完成請求處理後立即斷開tcp連線,伺服器不跟蹤每個客戶也不記錄過去的請求。...

HTTP1 0 和 HTTP1 1的區別

這個應該是變化最大的乙個了.在1.0的版本中,如果客戶端請求頭沒有設定connection keep alive的話,那麼每次請求完成都會立即斷開連線,然後客戶端又要重新建立乙個http連線.假設乙個網頁包含了10個,那麼為了請求,客戶端必須要傳送10次請求,無疑這對頻寬和資源是極大的浪費,tcp的...

HTTP 1 0 和HTTP 1 1 的區別

區別一 最重要 http 1.1 加入了 1 持久連線 http persistent connections 也稱為 http keep alive,持久連線的特點是,只要任意一端沒有明確提出斷開連線,則保持tcp連線狀態 2 管線化 也叫流水線 pipelining 以前傳送請求後需要等待並且收...