這個應該是變化最大的乙個了.在1.0的版本中,如果客戶端請求頭沒有設定connection: keep-alive
的話,那麼每次請求完成都會立即斷開連線,然後客戶端又要重新建立乙個http連線.假設乙個網頁包含了10個,那麼為了請求,客戶端必須要傳送10次請求,無疑這對頻寬和資源是極大的浪費,tcp的優勢就沒有體現出來.
在http1.1中,keep-alive
已經被棄用(但是大多數伺服器和瀏覽器都還保留這個選項).在1.1的版本中,持久連線預設就是啟用的,除非你顯式在響應頭部包含connection: close
,客戶端收到響應後才會關閉連線.
在http1.0中認為每台伺服器都繫結乙個唯一的ip位址,因此,請求訊息中的url並沒有傳遞主機名(hostname).但隨著虛擬主機技術的發展,在一台物理伺服器上可以存在多個虛擬主機(multi-homed web servers),並且它們共享乙個ip位址.
http1.1的請求訊息和響應訊息都應支援host
頭域,且請求訊息中如果沒有host
頭域會報告乙個錯誤(400 bad request).此外,伺服器應該接受以絕對路徑標記的資源請求.
http1.1增加了options
,put
,delete
,trace
,connect
這些request方法.
method =「options」; section 9.2
| 「get」 ; section 9.3
| 「head」 ; section 9.4
| 「post」 ; section 9.5
|「put」; section 9.6
|「delete」; section 9.7
|「trace」; section 9.8
|「connect」; section 9.9
| extension-method
extension-method = token
http1.1 增加的新的status code:
100 continue 繼續
101 switching protocols 交換協議
203 non-authoritative information 非權威資訊
205 reset content 復位內容
206 partial content 部分內容
302 found (在http1.0中有個 302 moved temporarily) 發現(在http1.0中有個302臨時移動)
303 see other 看其他
305 use proxy 使用**
307 temporary redirect 臨時重定向
405 method not allowed 方法不允許
406 not acceptable 不可接受
407 proxy authentication required **身份驗證要求
408 request timeout 請求超時
409 conflict 衝突
410 gone 走了
411 length required 長度要求
412 precondition failed 前提條件失敗
413 request entity too large 請求實體過大
414 request-uri too long 請求uri過長
415 unsupported media type 不支援的**型別
416 requested range not satisfiable 請求範圍不滿足
417 expectation failed 期待失敗
504 gateway timeout 閘道器超時
505 http version not supported http版本不支援
通常,http應答訊息中傳送的資料是整個傳送的,content-length
訊息頭欄位表示資料的長度.資料的長度很重要,因為客戶端需要知道**是應答訊息的結束,以及後續應答訊息的開始.但是在一些動態網頁中,由於網頁是動態生成的,所以沒法計算出準確的content-length
,這樣導致的後果是:如果content-length
比實際長度短,會造成內容被截斷;如果比實體內容長,會造成 pending,瀏覽器一直轉圈圈.
所以在http1.1中引入了transfer-encoding
,如果乙個http訊息(請求訊息或應答訊息)的transfer-encoding
訊息頭的值為chunked,那麼,訊息體由數量未定的塊組成,並以最後乙個大小為0的塊為結束.
ps:如果同時設定了content-length
和transfer-encoding
,那麼transfer-encoding
的優先順序更高,content-length
會被忽略.
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個,每個都要重新再次建立連線獲...
http1 0和http1 1的區別
在同乙個tcp的連線中可以傳送多個http請求和響應.多個請求和響應可以重疊,多個請求和響應可以同時進行.更加多的請求頭和響應頭 比如http1.0沒有host的字段 總之,在 http 1.0 中,大多實現為每個請求 響應交換使用新的連線。在 http 1.1 中,乙個連線可用於一次或多次請求 響...