雖然我們常常說http請求,、http協(xié)議,,但是實(shí)際使用中,絕大說的網(wǎng)站現(xiàn)在都采用的是https協(xié)議,,這也是未來互聯(lián)網(wǎng)發(fā)展的趨勢,。
首先,學(xué)習(xí)https之前我們先回顧一下http的相關(guān)知識,,南京軟件開發(fā)之Http協(xié)議
一個完整http的請求過程:
下面是通過wireshark抓取的一個博客網(wǎng)站的登錄請求過程,。
可以看到訪問的賬號密碼都是明文傳輸, 這樣客戶端發(fā)出的請求很容易被不法分子截取利用,,因此,,HTTP協(xié)議不適合傳輸一些敏感信息,比如:各種賬號,、密碼等信息,,使用http協(xié)議傳輸隱私信息非常不安全。
一般http中存在如下問題:
為了解決這些問題,,就用到了HTTPS。
HTTPS 協(xié)議(HyperText Transfer Protocol over Secure Socket Layer):一般理解為HTTP+SSL/TLS,,通過 SSL證書來驗(yàn)證服務(wù)器的身份,,并為瀏覽器和服務(wù)器之間的通信進(jìn)行加密。
那么SSL又是什么,?
SSL(Secure Socket Layer,,安全套接字層):1994年為 Netscape 所研發(fā),SSL 協(xié)議位于 TCP/IP 協(xié)議與各種應(yīng)用層協(xié)議之間,,為數(shù)據(jù)通訊提供安全支持,。
TLS(Transport Layer Security,傳輸層安全):其前身是 SSL,,它最初的幾個版本(SSL 1.0,、SSL 2.0、SSL 3.0)由網(wǎng)景公司開發(fā),,1999年從 3.1 開始被 IETF 標(biāo)準(zhǔn)化并改名,,發(fā)展至今已經(jīng)有 TLS 1.0、TLS 1.1,、TLS 1.2 三個版本,。SSL3.0和TLS1.0由于存在安全漏洞,已經(jīng)很少被使用到,。TLS 1.3 改動會比較大,,目前還在草案階段,,目前使用最廣泛的是TLS 1.1、TLS 1.2,。
SSL發(fā)展史(互聯(lián)網(wǎng)加密通信)
-
1994年NetSpace公司設(shè)計(jì)SSL協(xié)議(Secure Sockets Layout)1.0版本,,但未發(fā)布。
-
1995年NetSpace發(fā)布SSL/2.0版本,,很快發(fā)現(xiàn)有嚴(yán)重漏洞
-
1996年發(fā)布SSL/3.0版本,,得到大規(guī)模應(yīng)用
-
1999年,發(fā)布了SSL升級版TLS/1.0版本,,目前應(yīng)用最廣泛的版本
-
2006年和2008年,,發(fā)布了TLS/1.1版本和TLS/1.2版本
瀏覽器在使用HTTPS傳輸數(shù)據(jù)的流程是什么?
-
首先客戶端通過URL訪問服務(wù)器建立SSL連接,。
-
服務(wù)端收到客戶端請求后,,會將網(wǎng)站支持的證書信息(證書中包含公鑰)傳送一份給客戶端。
-
客戶端的服務(wù)器開始協(xié)商SSL連接的安全等級,,也就是信息加密的等級,。
-
客戶端的瀏覽器根據(jù)雙方同意的安全等級,建立會話密鑰,,然后利用網(wǎng)站的公鑰將會話密鑰加密,,并傳送給網(wǎng)站。
-
服務(wù)器利用自己的私鑰解密出會話密鑰,。
-
服務(wù)器利用會話密鑰加密與客戶端之間的通信,。
HTTPS的缺點(diǎn)
-
HTTPS協(xié)議多次握手,導(dǎo)致頁面的加載時間延長近50%,;
-
HTTPS連接緩存不如HTTP高效,會增加數(shù)據(jù)開銷和功耗,;
-
申請SSL證書需要錢,,功能越強(qiáng)大的證書費(fèi)用越高。
-
SSL涉及到的安全算法會消耗 CPU 資源,,對服務(wù)器資源消耗較大,。
總結(jié)HTTPS和HTTP的區(qū)別:
-
https協(xié)議需要到CA申請證書,一般免費(fèi)證書較少,,使用需要一定費(fèi)用,。
-
http是超文本傳輸協(xié)議,信息是明文傳輸,,https則是具有安全性的ssl加密傳輸協(xié)議,。
-
http和https使用連接方式不同,默認(rèn)端口也不一樣,,http是80,,https是443,。
-
HTTPS協(xié)議是SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,,比http協(xié)議安全,。