目錄
- 前言
- 一、HTTP和HTTPS
- 1. HTTP
- 2. HTTPS
- 二、什么是 TCP 連接的三次握手
- 1. 三次握手
- 2. TCP 協議優點
- 3. TCP 協議缺點
- 三、 為什么 TCP 連接需要三次握手四次揮手
- 1. 為什么是三次握手?
- 2. 為什么是四次揮手?
- 總結
前言
TCP(Transmission Control Protocol 傳輸控制協議)是一種面向連接的、可靠的、基于位元組流的傳輸層通信協議,
一、HTTP和HTTPS
1. HTTP
- HTTP 請求的程序
域名決議 --> 發起 TCP 的 3 次握手 --> 建立 TCP 連接后發起 HTTP 請求 -->服務器響
應 HTTP 請求,瀏覽器得到 html 代碼 -->瀏覽器決議 html 代碼,并請求 html 代碼中的資
源(如 js、css、圖片等) --> 瀏覽器對頁面進行渲染呈現給用戶
- 請求原理
HTTP 協議是應用層的一種協議,是一種 C/S 架構服務,基于 TCP/IP 協議來通信,監聽在
TCP 的 80 埠上,HTTP 協議實作的是客戶端可以向服務端獲得 web 資源
2. HTTPS
- 原理
HTTPS 在傳輸資料前需要客戶端(瀏覽器)與服務器(網站)之間進行一次握手,在握手程序中
將確立雙方加密傳輸資料的密碼資訊.TLS/SSL 協議是一套加密傳輸協議,使用了非對稱加
密,對稱加密,以及 HASH 演算法,
- HTTPS 為什么安全
因為網路請求需要中間有很多的服務器路由器的轉發,中間的節點都可能篡改資訊,而如
果使用 HTTPS,密鑰在你和終點站才有,HTTPS 之所以比 HTTP 安全,是因為他利用 ssl/tls
協議傳輸,它包含證書,卸載,流量轉發,負載均衡,頁面適配,瀏覽器適配,refer 傳遞
等,保障了傳輸程序的安全性,
二、什么是 TCP 連接的三次握手
1. 三次握手
TCP 是因特網中的傳輸層協議,使用三次握手協議建立連接,完成三次握手,客戶端與服
務器開始傳送資料,
第一次握手:建立連接時,客戶端發送 syn 包(syn=j)到服務器,并進入 SYN_SENT 狀態,
等待服務器確認;SYN:同步序列編號(Synchronize Sequence Numbers),
第二次握手:服務器收到 syn 包,必須確認客戶的 SYN(ack=j+1),同時自己也發送一個
SYN 包(syn=k),即 SYN+ACK 包,此時服務器進入 SYN_RECV 狀態;
第三次握手:客戶端收到服務器的 SYN+ACK 包,向服務器發送確認包 ACK(ack=k+1),此
包發送完畢,客戶端和服務器進入 ESTABLISHED(TCP 連接成功)狀態,完成三次握手,

2. TCP 協議優點
TCP 發送的包有序號,對方收到包后要給一個反饋,如果超過一定時間還沒收到反饋就
自動執行超時重發,因此 TCP 最大的優點是可靠,
3. TCP 協議缺點
很簡單,就是麻煩,如果資料量比較小的話建立連接的程序反而占了大頭,不斷地重發
也會造成網路延遲,因此比如視頻聊天通常就使用 UDP,因為丟失一些包也沒關系,速
度流暢才是重要的,
三、 為什么 TCP 連接需要三次握手四次揮手
1. 為什么是三次握手?
為了防止已失效的連接請求報文段突然有送到了服務器,因而產生錯誤,假設兩次握手時,
客戶發出的第一個請求連接報文段在某一網路節點長時間滯留,以致延誤到連接釋放后才
到達服務器,服務器收到失效的連接請求報文段后,認為是客戶又發出一次新的連接請求,
于是向客戶發送確認報文段,同意建立連接,此時在假定兩次握手的前提下,連接建立成
功,這樣會導致服務器的資源白白浪費,
2. 為什么是四次揮手?
TCP 協議是全雙工通信,這意味著客戶端和服務器端都可以向彼此發送資料,所以關閉連接
是雙方都需要確認的共同行為,假設是三次揮手時,首先釋放了客戶到服務器方向的連接,
此時 TCP 連接處于半關閉狀態,這時客戶不能向服務器發送資料,而服務器還是可以向客
戶發送資料,如果此時客戶收到了服務器的確認報文段后,就立即發送一個確認報文段,
這會導致服務器向客戶還在發送資料時連接就被關閉,這樣會導致客戶沒有完整收到服務
器所發的報文段,
總結
Success often depends upon knowing how long it will take to succeed.
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/305931.html
標籤:其他
