http與https協議

來源:互聯網
上載者:User

標籤:img   系統   商業   request   nbsp   aes   exp   strong   hyper   

HTTP協議是什嗎?
   簡單來說,就是一個基於應用程式層的通訊規範:雙方要進行通訊,大家都要遵守一個規範,這個規範就是HTTP協議。
HTTP協議能做什嗎?
    很多人首先一定會想到:瀏覽網頁。沒錯,瀏覽網頁是HTTP的主要應用,但是這並不代表HTTP就只能應用於網頁的瀏覽。HTTP是一種協議,只要通訊的雙方都遵守這個協議,HTTP就能有用武之地。比如咱們常用的QQ,迅雷這些軟體,都會使用HTTP協議(還包括其他的協議)。
HTTP協議如何工作?
大家都知道一般的通訊流程:首先用戶端發送一個請求(request)給伺服器,伺服器在接收到這個請求後將產生一個響應(response)返回給用戶端。

什麼是HTTPS:
 HTTPS(SecureHypertext TransferProtocol)安全超文字傳輸通訊協定 (HTTPS)它是一個安全通訊通道,它基於HTTP開發,用於在客戶電腦和伺服器之間交換資訊。它使用安全通訊端層(SSL)進行資訊交換,簡單來說它是HTTP的安全版。它是由Netscape開發並內建於其瀏覽器中,用於對資料進行壓縮和解壓操作,並返回網路上傳送回的結果。HTTPS實際上應用了Netscape的安全全通訊端層(SSL)作為HTTP應用程式層的子層。(HTTPS使用連接埠443,而不是象HTTP那樣使用連接埠80來和TCP/IP進行通訊。)SSL使用40位關鍵字作為RC4流密碼編譯演算法,這對於商業資訊的加密是合適的。HTTPS和SSL支援使用X.509數字認證,如果需要的話使用者可以確認寄件者是誰。

HTTPS傳輸協議原理

兩種基本的加解密演算法類型

1. 對稱式加密:密鑰只有一個,加密解密為同一個密碼,且加解密速度快,典型的對稱式加密演算法有DES、AES等

2.非對稱式加密:密鑰成對出現(且根據公開金鑰無法推知私密金鑰,根據私密金鑰也無法推知公開金鑰),加密解密使用不同密鑰(公開金鑰加密需要私密金鑰解密,私密金鑰加密需要公開金鑰解密),相對對稱式加密速度較慢,典型的非對稱式加密演算法有RSA、DSA等

HTTPS和HTTP的區別:
 https協議需要到ca申請認證,一般免費認證很少,需要交費。

http是超文字傳輸通訊協定 (HTTP),資訊是明文傳輸,https 則是具有安全性的ssl加密傳輸協議http和https使用的是完全不同的串連方式用的連接埠也不一樣,前者是80,後者是443。 http的串連很簡單,是無狀態的HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路通訊協定 要比http協議安全. 
HTTPS解決的問題:
 1 . 信任主機的問題.採用https 的server 必須從CA 申請一個用於證明伺服器用途類型的認證. 改認證只有用於對應的server的時候,客戶度才信任次主機. 所以目前所有的銀行系統網站,關鍵區段應用都是https 的. 客戶通過信任該認證,從而信任了該主機.其實這樣做效率很低,但是銀行更側重安全. 這一點對我們沒有任何意義,我們的server ,採用的認證不管自己issue還是從公眾的地方issue, 用戶端都是自己人,所以我們也就肯定信任該server.
 2 . 通訊過程中的資料的泄密和被竄改
    1. 一般意義上的https, 就是 server 有一個認證.
    a) 主要目的是保證server 就是他聲稱的server. 這個跟第一點一樣. ( i.具體講,是用戶端產生一個對稱的密鑰,通過server 的認證來交換密鑰. 一般意義上的握手過程.)

    b) 服務端和用戶端之間的所有通訊,都是加密的.(ii. 加下來所有的資訊往來就都是加密的.第三方即使截獲,也沒有任何意義.因為他沒有密鑰,當然竄改也就沒有什麼意義了.)       
    2. 少許對用戶端有要求的情況下,會要求用戶端也必須有一個認證.
    a) 這裡用戶端認證,其實就類似表示個人資訊的時候,除了使用者名稱/密碼, 還有一個CA 認證過的身份.應為個人認證一般來說上別人無法類比的,所有這樣能夠更深的確認自己的身份.
    b) 目前少數個人銀行的專業版是這種做法,具體認證可能是拿隨身碟作為一個備份的載體. HTTPS 一定是繁瑣的.
   3. 傳輸效率的缺點  

     a) 本來簡單的http協議,一個get一個response. 由https 要還密鑰和確認密碼編譯演算法的需要.單握手就需要6/7個往返,任何應用中,過多的round trip 肯定影響效能.
     b) 接下來才是具體的http協議,每一次響應或者請求,都要求用戶端和服務端對會話的內容做加密/解密,儘管對稱式加密/解密效率比較高,可是仍然要消耗過多的CPU,為此有專門的SSL 晶片.如果CPU 信能比較低的話,肯定會降低效能,從而不能serve 更多的請求.
    
SSL的簡介:

 SSL是Netscape公司所提出的安全保密協議,在瀏覽器(如InternetExplorer、Netscape Navigator)和Web伺服器(如Netscape的Netscape EnterpriseServer、ColdFusionServer等等)之間構造安全通道來進行資料轉送,SSL運行在TCP/IP層之上、應用程式層之下,為應用程式提供加密資料通道,它採用了RC4、MD5以及RSA等密碼編譯演算法,使用40位的密鑰,適用於商業資訊的加密。同時,Netscape公司相應開發了HTTPS協議並內建於其瀏覽器中,HTTPS實際上就是SSLoverHTTP,它使用預設連接埠443,而不是像HTTP那樣使用連接埠80來和TCP/IP進行通訊。HTTPS協議使用SSL在發送方把未經處理資料進行加密,然後在接受方進行解密,加密和解密需要發送方和接受方通過交換共知的密鑰來實現,因此,所傳送的資料不容易被網路駭客截獲和解密。然而,加密和解密過程需要耗費系統大量的開銷,嚴重降低機器的效能,相關測試資料表明使用HTTPS協議傳輸資料的工作效率只有使用HTTP協議傳輸的十分之一。 

如何選擇HTTP 和 HTTPS協議: 

            
   假如為了安全保密,將一個網站所有的Web應用都啟用SSL技術來加密,並使用HTTPS協議進行傳輸,那麼該網站的效能和效率將會大大降低,而且沒有這個必要,因為一般來說並不是所有資料都要求那麼高的安全保密層級,所以,我們只需對那些涉及機密資料的互動處理使用HTTPS協議,這樣就做到魚與熊掌兼得。總之不需要用https的地方,就盡量不要用。

 

 


 

http與https協議

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.