iOS 乙個HTTPS連線的客戶端與服務端互動過程

2021-08-28 11:30:03 字數 837 閱讀 8704

答:具體經歷了一下8步:

客戶端打包請求。其中包括url、埠、賬號和密碼等。使用賬號和密碼登陸應該用的是post方式,所以相關的使用者資訊會被載入到body中。這個請求應該包含3個方面:網路位址、協議和資源路徑。注意:這裡用的是https,即http+ssl/tls,在http上又加了一層處理加密資訊的模組(相當於加了乙個鎖)。這個過程相當於客戶端請求鑰匙。

伺服器端接受請求。一般客戶端的請求會先被傳送到dns伺服器中。dns伺服器負責將網路位址解析成ip位址,這個ip位址對應網上的一台計算機。這其中可能發生hosts hijack和isp failure的問題。過了dns這一關,資訊就到伺服器端,此時客戶端和服務端的埠之間會建立乙個socket連線。socket一般都是以file descriptor的方式解析請求的。這個過程相當於伺服器端分析是否要想客戶端傳送鑰匙模板。

伺服器端返回數字證書。伺服器端會有一套數字證書(相當於乙個鑰匙模板),這個證書會先被傳送個客戶端。這個過程相當於服務端向可獨斷傳送鑰匙模板。

客戶端生成加密資訊。根據收到的數字證書(鑰匙模板),客戶端就會生成鑰匙,並把內容鎖起來,此時資訊已經被加密。這個過程相當於客戶端生成鑰匙並鎖上請求。

客戶端方傳送加密資訊。伺服器端會收到由自己傳送的數字證書加密的資訊。這個時候生成的鑰匙也一併被傳送到服務端。這個過程相當於客戶端傳送請求。

服務端解鎖加密資訊。服務端收到加密資訊後,會根據得到的鑰匙進行解密,並把要返回的資料進行對稱加密。這個過程相當於伺服器端解鎖請求,生成、加鎖回應資訊。

伺服器端向客戶端返回資訊。客戶端會收到相應的加密資訊。這個過程相當於伺服器端向客戶端傳送回應資訊。

客戶端解鎖返回資訊。客戶端會用剛剛生成的鑰匙進行解密,將內容顯示在瀏覽器上。

記錄乙個IOS訪問HTTPS協議TCP握手慢的問題

在andriod下測試介面響應速度都在300ms以內,ios上出現問題,前端找我反饋,由於前後端使用了不同的網域名稱和伺服器部署,前端使用vue axios和jquery ajax測試均發現請求緩慢,大概在6秒左右 我這邊初步懷疑是鏈路問題,測試人員切換了4g和wifi,結果一樣 然後他們使用香港 ...

nginx搭建乙個簡單的https

ssl3.0 tls1.0 tls1.1 tls1.2 tls1.3 加密的內容可以通過同乙個密匙加密,解密出來。有一對密匙,公鑰加密的內容,只能通過私鑰來解密。私鑰加密的內容 只能通過公鑰匙來解密出來。ev證書做了更嚴格的認證 根證書,二級證書,主證書 總結 去驗證給這個站點頒發證書的根證書是不是...

建立乙個 iOS 的 Widget (一)

一.首先 建立乙個testwidgetdemo 專案 二.建立乙個widget 方式如下 因為要通過widget 這個group 來共享許可權 獲取資料,而這個group 在 呢 要怎樣設定呢?看圖 四.testwidgetdemo 的viewcontroller.m 設定要傳給widget的值 n...