前言:在Java面試中,計算機網絡的知識也是一項重點,因此筆者在此對計算機網絡的相關知識進行總結。
1.OSI參考模型
自下而上:物理層(物理介質,比特流)、數據鏈路層(網卡、交換機)、網絡層(IP協議)、傳輸層(TCP/UDP協議)、會話層(創建/建立/斷開連接)、表示層(翻譯,編碼,壓縮,加密)、應用層(HTTP協議)。
簡化為TCP/IP模型:網絡層(物理層、數據鏈路層、網絡層)、傳輸層,會話層,應用層(表示層,應用層)。
參考:
https://www.cnblogs.com/evablogs/p/6709707.html
2.傳輸層作用
作用:傳輸層為它上面的應用層提供通信服務。
在OSI七層參考模型中,傳輸層是面向通信的最高層,也是用戶功能的最底層。
傳輸層兩大重要的功能:復用和分用。
1)復用:在發送端,多個應用進程公用一個傳輸層。
2)分用:在接收端,傳輸層會根據端口號將數據分派給不同的應用進程。
和網絡層的區別:
1)網絡層為不同主機提供通信服務,而傳輸層為不同主機的不同應用提供通信服務。
2)網絡層只對報文頭部進行差錯檢測,而傳輸層對整個報文進行差錯檢測。
參考:
https://blog.csdn.net/u010425776/article/details/55006347
注:該博文中給出了較為詳細的傳輸層知識點。
3.“三次握手”與“四次揮手”
在tcp建立連接時,需要進行“三次握手”。關於“三次握手”的通俗理解:“你有空嗎”,“我有空”,“OK,我來了”。
在tcp斷開連接時,需要進行“四次揮手”。關於“四次揮手”的通俗理解:“我要走了”,“沒問題”,“不忙,他也要走”,“好,那我和他一起走”。
參考:
https://www.cnblogs.com/SeaSky0606/p/4741982.html
https://blog.csdn.net/u010425776/article/details/55006347
4.TCP的長連接和短連接
長連接:指在一個TCP連接上可以連續發送多個數據包,在TCP連接保持期間,如果沒有數據包發送,需要雙方發檢測包以維持此連接。
在數據庫連接池中,一般使用的是長連接,這樣比較節約資源。
短連接:短連接是指通信雙方有數據交互時,就建立一個TCP連接,數據發送完成后,則斷開此TCP連接。
參考:
https://www.cnblogs.com/onlysun/p/4520553.html
5.HTTP工作原理
要點:
1)HTTP是一個無狀態協議,為應用層協議,基於TCP/IP之上。
2)HTTP的一個工作過程分為:地址解析、封裝HTTP請求數據包、通過TCP建立連接、客戶端發送請求指令、服務器響應、服務器關閉連接。
參考:
https://blog.csdn.net/hguisu/article/details/8680808
6.HTTP中請求、響應、緩存
要點:
1)請求由請求行、請求頭和請求正文組成。
2)響應由狀態行、消息報頭和響應正文組成。
3)緩存可以提高了訪問的流暢性。
參考:
https://blog.csdn.net/hguisu/article/details/8683290
7.HTTP1.0和HTTP1.1區別
要點:
HTTP1.0每對Request/Response都使用一個新的連接。
HTTP1.1則支持持久連接Persistent Connection, 並且默認使用Persistent connection.
參考:
https://blog.csdn.net/hguisu/article/details/8608888
8.HTTPS的通信過程
主要在加解密的過程。
參考:
http://www.liqwei.com/network/protocol/2012/906.shtml
by Shawn Chen,2018.4.6日,晚。
