http和https

    http/https都是基於tcp/ip上的一種應用層傳輸協議。

組成

    http由URL,header和body組成。

  • URL

    其中URL包含目標地址和請求方法,請求參數

  • header

    header包含一些配置參數,其中都是使用鍵值對傳遞,每一對之間需要換行。

    傳遞格式爲:

Content-Encoding: gzip\r\n
  • body

    對傳遞的數據的格式沒有具體要求。一般使用者自定義數據格式。

get和post的區別

    對於在瀏覽器之間使用時候,二者卻別如下:

  • post請求會發送兩次,第一次將header發送給服務,如果返回200,纔會繼續發送body,但不是所有瀏覽器都是這樣,Firefox就只發送一次。
  • get會給瀏覽器產生緩衝,URL後的參數可以被看到,不安全,post不會。

    對於在移動設備使用,我們只是單純的訪問API接口時,本質上兩者並無差異,我們可以使用post時候,在URL後邊加上參數,也可以使用get時候,將一些請求數據放在body中。

    不過日常使用中,可能會有一些規範,請求API,爲了獲取某些單一數據請求數據單一且少的情況下使用get,其他情況使用post。

https

    https比http多了一層tls/ssl認證,這樣可以保證傳輸過程中的數據是加過密的。

    HTTPS也分爲單項認證和雙向認證。

  • 單向認證

    單向認證是客戶端驗證服務器的可靠性

1. 客戶端把自己的SSL協議版本號,加密算法種類,隨機數等發給服務端

2. 服務端給客戶端返回自己的證書

3. 客戶端使用證書驗證服務端合法性[證書是否過期,頒發者是否有效,簽名是否一致等信息]

4. 驗證通過後,客戶端把自己支持的所有對稱加密方式發送給服務端

5. 服務端選擇最高級加密方案返回給客戶端

6. 客戶端生成對應加密密鑰隨機數,並使用服務端證書公鑰加密發送給服務端

7. 服務端使用私鑰解密獲取到密鑰,之後的會話中都會使用該密鑰來進行加解密。
  • 雙向認證

    雙向認證是客戶端和服務器互相驗證對方的可靠性

http和https區別

  • http由於不需要認證連接,傳輸時間快,https由於需要連接認證,傳輸時間慢
  • https傳輸的數據都是密文,而http是明文
  • https需要在服務端配置證書,並且該證書一般都是需要花錢的,需要成本。
發佈了20 篇原創文章 · 獲贊 8 · 訪問量 5581
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章