自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

HTTP協(xié)議是如何實現(xiàn)“秘密交互”的?

網(wǎng)絡 網(wǎng)絡管理
大家都知道去訪問網(wǎng)站都是使用瀏覽器,在地址欄中輸入你想訪問的鏈接,按個回車就能打開相應的網(wǎng)站。然后就可以盡情得瀏覽網(wǎng)頁內(nèi)容了。

[[261700]]

你知道HTTP訪問的交互過程嗎?

如題,可能有很多并不了解,本文將簡單地介紹一下當你訪問某網(wǎng)站時你的電腦與網(wǎng)站之間的數(shù)據(jù)交互過程。

大家都知道去訪問網(wǎng)站都是使用瀏覽器,在地址欄中輸入你想訪問的鏈接,按個回車就能打開相應的網(wǎng)站。然后就可以盡情得瀏覽網(wǎng)頁內(nèi)容了。

那你知道WEB頁面如何呈現(xiàn)的嗎?

網(wǎng)頁內(nèi)容肯定不會憑空出現(xiàn),當你在瀏覽器地址欄中輸入URL(鏈接)時,WEB瀏覽器會發(fā)送相應的WEB請求信息到目標網(wǎng)站(服務器),當目標網(wǎng)站服務器接收到請求時服務器回應相應的內(nèi)容給你的瀏覽器(客戶端),這樣你就看到了網(wǎng)頁內(nèi)容。

不過這只是基本的訪問過程。這也是HTTP或HTTPS協(xié)議的數(shù)據(jù)交互的過程,但這個看似非常簡單的交互過程中隱藏著很多小交互過程,下面就來一個一個研究一下。

HTTP和HTTPS的區(qū)別

首先,先來掃個盲,平常我們在瀏覽網(wǎng)頁的時候可有很少關注這個網(wǎng)站是使用什么協(xié)議進行交互的,網(wǎng)頁數(shù)據(jù)交互分為兩種方式,一種就叫HTTP,別一種叫HTTPS。這兩種方式我們都統(tǒng)稱是HTTP協(xié)議,但卻各有技術上的不同點。

一般情況下,如果你訪問的網(wǎng)頁不需要你登陸或者并沒有登陸入口的這種網(wǎng)站通常情況下都會使用HTTP,但這不是絕對的,有些網(wǎng)站可能并不是這樣的。那怎么樣的網(wǎng)站才叫使用HTTP協(xié)議的呢?看下圖:

 

這是一個典型的HTTP協(xié)議交互的網(wǎng)站,看圖中標識的位置,在地址欄中的最開始位置,有個“不安全”提示,在URL的最前端也沒有任何標識。除了這種HTTP協(xié)議交互的網(wǎng)站以外呢就是HTTPS交互的網(wǎng)站的,這一類的網(wǎng)站是比較多的。

一般情況下,當這個網(wǎng)站需要登陸或者有登陸入口的,又或者這個網(wǎng)站提供了用戶數(shù)據(jù)的這一類網(wǎng)站通常都是HTTPS的,這類的網(wǎng)站非常多,比如網(wǎng)銀,比如郵箱等,又比如拼客學院官網(wǎng):

 

看地址欄當中,明顯與HTTP協(xié)議交互的網(wǎng)站不一樣,地址欄位置沒有標識不安全,而且在URL的最前面標識了HTTPS://協(xié)議,這就是典型的HTTPS。我剛才說只要有登陸入口或者需要登陸網(wǎng)站基本都是用HTTPS,請注意,這不是絕對,你去看看上面4399小游戲那個網(wǎng)站,也是可以登陸的,這個網(wǎng)站可沒有使用HTTPS協(xié)議哦。

上面介紹了兩個協(xié)議,那這兩個協(xié)議僅僅只是URL不一樣這么簡單嗎?答案肯定不是的,我剛才有提到登陸,有登陸一般是HTTPS,沒有則一般是HTTP。既然關系到登陸,那就一定跟用戶數(shù)據(jù)有關系,那就需要有安全的保證,從上圖HTTP協(xié)議的URL中也看到不安全提示,意思也就是沒有安全的保證,用戶的數(shù)據(jù)有可能會被竊取,因此,HTTPS是安全的,HTTP則是不安全的。

它們的安全性主要體現(xiàn)在你的電腦(客戶端)與目標網(wǎng)站服務器之間,當你去訪問網(wǎng)站時,你的登陸信息,你的個人信息是被加密傳送的,如果在傳送數(shù)據(jù)中間,有黑客獲取了你的數(shù)據(jù)也不擔心,黑客一般無法破解你的信息,這個過程是安全的。而HTTP則不同了,黑客可以不費任何力氣地得到你的信息,看下圖:

 

從上圖看,黑客在網(wǎng)絡中竊取了用戶與Web服務器交互的數(shù)據(jù),但拿到的信息只是亂碼,并不能正常顯示,也沒辦法破解。因此即使用戶發(fā)送的是用戶名密碼這樣的重要信息也不怕被竊取。

 

從上圖來看,使用HTTP協(xié)議來進行傳遞用戶名密碼,黑客在網(wǎng)絡中獲取了交互信息,可以輕松地查看到用戶發(fā)送的用戶名信息,這是一個非常危險的動作,如果你發(fā)送的是銀行卡賬號密碼的話后果將會很嚴重……

從上面兩張圖的對比不難得出結論,HTTPS是加密的,而HTTP是沒有加密的,因此黑客能夠直接查看到用戶名密碼。在實際生活中我們常用的網(wǎng)站基本都是基于HTTPS協(xié)議的,大家也不必感到驚慌,日常使用其實還是很安全的。

關于加密的問題

01 非對稱密鑰算法

在HTTPS協(xié)議中使用RSA加密算法,這種加密算法是一種非對稱加密算法,廣泛用于網(wǎng)頁加密。

非對稱密鑰算法會產(chǎn)生公鑰和私鑰兩種密鑰,一種用于加密,另一種就用于解密,而且兩個密鑰是完全不一樣完全不可相互推導。公鑰是發(fā)送給所有人的,而私鑰是擁有者自己妥善保管的。

它的工作過程是:用戶要把重要的東西加密會用接收者的公鑰對數(shù)據(jù)進行加密,然后將加密后的文件發(fā)送到接收端,接收者接收到加密的文件后用自己的私鑰對其進行解密就能夠得到明文。如下圖所示:

 

明文使用接收方的公鑰對其加密就得到密文了,這個過程就是加密的過程,密文在互聯(lián)網(wǎng)中傳遞時不用擔心被竊取的問題。當密文被傳遞到接收端,接收方再使用自己的私鑰對其解密,這個過程就是解密的過程。

這個方法看似很好用,但實際上并不是這樣的,因為像這樣的非對稱密鑰算法只有夠加密很小小的數(shù)據(jù),超過幾百KB的文件都無法加密或加密需要非常長的時間,實際的應用中數(shù)據(jù)傳遞可不止區(qū)區(qū)幾百KB這么點,因此非對稱密鑰算法只能加密密鑰等數(shù)據(jù)非常小的東西,沒錯,你沒看錯,就是加密密鑰。那實際應用中這么大的數(shù)據(jù)又是怎么加密的?下面就再來講講對稱密鑰算法。

02 對稱密鑰算法

對稱密鑰算法常見的有AES,DES,3DES等,對稱密鑰算法與非對稱密鑰算法不同的是對數(shù)據(jù)進行加密和解密時用同一個密碼,這個密碼是同計算機隨機生成的。對稱密鑰算法的特點是加密速度很快且加密后的密文數(shù)據(jù)與原始的明文數(shù)據(jù)大小相差不會很大,比如加密1K的數(shù)據(jù),加密后的密文可能只有1.1K,因此這種加密算法比較適合加密比較大的文件。

客戶端在發(fā)送數(shù)據(jù)到服務器端的時候會使用AES等對稱密鑰算法對需要加密的數(shù)據(jù)進行加密,加密會產(chǎn)生一個對稱密鑰的密碼,然后再將這個密碼用RSA非對稱密鑰來加密密鑰。

為什么要用RSA來加密密鑰?很顯然嘛,我把數(shù)據(jù)用一把鑰匙加密了,對方想要打開數(shù)據(jù)就必須要用我這把鑰匙才能打開,那我該怎么樣把這把鑰匙安全的送到對方手上?就是通過RSA來傳遞。

HTTPS是如何完整地并且安全地傳遞用戶數(shù)據(jù)的

下面就來看看它的加密與解密過程:

1.用戶發(fā)送請求到服務器,服務器接收到以后回應相應的請求信息(在這個回應信息里面服務器會帶上證書和一個服務器的公鑰)。

2.客戶端拿到證書后會先判斷一下這個證書的有效性(其實證書的作用是服務器向你表明身份,讓你知道現(xiàn)在回應你WEB信息的正是你要訪問的那個服務器)。

3.客戶端將要發(fā)送的數(shù)據(jù)先用對稱密鑰算法對其先加密,產(chǎn)生的密文先放一邊。

4.拿剛才加密產(chǎn)生的密文用剛才服務器發(fā)送過來的公鑰對這個密文加密,產(chǎn)生加密后的密碼。

5.把這個加過密的密碼與剛才使用對稱密鑰算法加密后的密文一起打包發(fā)給服務器。

6.服務器接收到這些東西以后首先拿出加過密的密碼,用自己的私鑰對其解密,得出密文,再對這個密文使用對稱密鑰算法進行解密,這樣,服務器就收到了客戶端發(fā)送的數(shù)據(jù)了。

過程如下圖:

 

如上加密過程可以保證數(shù)據(jù)的安全性,這是一個經(jīng)典的數(shù)據(jù)加密通信的過程,這種解決方案在很多地方都有用到,不同的僅僅是加密算法的差異。

責任編輯:武曉燕 來源: 拼客學院
相關推薦

2020-06-17 21:39:11

HTTP協(xié)議服務器

2010-06-29 13:24:26

HTTP協(xié)議

2010-06-29 13:35:39

HTTP協(xié)議

2010-06-21 14:09:33

Bittorrent協(xié)

2010-06-29 13:18:31

HTTP協(xié)議

2010-05-24 18:22:56

SNMP協(xié)議

2021-08-03 14:29:30

ARPANET互聯(lián)網(wǎng)協(xié)議TCP

2010-08-02 16:56:03

ICMP協(xié)議

2014-10-22 09:36:41

TCPIP

2018-01-30 10:34:24

爬蟲HTTP過程

2018-01-12 17:03:29

HTTPgzip壓縮

2019-12-13 09:14:35

HTTP2協(xié)議

2017-05-26 10:35:13

前端HTTP

2021-03-05 11:20:24

HTTPWebshellWeb服務器

2015-10-09 15:07:02

HTTP網(wǎng)絡協(xié)議

2021-07-27 14:50:15

axiosHTTP前端

2021-07-23 15:55:31

HTTPETag前端

2021-05-26 05:18:51

HTTP ETag Entity Tag

2015-09-15 13:48:01

網(wǎng)絡協(xié)議HTTP Client

2010-06-28 10:35:18

Bittorrent協(xié)
點贊
收藏

51CTO技術棧公眾號