什麼是HTTP? HTTP 和 HTTPS 的區別?

林恒發表於2024-03-18

這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助

什麼是HTTP? HTTP 和 HTTPS 的區別?

一、HTTP

HTTP (HyperText Transfer Protocol),即超文字運輸協議,是實現網路通訊的一種規範

在計算機和網路世界有,存在不同的協議,如廣播協議、定址協議、路由協議等等......

HTTP是一個傳輸協議,即將資料由A傳到B或將B傳輸到A,並且 A 與 B 之間能夠存放很多第三方,如: A<=>X<=>Y<=>Z<=>B

傳輸的資料並不是計算機底層中的二進位制包,而是完整的、有意義的資料,如HTML 檔案, 圖片檔案, 查詢結果等超文字,能夠被上層應用識別

在實際應用中,HTTP常被用於在Web瀏覽器和網站伺服器之間傳遞資訊,以明文方式傳送內容,不提供任何方式的資料加密

特點如下:

  • 支援客戶/伺服器模式

  • 簡單快速:客戶向伺服器請求服務時,只需傳送請求方法和路徑。由於HTTP協議簡單,使得HTTP伺服器的程式規模小,因而通訊速度很快

  • 靈活:HTTP允許傳輸任意型別的資料物件。正在傳輸的型別由Content-Type加以標記

  • 無連線:無連線的含義是限制每次連線只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間

  • 無狀態:HTTP協議無法根據之前的狀態進行本次的請求處理

二、HTTPS

在上述介紹HTTP中,瞭解到HTTP傳遞資訊是以明文的形式傳送內容,這並不安全。而HTTPS出現正是為了解決HTTP不安全的特性

為了保證這些隱私資料能加密傳輸,讓HTTP執行安全的SSL/TLS協議上,即 HTTPS = HTTP + SSL/TLS,透過 SSL證書來驗證伺服器的身份,併為瀏覽器和伺服器之間的通訊進行加密

SSL 協議位於TCP/IP 協議與各種應用層協議之間,瀏覽器和伺服器在使用 SSL 建立連線時需要選擇一組恰當的加密演算法來實現安全通訊,為資料通訊提供安全支援

流程圖如下所示:

  • 首先客戶端透過URL訪問伺服器建立SSL連線
  • 服務端收到客戶端請求後,會將網站支援的證書資訊(證書中包含公鑰)傳送一份給客戶端
  • 客戶端的伺服器開始協商SSL連線的安全等級,也就是資訊加密的等級
  • 客戶端的瀏覽器根據雙方同意的安全等級,建立會話金鑰,然後利用網站的公鑰將會話金鑰加密,並傳送給網站
  • 伺服器利用自己的私鑰解密出會話金鑰
  • 伺服器利用會話金鑰加密與客戶端之間的通訊

三、區別

  • HTTPS是HTTP協議的安全版本,HTTP協議的資料傳輸是明文的,是不安全的,HTTPS使用了SSL/TLS協議進行了加密處理,相對更安全
  • HTTP 和 HTTPS 使用連線方式不同,預設埠也不一樣,HTTP是80,HTTPS是443
  • HTTPS 由於需要設計加密以及多次握手,效能方面不如 HTTP
  • HTTPS需要SSL,SSL 證書需要錢,功能越強大的證書費用越高

參考文獻

  • https://www.cnblogs.com/klb561/p/10289199.html
  • https://www.jianshu.com/p/205c0fc51c97
  • https://vue3js.cn/interview

相關文章