>[danger]什么是https協議?
****

1. 其實就是在HTTP上加入一層SSL/TSL加密, 利用SSL/TSL加密建立一條加密的通信渠道進行數據傳輸
2. HTTP + 加密 + 認證 + 完整性保護 = HTTPS
3. HTTP先和SSL/TSL通信, 再與TCP通信
4. 那么加密SSL是如何做的呢, 我們需要先了解共享加密(對稱加密)和非對稱加密
>[danger]共享秘鑰? (對稱加密)
1. 加密和解密都使用同一秘鑰
2. 但是很危險如何讓攻擊者拿到秘鑰就可以解密我們傳輸的數據了

>[danger]公鑰,私鑰加密? (非對稱加密)
1. 可以使用公鑰加密信息, 再用私鑰解密
2. 也可以用私鑰加密信息, 再用公鑰解密
****

(1) 客戶端 <- (獲取公鑰) <- 服務端
(2) 客戶端 -> (利用公鑰, 加密信息, 發給服務器端) -> 服務端
(3) 客戶端 -> (服務端利用私鑰解密, 得到信息) -> 服務端
(這里注意, 私鑰是保存在服務器上, 除非你能黑入我的服務器, 獲取私鑰)
****
>[danger]HTTPS的混合加密方式
****
1.需要申請一對證書, 證書就是公鑰和私鑰
(1) 因為公鑰加密, 私鑰解密, 或者私鑰加密, 公鑰解密, 這種方式比較慢,
(2) 最好使用一個共享秘鑰, 即可加密也可以解密, 但是直接傳輸這個共享秘鑰很危險.所以混合使用上2種方式

2. 流程如下:
(1): 客戶端向服務端請求索要公鑰, 并驗證公鑰
(2): 隨機產生一個共享秘鑰, 公鑰加密它發給服務器端, 服務端用私鑰解密, 得到共享秘鑰
(3): 以后這對前后端就用這個共享秘鑰加密和解密信息
3. 注意: 客戶端和服務端都要配置身份證書, 防止中間人得到公鑰偽裝客戶端
*****

中間人, 無法擁有服務器上的CA私鑰, 所以證書無法再次加密騙過服務器的驗證
****
擴展:
安全性考慮:
(1): HTTPS協議的加密范圍也比較有限,在黑客攻擊、拒絕服務攻擊、服務器劫持等方面幾乎起不到什么作用
(2): SSL證書的信用鏈體系并不安全,特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行
成本考慮:
(1): SSL證書需要購買申請,功能越強大的證書費用越高
(2): SSL證書通常需要綁定IP,不能在同一IP上綁定多個域名.
(3): 使用HTTPS協議會使頁面的加載時間延長近50%,增加10%到20%的耗電。
(4): HTTPS連接緩存不如HTTP高效,流量成本高。
(5): HTTPS連接服務器端資源占用高很多,支持訪客多的網站需要投入更大的成本, 握手階段比較費時, 影響用戶體驗, 最好像12306普通頁面用HTTP, 用戶操作頁面使用HTTPS
****
- web前端
- CSS問題
- 布局
- 雙飛翼布局_flex方式
- 雙飛翼布局_margin方式
- 圣杯布局_flex方式
- 圣杯布局_margin方式
- 子元素居中問題
- 彈性布局
- 概念_
- 標準模式與混雜模式
- 各種FC
- line-height
- vertical-align
- CSS3新特性
- 效果
- div添加箭頭
- CSS繪制三角形
- JavaScript
- 兼容
- 事件相關
- 原理
- Ajax原理
- 繼承原理
- 原型鏈繼承
- 組合繼承
- 寄生組合繼承
- 數據綁定
- 1單向數據綁定m到c到v
- 2偽雙向數據綁定
- 3雙向數據綁定
- socket.io
- 運行時
- this指向
- 0.1+0.2問題
- 對象/數組-深拷貝&淺拷貝
- 事件循環
- typeof
- instanceof
- 概念
- 閉包
- 回調函數
- Promise
- 原生對象
- Attribute和property區別
- 防抖函數
- 節流函數
- 語言類型
- Vue
- Vue優缺點
- 仿Vue源碼
- 1數據綁定_Observe
- 2數據綁定_訂閱者&觀察者定義
- 3數據綁定_Vue類實現
- 4數據綁定_Vue訪問data更改
- 5DOM編譯_Compile_雙大括號模板講解
- 6DOM編譯_v-model講解
- 7DOM編譯_v-on:事件綁定講解
- 項目總結
- 使用Svg圖標
- vueCli環境_真機測試
- vueCli集成環信SDK
- 父子組件雙向綁定
- React
- React優缺點
- 我的組件庫
- Vue的組件庫
- 環信_聊天組件
- 面試題
- HTML_分類
- CSS_分類
- JavaScript_分類
- VueJS_分類
- ReactJS_分類
- AngularJS_分類
- 瀏覽器端
- 筆試題
- CSS
- 特殊布局
- JavaScript_
- 經典_宏任務_微任務
- 瀏覽器問題
- CORS
- web服務器
- Apache
- 開啟跨域
- Nginx
- 常用命令
- 正向代理
- 反向代理
- 負載均衡
- mac安裝Nginx
- 配置80端口
- 算法
- 冒泡排序
- 選擇排序
- 合并對象_排序
- 楊輝三角
- 紅黑樹
- 計算機基礎
- 網絡相關
- OSI七層模型
- http協議
- http工作原理
- https協議
- GET和POST區別
- hosts文件
- php相關
- session機制
- Linux
- 阿里云服務器
- linux使用Mysql
- 安裝mysql
- 導入.sql文件
- 遠程連接mysql
- linux使用xampp
- 安裝Xampp
- 配置web訪問
- 域名綁定服務器
- linux搭建git服務器_apache下
- 代碼管理
- 什么是git
- 命令行_使用git
- .gitignore文件講解
- 軟件
- VSCode的安裝
- 理財
- 基金
- 攝影