http https工作原理

2021-09-12 06:47:21 字數 2784 閱讀 1665

1.web瀏覽器首先要通過網路與web伺服器建立鏈結

在http工作之前,web瀏覽器首先要通過網路與web伺服器建立鏈結,該鏈結是通過tcp來完成的,tcp協議和ip協議共同構建了internet,從應用分層來看,http比tcp更高層次的應用層協議。根據osi規則,只有底層協議建立之後才能進行更高協議的鏈結,因此首先要建立tcp鏈結,通常埠號是80

2.web瀏覽器向伺服器傳送請求命令(請求行)

建立好了tcp鏈結之後,web瀏覽器向伺服器傳送請求命令

3.web瀏覽器傳送請求頭資訊(首部字段)

瀏覽器傳送請求行之後,還會以頭資訊的形式向web伺服器中傳送一些別的資訊,之後瀏覽器傳送以空白行通知伺服器,它已經結束了首部欄位的傳送

4.web伺服器應答(響應行)

客戶端向伺服器發出請求之後,伺服器回送響應行,回應協議的版本號和狀態碼,以及狀態碼的字元表示

5.web伺服器響應頭資訊(首部字段)

伺服器向瀏覽器中傳送響應首部資訊,之後伺服器會傳送乙個空白行表示頭資訊的傳送到此結束

6.web伺服器向瀏覽器傳送資料

web伺服器向瀏覽器向中以響應頭資訊content-type的描述的格式傳送使用者所請求的實際資料

7.web伺服器關閉tcp鏈結

一般情況下,web伺服器向瀏覽器傳送了請求的資料之後,它就要關閉tcp鏈結,然後如果瀏覽器或則伺服器在其頭資訊中加入了 connection:keep-alive之後,tcp鏈結在傳送之後將保持開啟的狀態,瀏覽器可以繼續通過相同的鏈結傳送請求,保持鏈結節省了為每乙個請求重新建立鏈結所需要的時間,並且節省了頻寬

http有兩部分組成,http+ssl/tls就是說在http上又加了一層處理加密資訊的模組,服務端和客戶端傳輸的資訊都會經過tls進行加密,所以傳輸的資料都是加密之後的資料。

1.客戶端發起https請求

2.伺服器端進行配置

採用https協議的伺服器必須要有一套數字證書,可以自己建立也可以向組織申請,區別在於自己頒發的證書要客戶端進行驗證,通過之後才能進行訪問,而向授信的組織申請的證書,客戶端不會跳出提示頁面,證書實際上就是一對公鑰和私鑰

3.伺服器傳送證書(公鑰)

伺服器將公鑰傳送給瀏覽器,其中包含了很多資訊包括頒發證書的機構,過期時間等

4.客戶端解析證書

客戶端首先會驗證公鑰是否有效,比如辦法證書的機構是否有效,過期時間等,如果發現異常將會彈出警告,提示證書存在錯誤,如果證書沒有錯誤就生成也給隨機值,然後用該證書(公鑰)對隨機值進行加密,這個隨機值用於以後客戶端和伺服器通訊時候的加密和解密

5.客戶算傳送加密資訊

客戶端將用證書加密的隨機值傳輸給伺服器

6.伺服器端解密資訊

伺服器端用私鑰進行解密之後,得到了客戶端傳遞而來的隨機值,然後把內容通過該值進行對稱加密,對稱加密就是將資訊和私鑰通過某 種演算法混在一起,這樣的話,除非知道私鑰,不然無法獲取內容,這裡的私鑰就是客戶端傳來的隨機值,而客戶端知道這個隨機值,因此只要這個隨機值絕對複雜,就能保證資料的安全性

7.伺服器傳輸加密之後的資訊

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

8.客戶端解密資訊

客戶端用之前生成的隨機數解密伺服器端傳來的資訊,得到解密之後的內容,整個過程第三方束手無策

詳細描述https的工作原理

https在傳輸資料之前客戶端和伺服器要進行一次握手,在握手的的過程中,確定雙方加密傳輸資料的密碼資訊,tls/ssl協議中使用了對稱加密,非對稱加密,和hash演算法

1.首先客戶端發起乙個https請求,將自己支援的一系列金鑰演算法元件和加密規則傳送給伺服器

2.伺服器 收到客戶端的加密規則之後,與自身支援的進行對比,如果不支援則斷開連線,反之從**上選出一組加密演算法和hash演算法,並將自己的身份資訊以證書的形式傳送給瀏覽器,證書中包含伺服器的位址,加密的公鑰以及頒發證書的機構和失效時間

3.瀏覽器得到證書之後首先驗證證書的合法性,其中包括證書頒發的機構,證書中包含的伺服器位址和正在訪問的是否一致,過期時間等

4.驗證通過之後生成隨機數,證書驗證通過或者接收到了不授信的證書,這時候客戶端生成乙個隨機數,然後用證書中的公鑰進行加密

5.使用約定好的hash演算法計算握手資訊,並使用隨機數對訊息進行加密,將"握手資訊+握手資訊的hash值(數字簽名)一起傳送給伺服器,這裡使用握手訊息的hash值,主要是 用於驗證握手訊息在傳輸過程中有沒有被篡改過

6.伺服器接收到客戶端傳來的資料之後,首先用自己的私鑰解密將隨機數取出來,在用隨機數密碼解密握手訊息與hash值,並於傳遞過來的hash值進行比較,確認一致之後,然後使用該隨機數加密一段握手訊息(握手訊息+握手訊息的hash值)傳送給客戶端

7.瀏覽器用隨機數進行解密,取出握手訊息和它的hash值,如果與伺服器發來的握手訊息hash值一致,此時握手過程結束,之後所有的通訊資料將由客戶端生成的隨機數並利用對稱加密演算法進行加密。

這裡客戶端和伺服器相互傳送加密的握手資訊,並驗證目的是為了保證雙方都能獲得一致的密碼,並且可以正常的加密解密資料,為後期做測試。

HTTP HTTPS原理及流程

http,用於約束資訊在網路中的傳播 http約束的檢視分為兩個部分 響應部分相關資訊 響應行 協議版本號 響應狀態碼 狀態碼描述資訊 響應頭 伺服器告知瀏覽器的一些資訊 location 表示重定向是客戶端需要重新訪問的新位址 content type 響應內容的格式及使用的編碼方式 響應實體 表...

http https部分總結

網路分為五個層次 其中各個層次的作用 在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。總結一下 程式在傳送訊息時,應用層按既定的協議打包資料,隨後由資料層加上雙方埠號,網路層加上雙方ip位址,鏈路層加上雙方mac位址,並且將資料拆分成資料幀,經過多個路由器和閘道器後到達...

http https協議備忘

http hypertext transfer protocol,超文字傳輸協議 基於tcp連線 url uniform resource locator,統一資源定位符 用於指明網路資源的位址 http報文型別分為請求報文和響應報文 http請求報文由客戶端向服務端傳送 http請求報文由三部分組...