HTTPS和HTTP的區別

什麼是 HTTPS?

HTTPS (基於安全套接字層的超文本傳輸協議 或者是 HTTP over SSL) 是一個 Netscape 開發的 Web 協議。

你也可以說:HTTPS = HTTP + SSL

HTTPS 在 HTTP 應用層的基礎上使用安全套接字層作爲子層

爲什麼需要 HTTPS ?

超文本傳輸協議 (HTTP) 是一個用來通過互聯網傳輸和接收信息的協議。HTTP 使用請求/響應的過程,因此信息可在服務器間快速、輕鬆而且精確的進行傳輸。當你訪問 Web 頁面的時候你就是在使用 HTTP 協議,但 HTTP 是不安全的,可以輕鬆對竊聽你跟 Web 服務器之間的數據傳輸。在很多情況下,客戶和服務器之間傳輸的是敏感歇息,需要防止未經授權的訪問。爲了滿足這個要求,網景公司(Netscape)推出了HTTPS,也就是基於安全套接字層的 HTTP 協議。

HTTP 和 HTTPS 的相同點

大多數情況下,HTTP 和 HTTPS 是相同的,因爲都是採用同一個基礎的協議,作爲 HTTP 或 HTTPS 客戶端——瀏覽器,設立一個連接到 Web 服務器指定的端口。當服務器接收到請求,它會返回一個狀態碼以及消息,這個迴應可能是請求信息、或者指示某個錯誤發送的錯誤信息。系統使用統一資源定位器 URI 模式,因此資源可以被唯一指定。而 HTTPS 和 HTTP 唯一不同的只是一個協議頭(https)的說明,其他都是一樣的。

HTTP 和 HTTPS 的不同之處

1,HTTP 的 URL 以 http:// 開頭,而 HTTPS 的 URL 以 https:// 開頭

2,HTTP 是不安全的,而 HTTPS 是安全的

3,HTTP 標準端口是 80 ,而 HTTPS 的標準端口是 443,

4,在 OSI 網絡模型中,HTTP 工作於應用層,而 HTTPS 工作在傳輸層

5,HTTP 無需加密,而 HTTPS 對傳輸的數據進行加密,

6,HTTP 無需證書,而 HTTPS 需要認證證書

HTTPS 如何工作?

使用 HTTPS 連接時,服務器要求有公鑰和簽名的證書。

當使用 https 連接,服務器響應初始連接,並提供它所支持的加密方法。作爲迴應,客戶端選擇一個連接方法,並且客戶端和服務器端交換證書驗證彼此身份。完成之後,在確保使用相同密鑰的情況下傳輸加密信息,然後關閉連接。爲了提供 https 連接支持,服務器必須有一個公鑰證書,該證書包含經過證書機構認證的密鑰信息,大部分證書都是通過第三方機構授權的,以保證證書是安全的。

換句話說,HTTPS 跟 HTTP 一樣,只不過增加了 SSL。

HTTP 包含如下動作:

瀏覽器打開一個 TCP 連接
瀏覽器發送 HTTP 請求到服務器端
服務器發送 HTTP 迴應信息到瀏覽器
TCP 連接關閉
SSL 包含如下動作:

驗證服務器端
允許客戶端和服務器端選擇加密算法和密碼
,確保雙方都支持
驗證客戶端(可選)
使用公鑰加密技術來生成共享加密數據
創建一個加密的 SSL 連接
基於該 SSL 連接傳遞 HTTP 請求


什麼時候該使用 HTTPS?


銀行網站、支付網關、購物網站、登錄頁、電子郵件以及一些企業部門的網站應該使用 HTTPS,例如:


PayPal: https://www.paypal.com
Google AdSense: https://www.google.com/adsense/
如果某個網站要求你填寫信用卡信息,首先你要檢查該網頁是否使用 https 加密連接,如果沒有,那麼請不要輸入任何敏感信息如信用卡號。

瀏覽器集成

多數瀏覽器在收到一個無效證書的時候都會顯示警告信息,而一些老的瀏覽器會彈出對話框讓用戶選擇是否繼續瀏覽。新的瀏覽器一般在整個窗口顯示橫幅的警告信息,同時在地址欄上顯示該網站的安全信息。如果網站中包含加密和非加密的混合內容,多數瀏覽器會提示警告信息。

=======================================================

在URL前加https://前綴表明是用SSL加密的。你的電腦與服務器之間收發的信息傳輸將更加安全。 Web服務器啓用SSL需要獲得一個服務器證書並將該證書與要使用SSL的服務器綁定。 http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,後者是443。

HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議
要比http協議安全

HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協議
它是一個安全通信通道,它基於HTTP開發,用於在客戶計算機和服務器之間交換信息。它使用安全套接字層(SSL)進行信息交換,簡單來說它是HTTP的安全版。
它是由Netscape開發並內置於其瀏覽器中,用於對數據進行壓縮和解壓操作,並返回網絡上傳送回的結果。HTTPS實際上應用了Netscape的安全全套接字層(SSL)作爲HTTP應用層的子層。(HTTPS使用端口443,而不是象HTTP那樣使用端口80來和TCP/IP進行通信。)SSL使用40 位關鍵字作爲RC4流加密算法,這對於商業信息的加密是合適的。HTTPS和SSL支持使用X.509數字認證,如果需要的話用戶可以確認發送者是誰。
HTTPS和HTTP的區別:
https協議需要到ca申請證書,一般免費證書很少,需要交費。
http是超文本傳輸協議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協議
http和https使用的是完全不同的連接方式用的端口也不一樣,前者是80,後者是443。
http的連接很簡單,是無狀態的
HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議 要比http協議安全
HTTPS解決的問題:
1 . 信任主機的問題. 採用https 的server 必須從CA 申請一個用於證明服務器用途類型的證書. 改證書只有用於對應的server 的時候,客戶度纔信任次主機. 所以目前所有的銀行系統網站,關鍵部分應用都是https 的. 客戶通過信任該證書,從而信任了該主機. 其實這樣做效率很低,但是銀行更側重安全. 這一點對我們沒有任何意義,我們的server ,採用的證書不管自己issue 還是從公衆的地方issue, 客戶端都是自己人,所以我們也就肯定信任該server.
2 . 通訊過程中的數據的泄密和被竄改
1. 一般意義上的https, 就是 server 有一個證書.
a) 主要目的是保證server 就是他聲稱的server. 這個跟第一點一樣.
b) 服務端和客戶端之間的所有通訊,都是加密的.
i. 具體講,是客戶端產生一個對稱的密鑰,通過server 的證書來交換密鑰. 一般意義上的握手過程.
ii. 加下來所有的信息往來就都是加密的. 第三方即使截獲,也沒有任何意義.因爲他沒有密鑰. 當然竄改也就沒有什麼意義了.
2. 少許對客戶端有要求的情況下,會要求客戶端也必須有一個證書.
a) 這裏客戶端證書,其實就類似表示個人信息的時候,除了用戶名/密碼, 還有一個CA 認證過的身份. 應爲個人證書一般來說上別人無法模擬的,所有這樣能夠更深的確認自己的身份.
b) 目前少數個人銀行的專業版是這種做法,具體證書可能是拿U盤作爲一個備份的載體.
HTTPS 一定是繁瑣的.
a) 本來簡單的http協議,一個get一個response. 由於https 要還密鑰和確認加密算法的需要.單握手就需要6/7 個往返.
i. 任何應用中,過多的round trip 肯定影響性能.
b) 接下來纔是具體的http協議,每一次響應或者請求, 都要求客戶端和服務端對會話的內容做加密/解密.
i. 儘管對稱加密/解密效率比較高,可是仍然要消耗過多的CPU,爲此有專門的SSL 芯片. 如果CPU 信能比較低的話,肯定會降低性能,從而不能serve 更多的請求.
ii. 加密後數據量的影響. 所以,纔會出現那麼多的安全認證提示
發佈了288 篇原創文章 · 獲贊 320 · 訪問量 91萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章