1. 程式人生 > >https協議及與http協議的比較

https協議及與http協議的比較

一、HTTP和HTTPS的基本概念

HTTP:是網際網路上應用最為廣泛的一種網路協議,是一個客戶端和伺服器端請求和應答的標準(TCP),用於從WWW伺服器傳輸超文字到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少。

HTTPS:是以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。

HTTPS協議的主要作用可以分為兩種:一種是建立一個資訊保安通道,來保證資料傳輸的安全;另一種就是確認網站的真實性。

 

二、HTTP與HTTPS有什麼區別?

HTTP協議傳輸的資料都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私資訊非常不安全,為了保證這些隱私資料能加密傳輸,於是網景公司設計了SSL(Secure Sockets Layer)協議用於對HTTP協議傳輸的資料進行加密,從而就誕生了HTTPS。

HTTPS加密、加密、及驗證過程,如下圖所示:

HTTP與HTTPS的區別-馬海祥部落格

簡單來說,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,要比http協議安全。

HTTPS和HTTP的區別主要如下:

1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。

2、http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。

3、http的連線很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。

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

5、在 OSI 網路模型中,HTTP 工作於應用層,而 HTTPS 工作在傳輸層

三、HTTPS的工作原理

我們都知道HTTPS能夠加密資訊,以免敏感資訊被第三方獲取,所以很多銀行網站或電子郵箱等等安全級別較高的服務都會採用HTTPS協議。

HTTP與HTTPS的區別-馬海祥部落格

1、客戶端發起HTTPS請求

這個沒什麼好說的,就是使用者在瀏覽器裡輸入一個https網址,然後連線到server的443埠。

2、服務端的配置

採用HTTPS協議的伺服器必須要有一套數字證書,可以自己製作,也可以向組織申請,區別就是自己頒發的證書需要客戶端驗證通過,才可以繼續訪問,而使用受信任的公司申請的證書則不會彈出提示頁面(startssl就是個不錯的選擇,有1年的免費服務)。

這套證書其實就是一對公鑰和私鑰,如果對公鑰和私鑰不太理解,可以想象成一把鑰匙和一個鎖頭,只是全世界只有你一個人有這把鑰匙,你可以把鎖頭給別人,別人可以用這個鎖把重要的東西鎖起來,然後發給你,因為只有你一個人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。

3、傳送證書

這個證書其實就是公鑰,只是包含了很多資訊,如證書的頒發機構,過期時間等等。

4、客戶端解析證書

這部分工作是有客戶端的TLS來完成的,首先會驗證公鑰是否有效,比如頒發機構,過期時間等等,如果發現異常,則會彈出一個警告框,提示證書存在問題。

如果證書沒有問題,那麼就生成一個隨機值,然後用證書對該隨機值進行加密,就好像上面說的,把隨機值用鎖頭鎖起來,這樣除非有鑰匙,不然看不到被鎖住的內容。

5、傳送加密資訊

這部分傳送的是用證書加密後的隨機值,目的就是讓服務端得到這個隨機值,以後客戶端和服務端的通訊就可以通過這個隨機值來進行加密解密了。

6、服務段解密資訊

服務端用私鑰解密後,得到了客戶端傳過來的隨機值(私鑰),然後把內容通過該值進行對稱加密,所謂對稱加密就是,將資訊和私鑰通過某種演算法混合在一起,這樣除非知道私鑰,不然無法獲取內容,而正好客戶端和服務端都知道這個私鑰,所以只要加密演算法夠彪悍,私鑰夠複雜,資料就夠安全。

7、傳輸加密後的資訊

這部分資訊是服務段用私鑰加密後的資訊,可以在客戶端被還原。

8、客戶端解密資訊

客戶端用之前生成的私鑰解密服務段傳過來的資訊,於是獲取瞭解密後的內容,整個過程第三方即使監聽到了資料,也束手無策。

四、搜尋引擎對HTTPS的態度

百度推出了全站HTTPS加密搜尋服務,以此解決“第三方”對使用者隱私的嗅探和劫持,其實,早在2010年5月份,谷歌便開始提供HTTPS加密搜尋服務,在HTTPS網頁的抓取問題上,百度在2014年9月份的一份公告中表示“百度不會主動抓取HTTPS網頁”,谷歌在演算法更新中則表示“同等條件下,使用HTTPS加密技術的站點在搜尋排名上更具優勢”。

那麼,在這種大環境下,站長是否該採用“具有風險”的HTTPS協議呢?HTTPS對搜尋引擎的SEO影響又如何呢?

1、谷歌的態度

谷歌在HTTPS站點的收錄問題上與對HTTP站點態度並無什麼不同之處,甚至把“是否使用安全加密”(HTTPS)作為搜尋排名演算法中的一個參考因素,採用HTTPS加密技術的網站能得到更多的展示機會,排名相對同類網站的HTTP站點也更有優勢。

而且谷歌曾明確表示“希望所有的站長都能將使用HTTPS協議,而非HTTP”更是表明了其對達到“HTTPS everywhere”這一目標的決心。

2、百度的態度

雖然百度曾表示“不會主動抓取https網頁”,但對於“很多https網頁無法被收錄”也是“耿耿於懷”,去年9月份,百度曾就“https站點如何建設才能對百度友好”問題釋出了一篇文章,給出了“提高https站點的百度友好度”的四項建議及具體操作。