App下載

什么是HTTPS?HTTP 與 HTTPS 的含義及其工作原理

閃耀旳白夢(mèng) 2021-08-24 14:49:56 瀏覽數(shù) (11716)
反饋

您是否注意到瀏覽器中 URL 開頭的“HTTP”或“HTTPS”?那么,什么是 HTTP,什么是 HTTPS?它們有何不同?為了理解差異,有助于消除這兩個(gè)術(shù)語(yǔ)的含義并了解它們各自的工作原理。今天小編就來(lái)介紹這兩個(gè)協(xié)議。

什么是 HTTP?

HTTP代表HyperText Transfer Protocol,是萬(wàn)維網(wǎng)的基礎(chǔ)。沒有它,Web 就不會(huì)是今天的樣子。

默認(rèn)情況下,HTTP URL 以http://?開頭并默認(rèn)使用 80 端口。

名稱中的超文本部分表示涉及文檔或文件。這些可以包含文本、圖像、圖形、視頻或任何其他媒體。

此外,它們可能包含指向其他文檔或文件的鏈接以供交叉引用,您可以在使用鼠標(biāo)或觸摸板單擊鏈接或在手機(jī)屏幕上觸摸鏈接后輕松訪問這些鏈接。

名稱中的傳輸部分意味著文件可以通過(guò)萬(wàn)維網(wǎng)從一個(gè)聯(lián)網(wǎng)設(shè)備移動(dòng)到另一個(gè)。

該協(xié)議的一部分手段,它由一套管理設(shè)備如何能夠利用互聯(lián)網(wǎng)的計(jì)算機(jī)規(guī)則。它還告訴他們當(dāng)與許多其他設(shè)備遠(yuǎn)距離連接時(shí),他們?nèi)绾问褂没ヂ?lián)網(wǎng)作為通信媒介。

HTTP 建立在 TCP/IP 網(wǎng)絡(luò)協(xié)議套件之上和協(xié)議棧中的其他層之上。

TCP/IP 是一組標(biāo)準(zhǔn)化的規(guī)則,用于允許瀏覽器和服務(wù)器通過(guò) Internet 進(jìn)行通信。畢竟,萬(wàn)維網(wǎng)就是瀏覽器和服務(wù)器之間的通信。

具體來(lái)說(shuō),HTTP 是一種應(yīng)用層協(xié)議,是用于 Web 客戶端和 Web 服務(wù)器之間通信和數(shù)據(jù)傳輸?shù)闹饕獏f(xié)議。

簡(jiǎn)而言之,HTTP 是一套關(guān)于如何通過(guò)網(wǎng)絡(luò)傳輸超文本文件和各種信息的規(guī)則和標(biāo)準(zhǔn)。這就是瀏覽器和服務(wù)器通信的方式。

一個(gè)典型的 HTTP 請(qǐng)求和響應(yīng)流程

當(dāng)瀏覽器想要連接到網(wǎng)站時(shí)使用 HTTP。

它們通過(guò)發(fā)送 HTTP 請(qǐng)求和接收 HTTP 響應(yīng)進(jìn)行通信。這被稱為客戶端計(jì)算機(jī) - Web 服務(wù)器計(jì)算模型中的請(qǐng)求 - 響應(yīng)周期。

Screenshot-2021-08-11-at-3.17.23-PM

客戶端(通常是 Google Chrome、Mozilla Firefox 或 Apple Safari 等 Web 瀏覽器)發(fā)出請(qǐng)求。它通過(guò)在瀏覽器頂部的地址欄中輸入一個(gè)像?W3Cschool.cn?這樣人性化的 URL(統(tǒng)一資源定位器)來(lái)實(shí)現(xiàn)這一點(diǎn)。

該域名,?W3Cschool.cn?根據(jù)IP地址與域名系統(tǒng)(DNS)被映射到響應(yīng)的服務(wù)器上。

然后 Web 瀏覽器連接到服務(wù)器并發(fā)出 HTTP請(qǐng)求,請(qǐng)求它需要接收以加載網(wǎng)頁(yè)的信息。

HTTP 請(qǐng)求可能如下所示:

GET / HTTP/1.1
Host: www.freecodecamp.org

它包括:

  • 一種 HTTP 方法,通常稱為 HTTP 動(dòng)詞,如?GET?. 這個(gè)特定的動(dòng)詞用于獲取信息。另一個(gè)常見的動(dòng)詞是POST,當(dāng)客戶端以表單提交數(shù)據(jù)時(shí)使用。動(dòng)詞指定瀏覽器期望從服務(wù)器執(zhí)行的操作。
  • 路徑,這在我們的例子是/,在根路徑。服務(wù)器存儲(chǔ)構(gòu)成網(wǎng)站的所有文件,因此請(qǐng)求需要指定瀏覽器請(qǐng)求加載的部分。
  • HTTP 類型及其版本。
  • URL 的域名。

然后 Web 服務(wù)器接收請(qǐng)求并通過(guò)查找請(qǐng)求的數(shù)據(jù)來(lái)處理它。

服務(wù)器是一臺(tái)不同于我們?nèi)粘J褂玫挠?jì)算機(jī)。它的唯一目的是存儲(chǔ)數(shù)據(jù)和文件,并在需要時(shí)檢索和分發(fā)它們。

服務(wù)器向?yàn)g覽器返回一條消息或 HTTP響應(yīng)。

響應(yīng)示例如下:? HTTP/1.1 200 OK?

  • 首先從協(xié)議和版本開始 HTTP/1.1
  • 接下來(lái)是 HTTP狀態(tài)代碼,一個(gè) 3 位數(shù)字,在本例中為200。它指示 HTTP 請(qǐng)求是否已完成。以 開頭的狀態(tài)代碼2表示成功并且請(qǐng)求已成功完成。以 開頭的狀態(tài)代碼4,例如404,表示客戶端錯(cuò)誤(例如在 URL 中輸入錯(cuò)誤),因此該頁(yè)面不會(huì)顯示在瀏覽器中。以 開頭的狀態(tài)代碼5意味著服務(wù)器端錯(cuò)誤,并且該頁(yè)面再次未顯示在瀏覽器中。
  • 接下來(lái)是狀態(tài)文本,人類可讀的文本,它總結(jié)了狀態(tài)代碼的含義。在這種情況下,它是“OK”,意味著成功檢索到請(qǐng)求的文檔。

HTTP 響應(yīng)還包括可能如下所示的標(biāo)頭:

date: Thu, 12 Aug 2021 12:07:16 GMT
server: cloudflare
content-type: text/html; charset=utf-8

標(biāo)頭包括有關(guān)發(fā)回的內(nèi)容類型的重要信息,例如語(yǔ)言、格式和發(fā)送響應(yīng)的時(shí)間。

最后,對(duì)“GET”請(qǐng)求的響應(yīng)包括可選的HTTP body。這包含請(qǐng)求的信息,例如構(gòu)成網(wǎng)站的 HTML/CSS/JavaScript 文件。

然后瀏覽器接收響應(yīng),呈現(xiàn)頁(yè)面,并關(guān)閉連接。

每次它需要在頁(yè)面上加載一個(gè)新元素(如不同的樣式或圖像或視頻)時(shí),它將開始一個(gè)新的連接,整個(gè)過(guò)程再次重復(fù)。

HTTP 的限制

HTTP 由于其簡(jiǎn)單性而很快,但它在交換數(shù)據(jù)時(shí)不提供安全性。這是因?yàn)樗袛?shù)據(jù)都以純文本形式傳輸 ,根本沒有加密。

在傳輸過(guò)程中,超文本數(shù)據(jù)被分解成“數(shù)據(jù)包”,任何在瀏覽器和服務(wù)器之間擁有正確工具、技能和知識(shí)的人都可以輕松查看和竊取正在傳輸?shù)男畔ⅰ?/p>

這意味著用戶名、密碼和敏感信息有被攻擊者訪問的風(fēng)險(xiǎn),同時(shí)注入病毒的風(fēng)險(xiǎn)很高。

這意味著 HTTP 不是安全或私有的媒介,導(dǎo)致用戶感到不安全。

HTTP 對(duì)于某些網(wǎng)站(如博客)是安全的,但您不應(yīng)通過(guò) HTTP 連接提交任何信用卡或其他個(gè)人信息。

什么是HTTPS?

HTTPS代表HyperText Transfer Protocol Secur。

默認(rèn)情況下,HTTPS URL 以?https://?開頭并默認(rèn)使用 443端口。

它不是一個(gè)獨(dú)立于 HTTP 的協(xié)議,但它是它的更安全和機(jī)密的版本。這是在瀏覽器和服務(wù)器之間傳輸數(shù)據(jù)的最安全方式。

現(xiàn)在大多數(shù)網(wǎng)站都使用 HTTPS 而非 HTTP。因此,在提交任何敏感信息(例如登錄您的銀行帳戶和進(jìn)行金融交易)之前,請(qǐng)始終確保該站點(diǎn)使用 HTTPS。

您可以通過(guò)地址欄左側(cè)的鎖定圖標(biāo)來(lái)判斷站點(diǎn)是否安全并具有 HTTPS 連接:



與在應(yīng)用層工作的 HTTP 不同,HTTPS 在傳輸層工作。

HTTPS 是如何工作的?

通過(guò) HTTPS 連接發(fā)送的每個(gè)數(shù)據(jù)包都使用加密協(xié)議(例如 TLS 或 SSL)在 HTTP 之上進(jìn)行加密和安全。

傳輸層安全 (TLS),以前稱為安全套接字層 (SSL),是用于加密通信的協(xié)議。它是更新、更安全的 SSL 版本。

TLS 提供針對(duì)攻擊的安全性,其三個(gè)主要目標(biāo)是身份驗(yàn)證、隱私和整體安全。

TLS 通過(guò)使用非對(duì)稱密鑰算法公鑰基礎(chǔ)設(shè)施 (PKI) 來(lái)保護(hù)通信。該系統(tǒng)使用兩個(gè)唯一相關(guān)的密鑰來(lái)加密和解密敏感信息,從而實(shí)現(xiàn)互聯(lián)網(wǎng)上的安全通信。

兩個(gè)密鑰結(jié)合使用,通過(guò)這種方式 TLS 在發(fā)送方和接收方之間創(chuàng)建鏈接。它確保雙方都被識(shí)別出來(lái),并且確實(shí)是他們所說(shuō)的那樣。

首先,你必須將公共密鑰。它可以公開查看,并且可以與每個(gè)人以及任何想要與該站點(diǎn)進(jìn)行交互的人共享。

此密鑰用于將明文轉(zhuǎn)為密文,對(duì)數(shù)據(jù)進(jìn)行加密,并作為鎖對(duì)數(shù)據(jù)進(jìn)行加密。它還確認(rèn)私鑰的所有者。向?yàn)g覽器分發(fā)公鑰是通過(guò)證書完成的。

然后,每個(gè)公鑰都有一個(gè)唯一的私鑰,它們成對(duì)工作。您使用此密鑰解密信息。用公鑰加密的數(shù)據(jù)只能用對(duì)應(yīng)的唯一私鑰解密。

正是這個(gè)獨(dú)特的私鑰解鎖了鎖并解密了數(shù)據(jù)。私鑰還確認(rèn)信息是您的。此密鑰保密、存儲(chǔ)且僅對(duì)其所有者可用。

在傳輸任何實(shí)際數(shù)據(jù)之前,已建立安全連接并交換證書。

客戶端輸入他們想要訪問的網(wǎng)頁(yè)的 URL。網(wǎng)頁(yè)的服務(wù)器通過(guò)包含公鑰的 TLS 或 SSL 證書發(fā)送以啟動(dòng)連接??蛻舳撕头?wù)器經(jīng)過(guò)多次來(lái)回(稱為 TLS/SSL 握手),直到建立安全會(huì)話。

結(jié)論

在本文中,我們了解了 HTTPS 是什么、它是如何工作的以及它與 HTTP 有何不同(并且更安全)。

概括地說(shuō),HTTPS 是 HTTP 的安全版本,HTTP 是通過(guò) Web 發(fā)送超文本的基本網(wǎng)絡(luò)協(xié)議。

在 HTTPS 中有額外的安全步驟,例如 TSL/SSL 證書和 TSL/SSL 握手。

它為用戶和數(shù)據(jù)提供身份驗(yàn)證,確保交易保密(數(shù)據(jù)完整性是優(yōu)先事項(xiàng)),而不必?fù)?dān)心在客戶端 - 服務(wù)器通信期間發(fā)生數(shù)據(jù)泄露。

消息和交易的內(nèi)容只能由發(fā)送者和預(yù)期接收者查看。



0 人點(diǎn)贊