http與https的區別

2021-08-09 23:59:30 字數 3185 閱讀 2891

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 的不同之處

http 的 url 以 http:// 開頭,而 https 的 url 以 https:// 開頭

http 是不安全的,而 https 是安全的

http 標準埠是 80 ,而 https 的標準埠是 443

在 osi 網路模型中,http 工作於應用層,而 https 工作在傳輸層

http 無需加密,而 https 對傳輸的資料進行加密

http 無需證書,而 https 需要認證證書

https 如何工作?

使用 https 連線時,伺服器要求有公鑰和簽名的證書。

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

換句話說,https 跟 http 一樣,只不過增加了 ssl。

http 包含如下動作:

瀏覽器開啟乙個 tcp 連線

瀏覽器傳送 http 請求到伺服器端

伺服器傳送 http 回應資訊到瀏覽器

tcp 連線關閉

ssl 包含如下動作:

驗證伺服器端

允許客戶端和伺服器端選擇加密演算法和密碼,確保雙方都支援

驗證客戶端(可選)

使用公鑰加密技術來生成共享加密資料

建立乙個加密的 ssl 連線

基於該 ssl 連線傳遞 http 請求

什麼時候該使用 https?

銀行**、支付閘道器、購物**、登入頁、電子郵件以及一些企業部門的**應該使用 https,例如:

paypal:

google adsense:

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

瀏覽器整合

多數瀏覽器在收到乙個無效證書的時候都會顯示警告資訊,而一些老的瀏覽器會彈出對話方塊讓使用者選擇是否繼續瀏覽。新的瀏覽器一般在整個視窗顯示橫幅的警告資訊,同時在位址列上顯示該**的安全資訊。如果**中包含加密和非加密的混合內容,多數瀏覽器會提示警告資訊。

在url前加https://字首表明是用ssl加密的。你的電腦與伺服器之間收發的資訊傳輸將更加安全。 web伺服器啟用ssl需要獲得乙個伺服器證書並將該證書與要使用ssl的伺服器繫結。 http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。

https的優點

儘管https並非絕對安全,掌握根證書的機構、掌握加密演算法的組織同樣可以進行中間人形式的攻擊,但https仍是現行架構下最安全的解決方案,主要有以下幾個好處:

(1)使用https協議可認證使用者和伺服器,確保資料傳送到正確的客戶機和伺服器;

(2)https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,要比http協議安全,可防止資料在傳輸過程中不被竊取、改變,確保資料的完整性。

(3)https是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。

(4)谷歌曾在2023年8月份調整搜尋引擎演算法,並稱「比起同等http**,採用https加密的**在搜尋結果中的排名將會更高」。

https的缺點

雖然說https有很大的優勢,但其相對來說,還是存在不足之處的:

(1)https協議握手階段比較費時,會使頁面的載入時間延長近50%,增加10%到20%的耗電;

(2)https連線快取不如http高效,會增加資料開銷和功耗,甚至已有的安全措施也會因此而受到影響;

(3)ssl證書需要錢,功能越強大的證書費用越高,個人**、小**沒有必要一般不會用。

(4)ssl證書通常需要繫結ip,不能在同一ip上繫結多個網域名稱,ipv4資源不可能支撐這個消耗。

(5)https協議的加密範圍也比較有限,在黑客攻擊、拒絕服務攻擊、伺服器劫持等方面幾乎起不到什麼作用。最關鍵的,ssl證書的信用鏈體系並不安全,特別是在某些國家可以控制ca根證書的情況下,中間人攻擊一樣可行。

http切換到https

如果需要將**從http切換到https到底該如何實現呢?

這裡需要將頁面中所有的鏈結,例如js,css,等等鏈結都由http改為https。例如:改為

btw,這裡雖然將http切換為了https,還是建議保留http。所以我們在切換的時候可以做http和https的相容,具體實現方式是,去掉頁面鏈結中的http頭部,這樣可以自動匹配http頭和https頭。例如:將改為然後當使用者從http的入口進入訪問頁面時,頁面就是http,如果使用者是從https的入口進入訪問頁面,頁面即使https的。

http 與 https 的區別

https secure hypertext transfer protocol 安全超文字傳輸協議 它是乙個安全通訊通道,它基於http開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層 ssl 進行資訊交換,簡單來說它是http的安全版。它是由netscape開發並內置於其瀏覽器中,...

HTTPS與HTTP的區別

最近學習網路相關的知識,看到https和http,兩個有區別,於是在網上找了相關的資料,放在自己的部落格,作為學習筆記吧。ssl介紹 ssl secure socket layer 為netscape所研發,用以保障在internet上資料傳輸之安全,利用 資料加密 encryption 技術,可確...

http與https的區別

在url前加https 字首表明是用ssl加密的。你的電腦與伺服器之間收發的資訊傳輸將更加安全。web伺服器啟用ssl需要獲得乙個伺服器證書並將該證書與要使用ssl的伺服器繫結。http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443 https協議是由ssl htt...