這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助
一、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