面試官:講一下 https 和 http 的區別

面試官:講一下 https 和 http 的區別

“時無重至,華不再陽”

在這裏插入圖片描述

01 前言


因爲http協議傳輸的數據都是以明文的形式傳輸的,內容沒有經過加密操作,這就造成了傳輸不安全的情況。如果傳輸的數據中存在着銀行卡,身份證等敏感信息,容易被他人盜取,實施詐騙。

所以人們就想出了一種能夠安全傳輸的協議,https協議。該協議可以在信息傳輸前進行加密,加密之後接收方需要解密纔可以得到信息,否則即使你截獲了傳輸數據也無濟於事。
在這裏插入圖片描述

02 區別


那麼https相比於http有哪些區別呢?是不是一種新的協議呢?其實https只是在http的基礎上建立的,我們知道http協議在數據傳輸之前會進行TCP的三次握手,然後纔會傳輸數據。其實https同樣也會進行三次握手操作,只是在應用層和傳輸層之間添加了SSL/TLS層而已。
在這裏插入圖片描述

首先我們來看一下https是怎麼連接的?
在這裏插入圖片描述

  1. 首先客戶端發起請求到服務端,服務端處理後發送一個公鑰給客戶端
  2. 客戶端進行驗證公鑰,看公鑰是否有效和是否過期
  3. 客戶端驗證通過會產生隨機值key,然後用公鑰進行加密回傳給服務端
  4. 服務端用私鑰解密後獲得客戶端的隨機值key
  5. 利用隨機值key加密數據後傳輸給客戶端
  6. 客戶端利用key值進行解密數據
  7. 客戶端獲取真正的數據

通過上圖我們就應該瞭解了https握手階段,其實上面不僅是SSL握手,還包括建立連接的TCP三次握手。

既然https能夠保證安全傳輸,是不是所有網站都使用https協議呢?

其實現在最關鍵的就是證書問題,用於證明你的網站是安全的而不是危險的。這就需要第三方信任度高的權威機構來對網站進行證書頒發,就好比給你授權一樣。比如國內我們會相信支付寶,所以願意把錢都存進餘額寶一樣的道理。

一般來說免費的證書是比較少的,很多都要收費,而且價格不菲。只有那些大型的公司或者安保係數比較高的電商網站等需要使用,一般個人的就不需要了。所以總結一下https的不足之處:

  • 證書問題,價格高
  • 握手階段會額外消耗時間
  • SEO搜索響應慢
  • 加密範圍比較有限
  • 若權威公司的證書泄露,一樣是不安全的

在這裏插入圖片描述

03 小結


對於加密的流程,無非就是一個算法的問題,利用算法對隨機值進行一個加密的操作,假如你的算法強度高,複雜性也比較高,那麼沒有解密方法的情況下是很難破解的。

算法這一塊就不是我們考慮的範圍了,我們只要好好理解這個過程就好了,前端工程師無需深究其中的細節部分。只要你面試的時候能夠說出以上的流程,那麼就沒有問題了。

歡迎大家關注我的微信公衆號《前端小時》,文章同步發送!
在這裏插入圖片描述

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