1. 程式人生 > >理解HTTP和HTTPS的區別

理解HTTP和HTTPS的區別

原文轉載於https://www.mysubmail.com/chs/blog/view/47

這兩天閒來無事,在網上看了一下,發現 HTTP 和 HTTPS 的區別很受關注,多位大牛做了很詳細的闡述,非常深刻全面。但是小編還是發現一個問題,大牛們的描述太過於專業了,對於專業人士來說當然很容易看明白,可是真正需要了解的往往是一些小白,小白們一開始就接觸這些專業術語其實是很難理解的。你們說是不是這個理。所以小編決定聯絡實際來聊聊這個話題。

首先我們還是簡單的描述一下專業定義。 HTTP 是怎麼定義的? HTTPS 又是怎麼定義的?

HTTP (全稱 Hyper Text Transfer Protocol ),一般稱為超文字傳輸協議,也是網際網路上應用最為廣泛的一種網路協議。所有的WWW檔案都必須遵守這個標準。設計 HTTP最初的目的是為了提供一種釋出和接收HTML頁面的方法。一種詳細規定了瀏覽器和全球資訊網伺服器之間互相通訊的規則。 HTTPS (全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是 HTTP 的安全版。

俗話講:無規矩不成方圓。只有遵循一定規則通訊才能有序正常的進行。本質上來說 HTTP 和 HTTPS 是相同的,都是一種傳輸協議,一種通訊規則。只不過 HTTPS 是從 HTTP 的基礎上發展而來的,加入了獨特的安全機制。

接下來我們聯絡現實,舉個例子為大家描述一下。

就拿打電話來說吧,如果你用自己的手機去給朋友手機撥打電話。看上去這很簡單,可能有人會問,這打電話還能有規則?怎麼沒有呢,我們簡單看一下打電話的過程,撥號碼》接通電話》交流》結束掛電話。這不正是打電話的一套規則嗎。

前面我們說過了, HTTP 規定了瀏覽器和全球資訊網伺服器之間互相通訊的規則,比如我們通過瀏覽器去瀏覽一個網頁,第一步是開啟瀏覽器,瀏覽器好比是你的手機,在瀏覽器輸入 URL 地址,進行請求,實際上我們輸入 URL 後,我們的瀏覽器給 Web 伺服器傳送了一個 Request , Web 伺服器接到 Request 後進行處理,生成相應的Response ,然後傳送給瀏覽器, 瀏覽器解析 Response 中的 HTML ,這樣我們就看到了網頁,這裡的URL就相當於你打電話時輸入朋友的手機號碼,而朋友手機可以看作是你訪問的伺服器。而 Request 和 Response 大致可以看作是你和朋友的通話內容吧。有些時候訪問網頁會出現提示找不到伺服器等現象,這就說明對方伺服器出了問題,也許是關閉了,也許是故障了。這又可以看作是撥打朋友電話,結果朋友手機關機或者損壞,自然無法接通。最後我們關閉瀏覽器結束訪問也就好比通話結束,掛掉電話一樣。

我們再看 HTTPS 規則, HTTPS 是執行在 SSL/TLS 之上的HTTP協議, SSL/TLS 執行在 TCP 之上。所有傳輸的內容都經過加密,加密採用對稱加密,但對稱加密的金鑰用伺服器方的證書進行了非對稱加密。如果同樣用打電話來理解,可以看作是你和朋友通電話的內容進行了加密處理,中國電信有一項特別定製的加密通訊業務,內建國家密碼管理局指配加密演算法的手機終端,向客戶提供實現商密級的端到端手機話音通訊加密功能、手機終端資訊保護以及手機終端加密資訊的遠端擦除等安全服務。而 HTTPS 協議使用的對稱加密就好比是加密電話中新增的加密演算法。可以防止被竊取和監聽。

我們有必要解釋一下 HTTPS 的證書,採用 HTTPS 協議的伺服器必須要有一套數字證書,可以自己製作,也可以向組織申請,區別就是自己頒發的證書需要客戶端驗證通過,才可以繼續訪問,而使用受信任的公司申請的證書則不會彈出提示頁面。這套證書其實就是一對公鑰和私鑰,如果對公鑰和私鑰不太理解,可以想象成一把鑰匙和一把鎖,這把鎖只有你一個人有這把鑰匙,你可以把鎖給別人,別人可以用這個鎖把重要的東西鎖起來,然後發給你,因為只有你一個人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。

證書類別可以分為以下:按證書認證等級分類有 DV SSL 證書、 IV SSL 證書、 OV SSL 證書、 EV SSL 證書。按適用域名數量分類有萬用字元型 SSL 證書、萬能型 SSL 證書、單域名 SSL 證書、多域名 SSL 證書。按照簽發主體分類有:自簽名 SSL 證書和 CA 機構簽發 SSL 證書(各類證書的區別和申請方法因篇幅有限這裡就不詳細描述了。)

最後我們通過前面的講述具體來概括一下 HTTP 和 HTTPS 的區別

1、HTTP 的 URL 以 HTTP:// 開頭,而 HTTPS 的 URL 以 HTTPs:// 開頭;

2、HTTP 是不安全的,而 HTTPS 是安全的,比如一些銀行、政府、平臺網站會使用 HTTPS,就拿小編現在所在的SUBMAIL賽郵雲通訊來說, 我們的官網 API 就採取了 HTTPS 協議,提高其安全性。示例HTTPs://api.submail.cn/message/xsend;

3、傳輸效率上 HTTP 要高於 HTTPS ,因為 HTTPS 需要經過加密過程,過程相比於 HTTP 要繁瑣一點,效率上低一些也很正常;

4、HTTP 無需證書,而 HTTPS 必需要認證證書;

5、從 SEO 方面來參考,發現百度和谷歌是不同的。谷歌在 HTTPS 站點的收錄問題上與對 HTTP 站點態度並無什麼不同之處,甚至把“是否使用安全加密”(HTTPS)作為搜尋排名演算法中的一個參考因素,採用 HTTPS 加密技術的網站能得到更多的展示機會。百度曾表示不主動抓取 HTTPS 網頁,所以目前採取 HTTPS 的網站是很難被百度收錄的,不過有訊息稱百度接下來可能會向谷歌靠攏,對於 HTTPS 頁面同樣主動抓取。

6、還有一點也不能忽視,使用 HTTPS 需要證書,申請證書是要費用的,相比於 HTTP 不需要證書來說,HTTPS 這筆費用是無法避免的。

以上就是對 HTTP 和 HTTPS 的一些簡述,從個人角度來說,我是希望將來採用 HTTPS 的站點越多越好,畢竟現在網站上購物支付這種活動已經非常頻繁了,安全是我們不得不去重視的問題。如何提高站點資訊的安全,目前最簡單的解決方案就是站點採用 HTTPS 協議,進行 web 安全訪問。