在面試的時候面試官經(jīng)常會問我們是否了解http與https的區(qū)別?下面我們就來討論一下
1.理解http與https的概念
(1)HTTP:超文本傳輸協(xié)議 (HTTP-Hypertext transfer protocol),是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,是一種詳細(xì)規(guī)定了瀏覽器和萬維網(wǎng)服務(wù)器之間互相通信的規(guī)則奏黑,通過因特網(wǎng)傳送萬維網(wǎng)文檔的數(shù)據(jù)傳送協(xié)議炊邦。用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,它可以使瀏覽器更加高效熟史,使網(wǎng)絡(luò)傳輸減少馁害。
? ? ?HTTP的會出現(xiàn)的問題:http協(xié)議屬于明文傳輸協(xié)議,交互過程以及數(shù)據(jù)傳輸都沒有進行加密蹂匹,通信雙方也沒有進行任何認(rèn)證碘菜,通信過程非常容易遭遇劫持、監(jiān)聽限寞、篡改忍啸,嚴(yán)重情況下,會造成惡意的流量劫持等問題昆烁,甚至造成個人隱私泄露(比如銀行卡卡號和密碼泄露)等嚴(yán)重的安全問題吊骤。
(2)HTTPS:是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版静尼,即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL传泊,因此加密的詳細(xì)內(nèi)容就需要SSL∈竺欤現(xiàn)在它被廣泛用于萬維網(wǎng)上安全敏感的通訊,例如交易支付方面眷细。
? ? HTTPS協(xié)議可以分為兩種:一是通過建立一個信息安全通道拦盹,來保證數(shù)據(jù)傳輸?shù)陌踩欢峭ㄟ^確認(rèn)網(wǎng)站的真實性溪椎。
HTTPS在HTTP的基礎(chǔ)上加入了SSL/TLS協(xié)議普舆,依靠SSL證書來驗證服務(wù)器的身份,并為客戶端和服務(wù)器端之間建立“SSL加密通道”校读,確保用戶數(shù)據(jù)在傳輸過程中處于加密狀態(tài)沼侣,同時防止服務(wù)器被釣魚網(wǎng)站假冒,而HTTP協(xié)議無法加密數(shù)據(jù)歉秫,所有通信數(shù)據(jù)都在網(wǎng)絡(luò)中明文“裸奔”蛾洛。通過網(wǎng)絡(luò)的一些技術(shù)手段,就可還原HTTP報文內(nèi)容雁芙。
2.簡要了解HTTP和HTTPS的區(qū)別轧膘?
(1)HTTP 是超文本傳輸協(xié)議,屬于明文傳輸協(xié)議兔甘,HTTPS?則是具有安全性的基于ssl加密的傳輸協(xié)議
(2)HTTP?和 HTTPS?使用的是連接方式不同谎碍,而且用的端口也不一樣,前者是80,后者是443。
(3)HTTP 是簡單的無狀態(tài)的連接洞焙。HTTPS 協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸蟆淀、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議 要比 HTTP 協(xié)議安全
(4)HTTPS 內(nèi)容經(jīng)過對稱加密拯啦,每個連接生成一個唯一的加密密鑰(對稱秘鑰:對稱密鑰加密又叫專用密鑰加密,即發(fā)送和接收數(shù)據(jù)的雙方必使用相同的密鑰對明文進行加密和解密運算扳碍。)
(5)HTTPS 內(nèi)容傳輸經(jīng)過完整性校驗
3.HTTPS是如何保證數(shù)據(jù)的安全提岔?
(1)客戶端向服務(wù)器端發(fā)起SSL連接請求;(在此過程中依然存在數(shù)據(jù)被中間方盜取的可能笋敞,下面將會說明如何保證此過程的安全)
(2) 服務(wù)器把公鑰發(fā)送給客戶端碱蒙,并且服務(wù)器端保存著唯一的私鑰
(3)客戶端用公鑰對雙方通信的對稱秘鑰進行加密,并發(fā)送給服務(wù)器端
(4)服務(wù)器利用自己唯一的私鑰對客戶端發(fā)來的對稱秘鑰進行解密夯巷,在此過程中赛惩,中間方無法對其解密(即使是客戶端也無法解密,因為只有服務(wù)器端擁有唯一的私鑰)趁餐,這樣保證了對稱秘鑰在收發(fā)過程中的安全喷兼,此時,服務(wù)器端和客戶端擁有了一套完全相同的對稱秘鑰后雷。
(5)進行數(shù)據(jù)傳輸季惯,服務(wù)器和客戶端雙方用公有的相同的對稱秘鑰對數(shù)據(jù)進行加密解密,可以保證在數(shù)據(jù)收發(fā)過程中的安全臀突,即是第三方獲得數(shù)據(jù)包勉抓,也無法對其進行加密,解密和篡改候学。