這段話隨便看看就好了,除了文字能看懂,其他的咱也看不懂,嗐
Http(HTTP-Hypertexttransferprotocol)是一個簡單的請求-響應協議,它通常運行在TCP之上。它指定了客戶端可能發送給服務器什么樣的消息以及得到什么樣的響應。請求和響應消息的頭以ASCII碼形式給出;而消息內容則具有一個類似MIME的格式。這個簡單模型是早期Web成功的有功之臣,因為它使開發和部署非常地直截了當。
Https(全稱:HyperTextTransferProtocoloverSecureSocketLayer),是以安全為目標的HTTP通道,在HTTP的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性。HTTPS在HTTP的基礎下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。HTTPS存在不同于HTTP的默認端口及一個加密/身份驗證層(在HTTP與TCP之間)。這個系統提供了身份驗證與加密通訊***。它被廣泛用于萬維網上安全敏感的通訊,例如交易支付等方面。
粗解Http、Https的區別(學疏才淺,不敢詳解)Http是超文本傳輸協議,數據明文傳輸,所以會被抓包導致信息泄露,有安全風險問題!Https則是具有安全性的SSL加密傳輸協議。Http和Https使用的是完全不同的連接方式用的端口也不一樣,前者是80,后者是443。Http的連接很簡單,是無狀態的。HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議。Https協議需要到CA付費申請證書,
HTTP是應用層協議,同其他應用層協議一樣,是為了實現某一類具體應用的協議,并由某一運行在用戶空間的應用程序來實現其功能。HTTP是一種協議規范,這種規范記錄在文檔上,為真正通過HTTP協議進行通信的HTTP的實現程序。HTTP是一種無狀態協議,即服務器不保留與客戶交易時的任何狀態。這就大大減輕了服務器記憶負擔,從而保持較快的響應速度。HTTP是一種面向對象的協議。允許傳送任意類型的數據對象。它通過數據類型和長度來標識所傳送的數據內容和大小,并允許對數據進行壓縮傳送。當用戶在一個HTML文檔中定義了一個超文本鏈后,瀏覽器將通過TCP/IP協議與指定的服務器建立連接。
上面概述其實是很廢話的,忽略吧!!!
上圖是Http的工作流程圖,Https會在Tcp首部這一層前加上安全層(SSL/TSL)加解密Http報文注:TLS是SSL的升級替代版,具體發展歷史可以參考傳輸層安全性協議。
Https解決的問題Https協議因為采用密文傳輸,要比Http協議安全。
1、信任主機的問題。采用https的server必須從CA申請一個用于證明服務器用途類型的證書.改證書只有用于對應的server的時候,客戶度才信任次主機。所以目前所有的銀行系統網站,關鍵部分應用都是https的。客戶通過信任該證書,從而信任了該主機。其實這樣做效率很低,但是銀行更側重安全。這一點對我們沒有任何意義,我們的server采用的證書不管自己issue還是從公眾的地方issue,客戶端都是自己人,所以我們也就肯定信任該server。
2、通訊過程中的數據的泄密和被竄改。(1)一般意義上的https,就是server有一個證書,主要目的是保證server就是他聲稱的server,這個跟第一點一樣。b)服務端和客戶端之間的所有通訊,都是加密的。i.具體講,是客戶端產生一個對稱的密鑰,通過server的證書來交換密鑰。一般意義上的握手過程。ii.加下來所有的信息往來就都是加密的,第三方即使截獲,也沒有任何意義,因為他沒有密鑰,當然竄改也就沒有什么意義了。(2)少許對客戶端有要求的情況下,會要求客戶端也必須有一個證書。這里客戶端證書,其實就類似表示個人信息的時候,除了用戶名/密碼,還有一個CA認證過的身份,應為個人證書一般來說上別人無法模擬的,所有這樣能夠更深的確認自己的身份。目前少數個人銀行的***版是這種做法,具體證書可能是拿U盤作為一個備份的載體。HTTPS在HTTP與TCP層之間加入了SSL/TLS協議,可以很好的解決了上述的風險:
信息加密:交互信息無法被竊取,但你的號會因為「自身忘記」賬號而沒。校驗機制:無法篡改通信內容,篡改了就不能正常顯示,但百度「競價排名」依然可以搜索垃圾廣告。***書:證明淘寶是真的淘寶網,但你的錢還是會因為「剁手」而沒。
可見,只要自身不做「惡」,SSL/TLS協議是能保證通信是安全的。
作者:BuildF鏈接:https://juejin.cn/post/6904227431939342344