在我們深入了解 HTTP 和 HTTPS 協(xié)議之前,我們先理解“協(xié)議”這個詞的含義。
協(xié)議是我們用于特定目的的一組規(guī)則。在當前情況下,當我們談論協(xié)議時,它指的是溝通,我們彼此交談的方式。例如,新聞聯(lián)播主播說話,因為他說的是中文,我們能夠理解它,協(xié)議是中文。當新聞主播開始用我們聽不懂的語言說話時,這時我們就需要雙方同意一套規(guī)則才能進行溝通,就是雙方達成一種協(xié)議。
現(xiàn)在網(wǎng)絡可以使用多種協(xié)議進行通信。但是對于最終用戶而言,最重要和可見的協(xié)議是 HTTP 和 HTTPS。盡管還有許多其他協(xié)議,但 HTTP 和 HTTPS 是適合大多數(shù)人的協(xié)議,并且在網(wǎng)址中很容易看到。
現(xiàn)在,HTTP 意味著什么?
HTTP 代表超文本傳輸協(xié)議。簡而言之 - 這些是發(fā)送和接收基于文本的消息的規(guī)則。眾所周知,計算機以 1 和 0 的語言(即二進制)工作。因此,每組 1 和 0 都可能構成某種東西——它可能是一個單詞。
假設我想寫“a”。現(xiàn)在,如果 0 代表“a”,1 代表“b”,01 代表“c”,我可以推斷 0 和 1 的組合也可以構造一個單詞。在本例中,文本已構建完畢并正在通過網(wǎng)絡發(fā)送。計算機使用多種語言工作——純二進制、文本和一些其他格式,如字節(jié)碼。這里,傳輸?shù)氖俏谋?。我強調“文本”是因為這個文本是由瀏覽器解釋的,瀏覽器解釋它的那一刻,它就變成了超文本,而傳輸文本的協(xié)議稱為超文本傳輸協(xié)議——HTTP 。
使用HTTP,可以傳輸圖像、文本,甚至聲音,但不能傳輸視頻。
為什么選擇 HTTPS 協(xié)議?HTTP 似乎就足夠了
從一個點傳輸?shù)搅硪粋€點的內容通常是文本。要了解為什么需要 HTTPS 協(xié)議,我們首先了解一下 WIFI 路由器的工作原理。
假設您在機場并且正在連接第三方的 WiFi?,F(xiàn)在,當您通過 HTTP 進行通信時,文本將由其路由器傳輸。如果我使用低版本的路由器,我可以輕松地檢查和閱讀正在傳輸?shù)奈谋尽N铱赡軙褂靡粋€密碼來登錄您的銀行網(wǎng)站并進行欺詐交易!重點是—這從根本上來說是不安全的。這就是中間人攻擊。
現(xiàn)在,為了保護我們的數(shù)據(jù)免受此類攻擊,我們需要加密該數(shù)據(jù)。
加密和加密級別
簡單來說,加密就是隱藏信息,有多種方法可以實現(xiàn)這一點。您一定聽說過這些術語——128 位加密 HTTPS和64 位加密 HTTPS。128位加密是一種高級加密技術,解密(解碼)非常困難。在 HTTPS 的情況下,當數(shù)據(jù)在網(wǎng)絡上傳輸時,中間人可能仍然知道正在傳輸?shù)膬热?,但無法理解它,因為數(shù)據(jù)是加密的。只有瀏覽器會解密并顯示它,服務器會解密并使用它進行交易。
當請求通過瀏覽器打開網(wǎng)站時,是如何工作的
為了理解這一點,我們假設有一臺服務器位于某處,為一個域的所有請求提供服務?,F(xiàn)在,當我輸入 zxy.com 時,它是我正在連接的服務器,從中獲取數(shù)據(jù)并在瀏覽器中呈現(xiàn)它。
為了進一步簡化,想象一下從一臺服務器廣播域名 baidu.com。在某個地方有一臺機器連接到互聯(lián)網(wǎng),當您在瀏覽器中輸入 baidu.com 時,您就會連接到該服務器,從該機器獲取數(shù)據(jù),并將其顯示在瀏覽器中。如果您將圖片保存在那里,它就會上傳到該服務器?,F(xiàn)在,如果您想查看該圖片,請訪問
baidu.com/show-me-my-picture,它將圖片從機器傳輸?shù)綖g覽器以顯示給您。
當請求使用 HTTP 協(xié)議的網(wǎng)站時會發(fā)生什么
第一步,HTTP 的工作是找到服務器,一旦建立通信路由,服務器就會向瀏覽器發(fā)送文本。該文本可以是純文本形式,也可以是加密形式,然后由瀏覽器呈現(xiàn)或用于其預期的任何目的。
要確定加密消息的解密難度,可以查看位數(shù)。數(shù)字越大,解密就越困難。然而,它只會增加復雜性,使得解密變得非常困難,但并非不可能。
在 HTTP 和 HTTPS 之間做出選擇
如果您正在搜索“如何安裝 SSL 證書”,該搜索對您來說是私密的。無論您是在瀏覽、尋找產(chǎn)品還是閱讀文章,您通常都不希望被其他人知道。作為最終用戶,我希望將這些活動保密。有些事情我可能不想保密,對于這些,我可以使用 HTTP。然而,對于個人信息、銀行和跨國信息來說,HTTPS 已成為一種標準。
HTTPS 看起來不錯,還應該了解什么?
不可否認,加密是有代價的。有幾個缺點:
HTTPS 請求需要更多時間來處理。
因為它們需要更多的時間來處理,所以需要更多的硬件——您正在使用的服務器。這也意味著額外的成本。
然而,與 HTTPS 相比,HTTP 使用的能源更少,因為通信速度更快(無需加密和解密),我不會將此視為 HTTPS 的限制 。改變是非常主觀的,我個人認為我們?yōu)榇_保隱私而付出的成本非常低。
不用HTTPS,會有什么問題?
以下是目前僅在 HTTPS 上可用的一些功能。
地理位置:如果您使用 HTTP,則無法再查找用戶的位置。
Web 推送通知:推送通知僅在 HTTPS 上可用。
GetUserMedia:如果您使用 HTTP,則無法再觸發(fā)使用用戶攝像頭/麥克風的權限。
HTTP/2:所有主流瀏覽器現(xiàn)在都支持 HTTPS 的 HTTP/2
一些常見問題:
使用 HTTPS 會影響網(wǎng)站的加載時間嗎?
是的
為什么網(wǎng)絡推送通知需要 SSL
網(wǎng)絡推送通知已經(jīng)出現(xiàn)一段時間了,并且只能在使用 HTTPS 協(xié)議的網(wǎng)站上運行。在回答這個問題之前,讓我們先了解一下 HTTP 和 HTTPS 之間的共同點…
在編寫協(xié)議書時,提到 HTTP 是一種無連接協(xié)議。這意味著位于數(shù)據(jù)中心的服務器在瀏覽器提出/發(fā)出請求之前無法執(zhí)行任何操作。一旦給出響應,瀏覽器將決定是否要對此執(zhí)行某些操作。這完全是瀏覽器的決定,服務器不能命令瀏覽器采取行動。隨機服務器控制您的瀏覽器或屏幕/機器的想法是可怕的。為了防止這種可能性,HTTP 仍然是無連接協(xié)議。
但是,發(fā)送到服務器和從服務器發(fā)送的消息仍然可以被解密。Web推送通知只能在HTTPS協(xié)議上工作的原因是推送和接收的數(shù)據(jù)是私有數(shù)據(jù)。為了保證隱私,僅支持HTTPS協(xié)議。通知對于用戶來說基本上是個人的。我們肯定希望這種通信是安全的。
結論
這可能很明顯,但如果我今天必須決定使用哪個協(xié)議,想訪問現(xiàn)代網(wǎng)絡的所有最新功能,我肯定會選擇 HTTPS,當然還要保證您的用戶和您自己的安全。