客戶端與服務端建立連接的三次握手過程是為了增加可靠性
應用層負責業務,
tcp層負責可靠傳輸(丟失,超時,數據錯誤,重復),
ip層負責路由尋址,
http屬於應用層的協議,是建立在tcp上的;
 通俗點
”喂喂~你聽得見我咩?“
”啊~喂喂~,我聽得見你啊,你聽得見我咩?“
”啊啊啊~聽得見聽得見"
"噢噢,我跟你說噢~!barabara......“
三次握手和你講啥語言(HTTP)沒啥關系。跟你打電話的運營商(TCP)也沒啥關系。
那跟啥有關系?跟你如何保證對方能准確收到消息有關系。
你看人家 UDP,管你有沒有收到,我瞎JB那么一問你瞎JB那么一回。
管你聽見沒,沒回復我再問一遍。
管你收到沒,反正你戳一下我動一下。
 http是應用層協議,它的任務是與服務器交換信息。至於怎么連到服務器,怎么保證數據正確,http不管。事實上它總是假設數據是正確地傳輸的。
而tcp的任務是保證連接的可靠,包括防丟、防錯。為了做到這些,在初次連接時要進行3次握手,以保證確實連接到了目標機器。而連接上后具體傳送什么數據,tcp是不管的。
別的應用層協議也能通過tcp進行,那么這種協議在底層也進行3次握手。
在某些情況下,http可以不通過tcp實現,那就不需要3次握手。
比如,我做了一把遙控咖啡壺,遙控器和壺通過紅外直接連接,通過http協議post提交煮咖啡的指令,get獲取是否已經煮好。http字符直接調制到紅外上,此時http應用層下面直接是物理層,當然不存在3次握手了,連ip地址和mac地址也不存在。
第四次握手關閉連接
