做爲一名前端」代碼猿「在面試的時候競猜或問道:css
面試官:「tcp/ip協議分爲幾層?」前端
面試官:「tcp握手三次創建創建過程?」面試
面試官:「http和https之類的區別?」
瀏覽器
......安全
前端」代碼猿「:「😨?????what問我這個幹嘛?我會寫js、css就行唄」服務器
其實要想做爲一個比較高端的前端」代碼猿「,TCP/IP協議這塊我們仍是須要了解一下的😂tcp
今天咱們來目擊一下http和https的區別到時在哪裏。post
1 、https是什麼?加密
https不是一個新的協議,它只是http協議身披一層SSL(Secure Socket Layer,安全套階 層)協議,SSL這層協議存在於應用層(http層)到TCP層之間,以下圖設計
二、爲何要使用https?
我在以前的文章中寫過http的缺點,先簡單的羅列一下缺點
2.一、http協議的報文傳輸時不加密的,有些隱私信息存在被竊聽的風險。
2.二、http協議通訊時沒法驗證通訊方身份,可能存在假裝者(客戶端、服務器)
2.三、http協議沒法判斷通訊報文的完整性,通訊報文在TCP/IP協議通訊中可能會被篡改
使用https協議就是爲了解決以上的三個問題,我們都知道https協議是http協議+ssl協議組成的,那麼http協議的缺點,只能是ssl協議來完成。
三、下面簡介一下ssl協議
HTTPS使用SSL(Secure Scocket Layer ,安全套階層)和TLS(Transport Layer Secure,安全層傳輸協議)這兩種協議。
3.1 、SSL的產生
SSL 技術最初是由瀏覽器開發商網景通訊公司率先倡導的,開發 過 SSL3.0 以前的版本。目前主導權已轉移到 IETF(Internet Engineering Task Force,Internet 工程任務組)的手中
3.二、SSL和TLS(transport layer secure,安全層傳輸協議)的關係?
IETF 以 SSL3.0 爲基準,後又制定了 TLS1.0、TLS1.1 和TLS1.2。TSL 是以 SSL 爲原型開發的協議,有時會統一稱該協議 爲 SSL。當前主流的版本是 SSL3.0 和 TLS1.0。
因爲 SSL1.0 協議在設計之初被發現出了問題,就沒有實際投入 使用。SSL2.0 也被發現存在問題,因此不少瀏覽器直接廢除了 該協議版本。
有興趣等出SSL怎麼完成http的那三個缺點的