详解HTTP与HTTPS
目錄
一、什么是HTTP?什么是HTTPS?
1.1 HTTP概念
1.2 HTTPS概念
二、HTTP原理與特點
2.1 HTTP實現(xiàn)原理
?2.2?HTTP的特點
三、HTTPS原理與特點
3.1 HTTPS原理
3.2 對稱加密與非對稱加密
3.3 HTTPS通信過程
1. 客戶端發(fā)起HTTPS請求
2. 服務(wù)端的配置
3. 傳送證書
4. 客戶端解析證書
5. 傳送加密信息
6. 服務(wù)段解密信息
7. 傳輸加密后的信息
8. 客戶端解密信息
3.4 HTTPS特點
四、HTTP與HTTP特點與區(qū)別
4.1 常見請求方法
4.2 post和get的區(qū)別:
4.3 多路復(fù)用
4.4 HTTPS的優(yōu)點
4.5?HTTPS的缺點
五、總結(jié)HTTPS和HTTP的區(qū)別
六、詳解瀏覽器解析一個URL
一、什么是HTTP?什么是HTTPS?
1.1 HTTP概念
HTTP(HyperText Transfer Protocol:超文本傳輸協(xié)議)是一種基于請求與響應(yīng),無狀態(tài)的,用于分布式、協(xié)作式和超媒體信息系統(tǒng)的應(yīng)用層協(xié)議。 簡單來說就是一種發(fā)布和接收 HTML 頁面的方法,被用于在 Web 瀏覽器和網(wǎng)站服務(wù)器之間傳遞信息。基于TCP/IP協(xié)議傳輸數(shù)據(jù),互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,所有的WWW文件都必須遵守這個標準。
HTTP 默認工作在 TCP 協(xié)議 80 端口,用戶訪問網(wǎng)站?http://?打頭的都是標準 HTTP 服務(wù)。
HTTP 協(xié)議以明文方式發(fā)送內(nèi)容,不提供任何方式的數(shù)據(jù)加密,如果攻擊者截取了Web瀏覽器和網(wǎng)站服務(wù)器之間的傳輸報文,就可以直接讀懂其中的信息,因此,HTTP協(xié)議不適合傳輸一些敏感信息,比如:信用卡號、密碼等支付信息。
發(fā)展歷史
?
1.2 HTTPS概念
HTTPS(Hypertext Transfer Protocol Secure:超文本傳輸安全協(xié)議)是一種透過計算機網(wǎng)絡(luò)進行安全通信的傳輸協(xié)議。HTTPS是身披SSL外殼的HTTP,即HTTPS 經(jīng)由 HTTP 進行通信,但利用 SSL/TLS 來加密數(shù)據(jù)包。HTTPS 開發(fā)的主要目的,是提供對網(wǎng)站服務(wù)器的身份認證,保護交換數(shù)據(jù)的隱私與完整性。HTTPS 默認工作在 TCP 協(xié)議443端口。
PS:TLS是傳輸層加密協(xié)議,前身是SSL協(xié)議,由網(wǎng)景公司1995年發(fā)布,有時候兩者不區(qū)分。
二、HTTP原理與特點
2.1 HTTP實現(xiàn)原理
HTTP是一個基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)的協(xié)議,傳輸?shù)臄?shù)據(jù)類型為HTML 文件、圖片文件、查詢結(jié)果等。
HTTP協(xié)議一般用于B/S架構(gòu)。瀏覽器作為HTTP客戶端通過URL向HTTP服務(wù)端即WEB服務(wù)器發(fā)送所有請求。
我們以訪問百度為例:
?2.2?HTTP的特點
三、HTTPS原理與特點
3.1 HTTPS原理
HTTPS其實是有兩部分組成:HTTP +?SSL?/ TLS,也就是在HTTP上又加了一層處理加密信息的模塊。服務(wù)端和客戶端的信息傳輸都會通過TLS進行加密,所以傳輸?shù)臄?shù)據(jù)都是加密后的數(shù)據(jù)。具體是如何進行加密,解密,驗證的,且看下圖。
3.2 對稱加密與非對稱加密
這里涉及到?對稱加密與非對稱加密的概念,HTTPS使用的是混合加密,也就是對稱加密與非對稱加密結(jié)合。
先了解加密的幾種方式
加密無處不在 ,加密方式主要是分為兩種 :對稱加密和非對稱加密。
對稱加密算法和非對稱加密算法只不過是密碼學(xué)中的兩種加密算法罷了,所謂的算法就是一種可以將信息從一種形式轉(zhuǎn)變?yōu)榱硪环N形式的規(guī)則。
?對稱加密
對稱密鑰加密,又稱為對稱加密、私鑰加密、共享秘鑰加密,是密碼學(xué)中的一類加密算法。這類算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單地相互推算的密鑰。
對稱加密也可以理解為一方通過密鑰將信息加密之后,把密文傳給另一方,另一方通過這個相同的密鑰將密文解密,轉(zhuǎn)換成可以理解的明文。簡單的可以理解為一把鑰匙既能加鎖,還能用同一把鑰匙進行 解鎖。
常見的對稱加密算法:DES、3DES、AES、Blowfish、IDEA、RC5、RC6;
對稱加密的算法非常之多,一般使用中用AES就基本夠用了。
非對稱加密
公開秘鑰加密,也稱為非對稱加密,一種密碼學(xué)算法類型,在這種密碼學(xué)方法中,需要一對密鑰,一個是私人密鑰,另一個則是公開密鑰。這兩個密鑰是數(shù)學(xué)相關(guān),是某用戶密鑰加密后所得的信息,只能用該用戶的解密密鑰才能解密。如果知道了其中一個,并不能計算出另外一個。因此如果公開了一對密鑰中的一個,并不會危害到另外一個的秘密性質(zhì)。稱公開的密鑰為公鑰,不公開的密鑰為私鑰。
非對稱加密的使用方式就是,比如A想將數(shù)據(jù)傳輸給B,那么首先A會向B索取一份公鑰,A拿到公鑰之后,通過該公鑰對數(shù)據(jù)進行非對稱加密,然后將密文傳輸給B,B收到密文之后通過私鑰將其進行解密,從而得到數(shù)據(jù)內(nèi)容。也就是說一把鎖可以使用兩把鑰匙進行解密。
常見的非對稱加密算法:RSA、Elgamal、背包算法、Rabin。
RSA這種加密算法應(yīng)用非常廣泛,如SSH、HTTPS、TLS、電子證書、電子簽名、電子身份證等。
加密方式總結(jié)
- 對稱加密加密與解密使用的是同樣的密鑰,所以速度快,但由于需要將密鑰在網(wǎng)絡(luò)傳輸,所以安全性不高;
- 非對稱加密使用了一對密鑰,公鑰和私鑰,所以安全性高,但加密與解密速度慢;
- 解決的方法是將對稱加密的密鑰使用非對稱加密的公鑰進行加密,然后發(fā)送出去,接收方使用私鑰進行解密得到對稱加密的密鑰,然后雙方可以使用對稱加密來進行溝通。
混合加密
結(jié)合非對稱加密和對稱加密技術(shù)。客戶端使用對稱加密生成密鑰對傳輸數(shù)據(jù)進行加密,然后使用非對稱加密的公鑰再對秘鑰進行加密,所以網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)是被秘鑰加密的密文和用公鑰加密后的秘密秘鑰,因此即使被黑客截取,由于沒有私鑰,無法獲取到加密明文的秘鑰,便無法獲取到明文數(shù)據(jù)。
3.3 HTTPS通信過程
1. 客戶端發(fā)起HTTPS請求
這個沒什么好說的,就是用戶在瀏覽器里輸入一個https網(wǎng)址,然后連接到server的443端口。
2. 服務(wù)端的配置
采用HTTPS協(xié)議的服務(wù)器必須要有一套數(shù)字證書,可以自己制作,也可以向組織申請。區(qū)別就是自己頒發(fā)的證書需要客戶端驗證通過,才可以繼續(xù)訪問,而使用受信任的公司申請的證書則不會彈出提示頁面(startssl就是個不錯的選擇,有1年的免費服務(wù))。這套證書其實就是一對公鑰和私鑰。如果對公鑰和私鑰不太理解,可以想象成一把鑰匙和一個鎖頭,只是全世界只有你一個人有這把鑰匙,你可以把鎖頭給別人,別人可以用這個鎖把重要的東西鎖起來,然后發(fā)給你,因為只有你一個人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。
3. 傳送證書
這個證書其實就是公鑰,只是包含了很多信息,如證書的頒發(fā)機構(gòu),過期時間等等。
4. 客戶端解析證書
這部分工作是有客戶端的TLS來完成的,首先會驗證公鑰是否有效,比如頒發(fā)機構(gòu),過期時間等等,如果發(fā)現(xiàn)異常,則會彈出一個警告框,提示證書存在問題。如果證書沒有問題,那么就生成一個隨機值。然后用證書對該隨機值進行加密。就好像上面說的,把隨機值用鎖頭鎖起來,這樣除非有鑰匙,不然看不到被鎖住的內(nèi)容。
5. 傳送加密信息
這部分傳送的是用證書加密后的隨機值,目的就是讓服務(wù)端得到這個隨機值,以后客戶端和服務(wù)端的通信就可以通過這個隨機值來進行加密解密了。
這個隨機值其實可以理解為客戶端的鑰匙!這里也就是用服務(wù)端的公鑰來加密客戶端的鑰匙,再傳給服務(wù)端,服務(wù)端后續(xù)就用這個鑰匙來對內(nèi)容加密,再把內(nèi)容傳給客戶端,客戶端就能對其進行解密。
6. 服務(wù)段解密信息
服務(wù)端用私鑰解密后,得到了客戶端傳過來的隨機值(私鑰),然后把內(nèi)容通過該值進行對稱加密。所謂對稱加密就是,將信息和私鑰通過某種算法混合在一起,這樣除非知道私鑰,不然無法獲取內(nèi)容,而正好客戶端和服務(wù)端都知道這個私鑰,所以只要加密算法夠彪悍,私鑰夠復(fù)雜,數(shù)據(jù)就夠安全。
7. 傳輸加密后的信息
這部分信息是服務(wù)段用私鑰加密后的信息,可以在客戶端被還原
8. 客戶端解密信息
客戶端用之前生成的私鑰解密服務(wù)段傳過來的信息,于是獲取了解密后的內(nèi)容。整個過程第三方即使監(jiān)聽到了數(shù)據(jù),也束手無策。
3.4 HTTPS特點
四、HTTP與HTTP特點與區(qū)別
4.1 常見請求方法
GET:請求指定的頁面信息,并返回實體主體。
POST:向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST請求可能會導(dǎo)致新的資源的建立和/或已有資源的修改。
HEAD:類似于get請求,只不過返回的響應(yīng)中沒有具體的內(nèi)容,用于獲取報頭
PUT:從客戶端向服務(wù)器傳送的數(shù)據(jù)取代
4.2 post和get的區(qū)別:
都包含請求頭請求行,post多了請求body。
get多用來查詢,請求參數(shù)放在url中,不會對服務(wù)器上的內(nèi)容產(chǎn)生作用。post用來提交,如把賬號密碼放入body中。
GET是直接添加到URL后面的,直接就可以在URL中看到內(nèi)容,而POST是放在報文內(nèi)部的,用戶無法直接看到。
GET提交的數(shù)據(jù)長度是有限制的,因為URL長度有限制,具體的長度限制視瀏覽器而定。而POST沒有。
4.3 多路復(fù)用
通過單一的HTTP/2連接請求發(fā)起多重的請求-響應(yīng)消息,多個請求stream共享一個TCP連接,實現(xiàn)多留并行而不是依賴建立多個TCP連接。
4.4 HTTPS的優(yōu)點
4.5?HTTPS的缺點
五、總結(jié)HTTPS和HTTP的區(qū)別
- HTTPS是HTTP協(xié)議的安全版本,HTTP協(xié)議的數(shù)據(jù)傳輸是明文的,是不安全的,HTTPS使用了SSL/TLS協(xié)議進行了加密處理。
- http和https使用連接方式不同,默認端口也不一樣,http是80,https是443。
六、詳解瀏覽器解析一個URL
https://blog.csdn.net/qq_41687938/article/details/119778557
總結(jié)
以上是生活随笔為你收集整理的详解HTTP与HTTPS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详解浏览器解析一个URL的全过程
- 下一篇: thinkpad卡在logo界面_四大系