程序員成長之旅——HTTP和HTTPS對比

程序員成長之旅——HTTP和HTTPS對比


首先我們要清楚http和https都是應用層上的協議,而https它是加了一個ssl層的http。他兩的端口也不一樣,http是80端口,https是443端口。

HTTP的缺點

http它最大的致命缺點就是,它不夠安全,在通信的時候很有可能被不法分子監聽到自己的內容,細分爲三種情況:
1.它在給服務端傳輸的時候,它不能確保所傳輸的服務端是真正的服務端,當然,反之,服務端也不能清楚所能傳輸的是真正的客戶端;
2.因此傳輸之後,有可能所傳達的消息被篡改,這也是不得而知的;
3.使用明文傳輸,是有可能被監聽的。

因此https就產生了。

HTTPS

https基於http就多了一個ssl,而這個ssl它不光可以解決其安全問題,並且還可以解決其傳輸的完整性,還可以用證書解決其傳輸的雙方是可靠的。
在這裏插入圖片描述
再說其ssl之前,我們先來了解一下對稱加密和非對稱加密吧:
1.對稱加密的話,就是客戶端和服務端都使用同一種加密解密算法,其是公開的,這種是有可能被劫持的,也並不是很安全;
在這裏插入圖片描述
2.非對稱加密它是有公匙和私匙組成的,而公匙和私匙它是整體的,服務端的話,它只會將其公匙告知客戶端,而客戶端用公匙將所要傳遞的內容進行加密,那麼這樣的話,只有服務端纔可以進行解密。因此非常的安全。
在這裏插入圖片描述
https它的加密過程其實是將其對稱加密和非對稱加密進行混合使用了,這是因爲,如果一直使用非對稱加密的話,是非常的低效率的,因此我們可以先用非對稱加密算法將其對稱加密的密匙告知雙方,之後解密之後,我們就一直用對稱加密的密匙進行通信即可。
在這裏插入圖片描述
而這樣子傳輸的話,還有一個弊端就是,你如何知道通信雙方的公匙是可靠的。
這時候就有一個第三方公司產生了,我們服務端可以將其公匙交給第三方公司,讓其對它進行證書認證,這樣的話,就保證了公匙的可靠。
在這裏插入圖片描述
最後我們再來看一下其https的傳輸過程
1.客戶端和服務端首先會協商一種加密算法
2.服務端向客戶端發送自己的公匙以及證書
3.客戶端會請求第三方驗證其證書的可靠性,如果可靠的話,將會確定服務端是可靠的
4.這時候客戶端以服務端所支持的公匙加密文檔,文檔裏面包含了其所支持的對稱加密的密匙發送給服務端
5.服務端以私鑰解密並獲得其傳輸的對稱加密的密匙
6.後面就以協商的密匙進行抒發傳輸數據
總結:非對稱加密算法用於在握手過程中加密生成的密碼;對稱加密算法用於對真正傳輸的數據進行加密;HASH算法用於驗證數據的完整性。

https的缺點
它有ssl協議層的使用,因此它是非常消耗CPU資源的,並且證書認證也是耗費錢財的,因此一般不是必要情況下,我們都使用http傳輸就行了。
在這裏插入圖片描述

以上有任何問題,歡迎指正

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章