http是應用層協議,
tcp是傳輸層協議,
連線時基於
tcp連線的
過程:根據url通過
dns找出要訪問的伺服器的
ip位址,然後建立套接字,客戶端與伺服器間進行
tcp連線(三次握手),客戶端傳送請求報文,帶有
syn標籤,伺服器收到後返回乙個
ack應答包,並傳送乙個帶有
syn標籤的包,客戶端收到後,返回
ack包確認連線成功(現代
tcp棧在第三次握手的時候就已經開始傳送資料),建立連線後傳送資料。
tcp延遲演算法:如果規定時間內沒有收到
ack包就會進行重連。
ack應答包實際上非常小,所以允許在第三次握手時攜帶資料,通常延遲
100到
200毫秒,等待資料,如果沒有資料要攜帶,那麼就會單獨傳送
ack應答包
產生的問題:
1、傳送資料是很快的,大部分時間都浪費在建立連線的過程中。tcp的首部和標記佔
40個位元組,如果只傳送少量的資料會浪費,所以設計了
nagle
演算法,只有資料到達最大容量時才會進行傳送。但
tcp連線建立後,並不會直接傳送
資料,而是傳送
請求報文,但請求報文很小,不能佔滿容量,所以一定會等待
100到
200毫秒,造成了很大的時間延遲
2、tcp慢啟動,建立連線後
tcp會限制最大速度,一段時間後才能提速,用於防止過載和擁塞,也造成了一定的延遲
解決方法:1、設定引數
tcp_nodelay
,禁用nagle演算法
2、持久連線
HTTP學習筆記 HTTP協議
tcp ip協議按層次分為四層 應用層,傳輸層,網路層,資料鏈路層。該層決定了向使用者提 用服務時通訊的活動。如ftp和dns服務等。傳輸層有兩個性質不同的協議 tcp和udp協議。網路層的作用就是計算機之間通過網路裝置進行傳輸時,選擇一條傳輸路線。用來處理連線網路的硬體部分,硬體上的範疇均在該層的...
http協議學習筆記
http 協議是建立在 tcp ip協議基礎上 http 協議全稱 超文字傳輸協議 http 協議1.0 1.1版本 目前通用的是1.1版本 http1.0 稱為短連線 http1.1 稱為長連線.所謂長,和短指的是 持續時間的 長連線 1.1 30s 短連線是傳送完資料就斷掉 基本結構 get t...
HTTP協議學習筆記
http協議 1.面試題 聊一下http協議 協議的完整通訊過程 2.通訊過程 1 請求 2 響應 3.http請求的方法 1 get 2 post 4.ios中傳送get post請求的手段 1 nsurlconnection 傳送乙個同步請求 nsdata sendsynchronousrequ...