HTTP 和 HTTPS 的異同
什麼是 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 加密連線,如果沒有,那麼請不要輸入任何敏感資訊如信用卡號。
瀏覽器整合
多數瀏覽器在收到一個無效證書的時候都會顯示警告資訊,而一些老的瀏覽器會彈出對話方塊讓使用者選擇是否繼續瀏覽。新的瀏覽器一般在整個視窗顯示橫幅的警告資訊,同時在位址列上顯示該網站的安全資訊。如果網站中包含加密和非加密的混合內容,多數瀏覽器會提示警告資訊。
相關文章
- HTTP協議和HTTPS協議的異同點?HTTP協議
- 應用同時支援HTTP和HTTPSHTTP
- Nginx配置域名同時支援 https 和 http 訪問NginxHTTP
- AFN框架 之同時相容Http和Https通訊配置框架HTTP
- HTTP 和 HTTPSHTTP
- HTTPS和HTTPHTTP
- HTTP和HTTPSHTTP
- http和https的區別?HTTP
- HTTPS和HTTP的區別HTTP
- HTTPS 和 HTTP 的區別HTTP
- HTTPS 和HTTP的介紹HTTP
- http和https的區別HTTP
- dependencies 和 devDependencies 的異同dev
- 什麼是HTTP? HTTP 和 HTTPS 的區別?HTTP
- HTTPS 和 HTTP 的主要區別HTTP
- [深入17] HTTP 和 HTTPSHTTP
- HTTP和HTTPS協議HTTP協議
- HTTP和HTTPS詳解HTTP
- HTTP和HTTPS詳解。HTTP
- HTTP和HTTPS的區別有哪些?HTTP
- kubernets Traefik 的HTTP 和HTTPSHTTP
- HTTP1.0,HTTP1.1,HTTPS和HTTP2.0的區別HTTP
- 全面瞭解HTTP和HTTPSHTTP
- Web前端和後端的異同Web前端後端
- 前端面試http和https的區別前端面試HTTP
- nginx的https和http共存反向代理配置NginxHTTP
- workman 和swoole 區別 和異同
- http和https的區別/get和post的區別HTTP
- 當Notification和Websocket遇到https、httpWebHTTP
- HTTP和HTTPS有哪些區別?HTTP
- 爬蟲入門(HTTP和HTTPS)爬蟲HTTP
- 前端和後端開發的異同前端後端
- windows dll 和 Linux so 的異同WindowsLinux
- 策略模式和模板方法模式的異同模式
- 深入理解http1.x、http 2和httpsHTTP
- Swift中Class和Struct異同SwiftStruct
- http,https, http2.0HTTP
- HTTP和HTTPS有什麼主要的區別?HTTP