出自:
4.1 tcp連線
tcp為http提供了一條可靠的位元傳輸管道,按順序正確的傳輸,步驟如下:
瀏覽器解析主機名。
查詢這個主機名的ip位址(dns)
獲得埠號。
瀏覽器對伺服器該埠號發起連線。
向伺服器傳送請求報文。
從伺服器獲取響應報文。
連線關閉。
4.1.2 tcp流是分段的、由ip分組傳送
tcp的資料是通過名為ip分組的小資料塊來傳送的。http傳送乙份報文時,會以流的形式建立一條tcp連線按序傳輸。
tcp在接收到流之後會將資料流砍成被稱作段的小資料塊,封裝在ip分組中,通過網際網路傳輸。
每個tcp段由ip分組承載,每個ip分組包括:
ip首部包含源和目的的ip位址、長度和其他一些標記
tcp段首部包含:tcp埠、控制標記等
4.1.3 用tcp套接字程式設計
s=socket(parameters) 建立乙個新的、未命名的套接字
bind(s,local ip:port) 向套接字賦乙個本地ip及埠
connect(s,remote ip:port) 建立與伺服器的連線
listen(s,...) 標識乙個本地套接字,使其可以合理接收連線
s2=accep(s) 等待某人建立一條到達本地埠的連線
n=read(s,buffer,n) 嘗試從套接字快取區讀取n個位元組
n=write(s,buffer,n) 嘗試從快取區向套接字寫入n個位元組
close(s) 完全關閉tcp連線
shutdown(s,side) 只關閉tcp連線的輸入或輸出端
getsocket(s,...) 讀取某個內部套接字配置選項的值
setscoket(s,...) 修改某個內部套接字配置選項的值
例(盜圖):
注:先是請求連線,在連線成功才會傳送報文。
4.2 tcp效能
tcp連線握手需要以下步驟:
請求新的tcp連線時客戶端向服務端附送笑的tcp分組,這個分組設定了syn標記,表明是乙個連線請求。
伺服器接受連線,返回乙個tcp分組。
客戶端向服務端傳送一條確認資訊,現在可以傳送資料了。
4.2.2 序列事物處理時延
如果同時請求多個請求報文時,tcp的效能延時會疊加起來。以下幾種可提高效能方法:
1.並行連線
通過多條tcp連線發起併發的http請求。
2.持久連線
重用tcp連線,以消除連線及關閉延時。
3.管道化連線
通過共享的tcp連線發起併發http的請求。
4.復用連線
交替傳送請求和響應報文(試驗階段)
http學習 http的連線管理
http 協議最初 0.9 1.0 是個非常簡單的協議,通訊過程也採用了簡單的 請求 應答 方式。它底層的資料傳輸基於 tcp ip,每次傳送請求前需要先與伺服器建立連線,收到響應報文後會立即關閉連線。因為客戶端與伺服器的整個連線過程很短暫,不會與伺服器保持長時間的連線狀態,所以就被稱為 短連線 s...
HTTP連線管理
http通訊是由tcp ip承載的,tcp ip是全球計算機及網路裝置都在使用的一種常用的分組交換網路分層協議集。http連線實際上就是tcp連線和一些使用連線的規則。tcp的資料是通過名為ip分組 或ip資料報 的小資料塊來傳送的。http要傳送一條報文時,會以流的形式將報文資料的內容通過一條開啟...
日常 HTTP連線管理
http連線管理 1.誤解的connection首部 當http報文經過中間客戶端到服務端中間的各種 裝置時,對標籤中列出的頭資訊進行刪除,close是事務結束後關掉此條連線 2.消除序列化的時延 並行連線 多條tcp連線發起併發的http請求 持久連線 重用tcp連線,消除連線和關閉時延 管道化連...