1、http 1.1支援長連線(persistentconnection)和請求的流水線(pipelining)處理
http 1.0規定瀏覽器與伺服器只保持短暫的連線,瀏覽器的每次請求都需要與伺服器建立乙個tcp連線,伺服器完成請求處理後立即斷開tcp連線,伺服器不跟蹤每個客戶也不記錄過去的請求。
http 1.1則支援持久連線persistent connection, 並且預設使用persistent connection. 在同乙個tcp的連線中可以傳送多個http請求和響應. 多個請求和響應可以重疊,多個請求和響應可以同時進行. 更加多的請求頭和響應頭(比如http1.0沒有host的字段).
在1.0時的會話方式:
1. 建立連線
2. 發出請求資訊
3. 回送響應資訊
4. 關掉連線
http 1.1的持續連線,也需要增加新的請求頭來幫助實現,例如,connection請求頭的值為keep-alive時,客戶端通知伺服器返回本次請求結果後保持連線;connection請求頭的值為close時,客戶端通知伺服器返回本次請求結果後關閉連線。http 1.1還提供了與身份認證、狀態管理和cache快取等機制相關的請求頭和響應頭。
請求的流水線(pipelining)處理,在乙個tcp連線上可以傳送多個http請求和響應,減少了建立和關閉連線的消耗和延遲。例如:乙個包含有許多影象的網頁檔案的多個請求和應答可以在乙個連線中傳輸,但每個單獨的網頁檔案的請求和應答仍然需要使用各自的連線。 http 1.1還允許客戶端不用等待上一次請求結果返回,就可以發出下一次請求,但伺服器端必須按照接收到客戶端請求的先後順序依次回送響應結果,以保證客戶端能夠區分出每次請求的響應內容。
2.http 1.1增加host欄位
在http1.0中認為每台伺服器都繫結乙個唯一的ip位址,因此,請求訊息中的url並沒有傳遞主機名(hostname)。但隨著虛擬主機技術的發展,在一台物理伺服器上可以存在多個虛擬主機(multi-homed web servers),並且它們共享乙個ip位址。
http1.1的請求訊息和響應訊息都應支援host頭域,且請求訊息中如果沒有host頭域會報告乙個錯誤(400 bad request)。此外,伺服器應該接受以絕對路徑標記的資源請求。
3、100(continue) status(節約頻寬)
http/1.1加入了乙個新的狀態碼100(continue)。客戶端事先傳送乙個只帶頭域的請求,如果伺服器因為許可權拒絕了請求,就回送響應碼401(unauthorized);如果伺服器接收此請求就回送響應碼100,客戶端就可以繼續傳送帶實體的完整請求了。100 (continue) 狀態**的使用,允許客戶端在發request訊息body之前先用request header試探一下server,看server要不要接收request body,再決定要不要發request body。
4、http/1.1中引入了chunked transfer-coding來解決上面這個問題,傳送方將訊息分割成若干個任意大小的資料塊,每個資料塊在傳送時都會附上塊的長度,最後用乙個零長度的塊作為訊息結束的標誌。這種方法允許傳送方只緩衝訊息的乙個片段,避免緩衝整個訊息帶來的過載。
5、http/1.1在1.0的基礎上加入了一些cache的新特性,當快取物件的age超過expire時變為stale物件,cache不需要直接拋棄stale物件,而是與源伺服器進行重新啟用(revalidation)。
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 以前傳送請求後需要等待並且收...
HTTP1 0和HTTP1 1的區別
http 1.0規定瀏覽器與伺服器只保持短暫的連線,瀏覽器每次都需要與伺服器建立乙個tcp連線,伺服器完成請求後,立即斷開tcp連線,也就是說,同乙個客戶第二次訪問同乙個伺服器上的頁面時,伺服器的響應過程與第一次被訪問時是相同的。舉例在收到的html文件後,文件中有10個,每個都要重新再次建立連線獲...