1.網絡協議的概念
(1)在學習網絡課程的時候,老師會講iso七層模型,有應用層 表示層 會話層 傳輸層 網絡層 數據鏈路層 物理層,其中http就屬於應用層,tcp與udp是屬於傳輸層,如圖1.1(百度百科copy)
圖1-1
(2)除了7層模型還有一個就是4層模型,叫做tcp/ip協議族,分為應用層,傳輸層,internet層 網絡層接入層四個層次 圖1-2
圖1-2
2.http和tcp的區別
(1)層次不同,http屬於應用層,tcp屬於傳輸層
3.http和tcp的聯系(參考https://www.cnblogs.com/gotodsp/p/6366163.html)
(1)http是基於tcp,就相當於生活中的吃飯時候你都會用到碗,這個碗就是tcp,吃飯這件事情就相當於http,因為我們http發送數據之前,會先進行tcp三次握手,記住這時候只是發送一些狀態碼的確認等,並沒有對http的數據進行發送。
(2)http長連接和短連接,其實就是tcp長連接與短連接,在HTTP/1.0中默認使用短連接。也就是說,客戶端和服務器每進行一次HTTP操作,就建立一次連接,請求結束就中斷連接,HTTP1.1就使用長連接,
用長連接的HTTP協議,會在響應頭加入這行代碼:
Connection:keep-alive
使用長連接每次打開一個網頁除了第一次需要三次握手連接,接下來請求服務器就不用再握手了,就一直使用這個連接,這個keep-alive不會永久保持,這個可以在服務器端設置
(3)長連接和短連接簡短概括
短連接就相當於每次一碗飯就去換一個碗,長連接就是每次吃飯都使用這個碗
4.tcp和udp的區別
(1)tcp是面向連接的,udp不是面向連接的,怎么說呢?就相當於我們生活中打電話或者微信聊天,要先嘟嘟嘟連接,之后才可以打電話聊天,這個就是面向連接的,也是比較可靠的,udp是不用先去做連接的,所以叫做面向非連接,類似生活中發短信,直接發送過去
(2)看圖表(參考https://www.cnblogs.com/hanfanfan/p/9579771.html)
TCP |
UDP |
|
是否連接 |
面向連接 |
面向非連接 |
傳輸可靠性 |
可靠 |
不可靠 |
應用場合 |
傳輸大量的數據,對可靠性要求較高的場合 |
傳送少量數據、對可靠性要求不高的場景 |
速度 |
慢 |
快
|
5.疑惑點
(1)有人會問了,為什么http是基於tcp而不是udp呢?
這個tcp協議比較可靠,不過,目前,有人正在研究基於TCP+UDP混合的HTTP協議。