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


轉載地址: 面試官:什么是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 證書需要錢,功能越強大的證書費用越高

參考文獻


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM