HTTP連線管理

2021-08-02 05:35:17 字數 2350 閱讀 6947

http通訊是由tcp/ip承載的,tcp/ip是全球計算機及網路裝置都在使用的一種常用的分組交換網路分層協議集。http連線實際上就是tcp連線和一些使用連線的規則。tcp的資料是通過名為ip分組(或ip資料報)的小資料塊來傳送的。

http要傳送一條報文時,會以流的形式將報文資料的內容通過一條開啟的tcp連線按序傳輸。tcp收到資料流之後,會將資料流砍成被稱作段的小資料塊,並將段封裝在ip組中,通過網際網路進行傳輸。

每個tcp段都是由ip分組承載,從乙個ip位址傳送到另乙個ip的位址。每個ip分組中都包括:

.乙個ip分組首部(通常為20位元組)

.乙個tcp段首部(通常為20位元組)

.乙個tcp資料塊(0個或多個位元組)

http事務的延遲有以下幾種原因:

1.客戶端首先要根據uri確定web伺服器的ip位址和埠號,如果最近沒有對uri中的主機名進行訪問,通過dns解析系統將uri中的主機名轉換成乙個ip位址可能要花費一定的時間。

2.客戶端向伺服器傳送一條tcp連線請求,並等待伺服器回送乙個請求接受應答。每個新的tcp連線都會有連線建立時延,這個值通常最多只有一兩秒鐘,但如果有數百個http事務的話,這個值會快速疊加上去。

3.傳輸請求報文,以及伺服器處理請求報文都需要時間。

4.web伺服器回送http響應。

這些tcp網路時延的大小取決於硬體速度、網路和伺服器的負載,請求和響應報文的大小,以及客戶端和伺服器之間的距離。tcp協議的技術複雜性也會對時延造成影響。

tcp相關時延

1.tcp連線建立握手;

2.tcp慢啟動擁塞控制;

3.資料聚集的nagle演算法;

4.用於捎帶確認的tcp延遲確認演算法;

5.time_wait時延和埠耗盡。

提高http連線效能的方法:

1.並行連線:通過多條tcp連線發起併發的http請求。

2.持久連線:重用tcp連線,以消除連線及關閉時延。

3.管道化連線:通過共享的tcp連線發起併發的http請求。

keep-alive 操作

實現http/1.0連線的客戶端可以通過包含connection:keep-alive首部請求將一條連線保持在開啟狀態。如果伺服器願意為下一條請求將連線保持在開啟狀態,就在響應中包含相同的首部。如果響應中沒有connection:keep-alive首部,客戶端就認為伺服器不支援keep-alive,會在發回響應報文之後關閉連線。

keep-alive連線的限制和規則

1.在http/1.0中,keep-alive並不是預設使用的。客戶端必須傳送乙個connection:keeyp-alive請求首部來啟用keep-alive連線。

2.connection:keeyp-alive首部必須隨所有希望保持持久連線的報文一起傳送,如果客戶端沒有傳送connection:keeyp-alive首部,伺服器就會在那條請求之後關閉連線。

3.客戶端探明響應中沒有connection:keeyp-alive響應首部,就可以知道伺服器發出響應之後是否會關閉連線了。

4.實體的主體部分必須有正確的content-length,有多部件**型別,或者用分塊傳輸編碼的方式進行了編碼。

5.**和閘道器必須執行connection首部的規則。**或閘道器必須在將報文**出去或將其快取記憶體之前,刪除在connection首部中命名的所有首部字段以及connection首部自身。

http/1.1持久連線

http/1.1持久連線在預設情況下是啟用的。

持久連線的限制和規則

1.傳送了connection:close請求首部之後,客戶端就無法在那條連線上傳送更多的請求了。

2.只有當連線上所有的報文都有正確的、自定義報文長度時-也就是說,實體主體部分的長度都和相應的content-length一致,或者是用分塊傳輸編碼方式編碼的-連線才能持久保持。

3.http/1.1的**必須能夠分別管理與客戶端和伺服器的持久連線-每個持久連線都只適用於一跳傳輸。

4.http/1.1的**伺服器不應該與http/1.0客戶端建立持久連線,除非它們了解客戶端的處理能力。

日常 HTTP連線管理

http連線管理 1.誤解的connection首部 當http報文經過中間客戶端到服務端中間的各種 裝置時,對標籤中列出的頭資訊進行刪除,close是事務結束後關掉此條連線 2.消除序列化的時延 並行連線 多條tcp連線發起併發的http請求 持久連線 重用tcp連線,消除連線和關閉時延 管道化連...

http學習 http的連線管理

http 協議最初 0.9 1.0 是個非常簡單的協議,通訊過程也採用了簡單的 請求 應答 方式。它底層的資料傳輸基於 tcp ip,每次傳送請求前需要先與伺服器建立連線,收到響應報文後會立即關閉連線。因為客戶端與伺服器的整個連線過程很短暫,不會與伺服器保持長時間的連線狀態,所以就被稱為 短連線 s...

http協議學習 連線管理

出自 4.1 tcp連線 tcp為http提供了一條可靠的位元傳輸管道,按順序正確的傳輸,步驟如下 瀏覽器解析主機名。查詢這個主機名的ip位址 dns 獲得埠號。瀏覽器對伺服器該埠號發起連線。向伺服器傳送請求報文。從伺服器獲取響應報文。連線關閉。4.1.2 tcp流是分段的 由ip分組傳送 tcp的...