HTTP1 0 和 HTTP1 1的區別

2021-07-29 15:08:24 字數 2734 閱讀 5834

這個應該是變化最大的乙個了.在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-lengthtransfer-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 中,乙個連線可用於一次或多次請求 響...