Http、Https、TCP、UDP之間的區別和聯繫,看這一篇就夠了

你是否感覺 Http、Https、TCP、UDP這些協議很耳熟,經常聽到但不知道是怎麼回事;或是很瞭解,但讓你解釋又容易解釋不清?

一起來看看他們之間的區別和聯繫吧~

一、先有個基礎的認知

Http、Https、TCP、UDP之間的區別和聯繫,看這一篇就夠了

OSI七層模型

  • HTTP和HTTPS是應用層協議,該層協議負責主機間數據傳輸;
  • TCP和UDP是傳輸層協議,該層協議負責網絡連接。

二、HTTP和HTTPS

Http、Https、TCP、UDP之間的區別和聯繫,看這一篇就夠了

HTTPS = HTTP + SSL/TSL(安全層)

  • HTTP是一種發佈和接收 HTML 頁面的方法,被用於在 Web 瀏覽器和網站服務器之間傳遞信息。
  • HTTPS 經由 HTTP 進行通信,但利用 SSL/TLS 來加密數據包。HTTPS 開發的主要目的,是提供對網站服務器的身份認證,保護交換數據的隱私與完整性。

HTTP vs HTTPS的工作原理

Http、Https、TCP、UDP之間的區別和聯繫,看這一篇就夠了

HTTP vs HTTPS

客戶端使用HTTPS與服務器通信的步驟:

  1. 客戶端使用https的URL訪問Web服務器,要求與Web服務器建立SSL連接。
  2. Web服務器收到客戶端請求後,會將網站的證書信息(證書中包含公鑰)傳送一份給客戶端。
  3. 客戶端的瀏覽器與Web服務器開始協商SSL連接的安全等級,也就是信息加密的等級。
  4. 客戶端的瀏覽器根據雙方同意的安全等級,建立會話密鑰,然後利用網站的公鑰將會話密鑰加密,並傳送給網站。
  5. Web服務器利用自己的私鑰解密出會話密鑰。
  6. Web服務器利用會話密鑰加密與客戶端之間的通信。

三、TCP和UDP

  • TCP 是面向連接的,並且是一種可靠的協議,在基於 TCP 進行通信時,通信雙方需要先建立一個 TCP 連接,建立連接需要經過三次握手,握手成功才可以進行通信,而斷開連接要進行4次。
  • UDP 是一種面向無連接,且不可靠的協議,在通信過程中,只要(目的地址,端口號,源地址,端口號)確定了,就可以直接發送信息報文,並且不需要確保服務端一定能收到或收到完整的數據。
Http、Https、TCP、UDP之間的區別和聯繫,看這一篇就夠了

適用場景

  • TCP 協議由於可靠性高,多用於文件傳輸、重要狀態的更新等;
  • UDP 協議則多用於實時性要求高的 視頻傳輸、實時通信等。

四、應用場景:TCP+HTTPS

上文的OSI七層模型是理論模型,現實中使用的模型是TCP/IP五層模型,重點來看這三層:網絡層、傳輸層、應用層。

Http、Https、TCP、UDP之間的區別和聯繫,看這一篇就夠了

先看一下維基百科對這三層網絡的定義(比較通俗易懂):

  1. 網絡層(Network Layer)決定數據的路徑選擇和轉寄,將網絡表頭(NH)加至數據包,以形成分組。網絡表頭包含了網絡數據。例如:互聯網協議(IP)等。
  2. 傳輸層(Transport Layer)把傳輸表頭(TH)加至數據以形成數據包。傳輸表頭包含了所使用的協議等發送信息。例如:傳輸控制協議(TCP)等。
  3. 應用層(Application Layer)提供為應用軟件而設的接口,以設置與另一應用軟件之間的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。

案例:終端訪問 https://www.baidu.com 這三層是如何起作用的?

Http、Https、TCP、UDP之間的區別和聯繫,看這一篇就夠了

訪問步驟

Http、Https、TCP、UDP之間的區別和聯繫,看這一篇就夠了


分享到:


相關文章: