HTTP和HTTPS異同

原文地址:http://www.oschina.net/question/12_51314

什麼是 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 包含如下動作:

1. 瀏覽器打開一個 TCP 連接
2. 瀏覽器發送 HTTP 請求到服務器端
3. 服務器發送 HTTP 迴應信息到瀏覽器
4. TCP 連接關閉

SSL 包含如下動作:

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

什麼時候該使用 HTTPS?

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

PayPal: https://www.paypal.com

Google AdSense: https://www.google.com/adsense/

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

瀏覽器集成

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章