HTTP全名叫什么?
· http的英文全稱(chēng)是:HyperText Transfer Protocol。中文譯為超文本傳輸協(xié)議。http是一個(gè)簡(jiǎn)單的請(qǐng)求-響應(yīng)協(xié)議,它通常運(yùn)行在TCP之上。
· HTTP是基于客戶(hù)/服務(wù)器模式,且面向連接的。典型的HTTP事務(wù)處理有如下的過(guò)程:
(1)客戶(hù)與服務(wù)器建立連接;
(2)客戶(hù)向服務(wù)器提出請(qǐng)求;
(3)服務(wù)器接受請(qǐng)求,并根據(jù)請(qǐng)求返回相應(yīng)的文件作為應(yīng)答;
(4)客戶(hù)與服務(wù)器關(guān)閉連接。
· HTTPS (全稱(chēng):Hyper Text Transfer Protocol over SecureSocket Layer),HTTPS 主要由兩部分組成:HTTP + SSL / TLS,也就是在 HTTP 上又加了一層處理加密信息的模塊。服務(wù)端和客戶(hù)端的信息傳輸都會(huì)通過(guò) TLS 進(jìn)行加密,所以傳輸?shù)臄?shù)據(jù)都是加密后的數(shù)據(jù)。
ssl:SSL = Secure Sockets Layer 安全套接字協(xié)議
tls:TLS = Transport Layer Security,TLS 傳輸層安全
HTTPS與HTTP原理區(qū)別
HTTP 原理
?、?客戶(hù)端的瀏覽器首先要通過(guò)網(wǎng)絡(luò)與服務(wù)器建立連接,該連接是通過(guò)TCP 來(lái)完成的,一般 TCP 連接的端口號(hào)是80。 建立連接后,客戶(hù)機(jī)發(fā)送一個(gè)請(qǐng)求給服務(wù)器,請(qǐng)求方式的格式為:統(tǒng)一資源標(biāo)識(shí)符(URL)、協(xié)議版本號(hào),后邊是 MIME 信息包括請(qǐng)求修飾符、客戶(hù)機(jī)信息和許可內(nèi)容 。
?、?服務(wù)器接到請(qǐng)求后,給予相應(yīng)的響應(yīng)信息,其格式為一個(gè)狀態(tài)行,包括信息的協(xié)議版本號(hào)、一個(gè)成功或錯(cuò)誤的代碼,后邊是 MIME 信息包括服務(wù)器信息、實(shí)體信息和可能的內(nèi)容 。
HTTPS 原理
① 客戶(hù)端將它所支持的算法列表和一個(gè)用作產(chǎn)生密鑰的隨機(jī)數(shù)發(fā)送給服務(wù)器 ;
?、?服務(wù)器從算法列表中選擇一種加密算法,并將它和一份包含服務(wù)器公用密鑰的證書(shū)發(fā)送給客戶(hù)端;該證書(shū)還包含了用于認(rèn)證目的的服務(wù)器標(biāo)識(shí),服務(wù)器同時(shí)還提供了一個(gè)用作產(chǎn)生密鑰的隨機(jī)數(shù) ;
?、?客戶(hù)端對(duì)服務(wù)器的證書(shū)進(jìn)行驗(yàn)證(有關(guān)驗(yàn)證證書(shū),可以參考數(shù)字簽名),并抽取服務(wù)器的公用密鑰;然后,再產(chǎn)生一個(gè)稱(chēng)作 pre_master_secret 的隨機(jī)密碼串,并使用服務(wù)器的公用密鑰對(duì)其進(jìn)行加密(參考非對(duì)稱(chēng)加 / 解密),并將加密后的信息發(fā)送給服務(wù)器 ;
?、?客戶(hù)端與服務(wù)器端根據(jù) pre_master_secret 以及客戶(hù)端與服務(wù)器的隨機(jī)數(shù)值獨(dú)立計(jì)算出加密和 MAC密鑰(參考 DH密鑰交換算法) ;
?、?客戶(hù)端將所有握手消息的 MAC 值發(fā)送給服務(wù)器 ;
⑥ 服務(wù)器將所有握手消息的 MAC 值發(fā)送給客戶(hù)端 。
HTTPS的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
1. 使用 HTTPS 協(xié)議可認(rèn)證用戶(hù)和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶(hù)機(jī)和服務(wù)器 ;
2. HTTPS 協(xié)議是由 SSL+HTTP構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,要比 HTTP安全,可防止數(shù)據(jù)在傳輸過(guò)程中被竊取、改變,確保數(shù)據(jù)的完整性 。
3. HTTPS 是現(xiàn)行架構(gòu)下最安全的解決方案,雖然不是絕對(duì)安全,但它大幅增加了中間人攻擊的成本 [2]
缺點(diǎn)
4. 相同網(wǎng)絡(luò)環(huán)境下,HTTPS 協(xié)議會(huì)使頁(yè)面的加載時(shí)間延長(zhǎng)近 50%,增加 10%到 20%的耗電。此外,HTTPS 協(xié)議還會(huì)影響緩存,增加數(shù)據(jù)開(kāi)銷(xiāo)和功耗 。
5. HTTPS 協(xié)議的安全是有范圍的,在黑客攻擊、拒絕服務(wù)攻擊和服務(wù)器劫持等方面幾乎起不到什么作用。
6. 最關(guān)鍵的是,SSL 證書(shū)的信用鏈體系并不安全。特別是在某些國(guó)家可以控制CA根證書(shū)的情況下,中間人攻擊一樣可行。
7. 成本增加。部署 HTTPS 后,因?yàn)?HTTPS 協(xié)議的工作要增加額外的計(jì)算資源消耗,例如 SSL 協(xié)議加密算法和 SSL 交互次數(shù)將占用一定的計(jì)算資源和服務(wù)器成本。在大規(guī)模用戶(hù)訪(fǎng)問(wèn)應(yīng)用的場(chǎng)景下,服務(wù)器需要頻繁地做加密和解密操作,幾乎每一個(gè)字節(jié)都需要做加解密,這就產(chǎn)生了服務(wù)器成本。隨著云計(jì)算技術(shù)的發(fā)展,數(shù)據(jù)中心部署的服務(wù)器使用成本在規(guī)模增加后逐步下降,相對(duì)于用戶(hù)訪(fǎng)問(wèn)的安全提升,其投入成本已經(jīng)下降到可接受程度。
更多關(guān)于前端培訓(xùn)的問(wèn)題,歡迎咨詢(xún)千鋒教育在線(xiàn)名師,如果想要了解我們的師資、課程、項(xiàng)目實(shí)操的話(huà)可以點(diǎn)擊咨詢(xún)課程顧問(wèn),獲取試聽(tīng)資格來(lái)試聽(tīng)我們的課程,在線(xiàn)零距離接觸千鋒教育大咖名師,讓你輕松從入門(mén)到精通。