
上回說到了 HTTP 與 TCP/IP、常見的 HTTP 方法、HTTP 狀態(tài)碼與HTTP 報文首部字段。這回主要講講 HTTP 與 HTTPS。
HTTP 存在的缺點
在安全方面,HTTP 存在以下幾種缺點。
- 竊聽風(fēng)險:由于通訊使用明文傳輸,內(nèi)容可能會泄露。
- 篡改風(fēng)險:第三方對傳輸?shù)臄?shù)據(jù)進(jìn)行篡改,影響與服務(wù)端之間的正確通信。
- 冒充風(fēng)險:可能會出現(xiàn)中間人攻擊,第三方冒充服務(wù)器。
其實上面三種問題可以總結(jié)為通信未加密,而 HTTPS 的出現(xiàn)則很好的解決了以上問題。
什么是 HTTPS
與 HTTP 協(xié)議的明文傳輸相比,HTTPS 是將這些內(nèi)容加密,確保信息傳輸安全。最后一個字母 S 指的是 SSL(Secure Socket Layer,安全套接層)/TLS(Transport Layer Security,安全傳輸層協(xié)議) 協(xié)議,它位于 HTTP 協(xié)議與 TCP/IP 協(xié)議之間。
HTTPS 使用了非對稱加密。
私鑰只存在于服務(wù)器上,服務(wù)器下發(fā)的內(nèi)容不可能被偽造,因為別人都沒有私鑰,所以無法加密。
所有人都有公鑰,但私鑰只有服務(wù)器有,所以服務(wù)器才能看到被加密的內(nèi)容。
HTTPS 的工作過程
針對上面的三個缺點,說一下 HTTPS 是如何應(yīng)對的。
- HTTPS 使用非對稱加密傳輸密碼,使用這個密碼加密數(shù)據(jù),避免第三方獲取內(nèi)容。
- 發(fā)送方將信息的
哈希值一起發(fā)送過去,接收方會把解密后的數(shù)據(jù)與哈希值進(jìn)行對比,避免被篡改。 - HTTPS 由權(quán)威機構(gòu)頒布 CA(Certificate Authority,電子商務(wù)認(rèn)證授權(quán)機構(gòu)) 證書,使用證書校驗機制防止第三方的偽裝。
什么是哈希值?
哈希值是通過哈希算法壓縮后得到的數(shù)據(jù)值,理論上來說不管多復(fù)雜的數(shù)據(jù)都可以通過哈希算法求得哈希值。比如我們下載的 Android SDK 就會提供一個 SHA-256 校驗和,這個就屬于哈希算法的一種。

如何使用 HTTPS
現(xiàn)在有很多網(wǎng)站都已經(jīng)廣泛使用 HTTPS,比如 www.baidu.com。

而且現(xiàn)在 iOS 提交至 App Store 的應(yīng)用都必須使用 HTTPS 進(jìn)行網(wǎng)絡(luò)請求。所以了解如何使用 HTTPS 還是很有必要的。
申請方式很簡單了,拿阿里云舉例,打開官網(wǎng)選擇安全 -> CA 證書服務(wù),填寫信息購買即可。

為什么不一直使用 HTTPS
在上一會我們講過 HTTP 有三次握手,在加入 HTTPS 之后就變成了四次握手,所以效率會降低一些,不過還是能接受的。
由于 HTTPS 會降低一定的速度,還有一些額外的成本。所以對于一些不太需要加密的信息,還是有很多企業(yè)傾向于選擇 HTTP。
最后
這個第二篇和第一篇的間隔有點長,自己最近還是有點懶,各位多多包涵。
寫博客這種東西,感覺對自己還是有不少幫助的,雖然自己水平不高,但是本來一些比較模糊的知識點,經(jīng)過查資料、寫博客慢慢也有一些進(jìn)步了。所以呢,這里還是推薦大家嘗試一下通過寫博客進(jìn)行知識總結(jié)和學(xué)習(xí),有的時候只是看還是容易忘的??。