https: https(secure hypertext transfer protocol)安全超文字傳輸協議 ,它是乙個安全通訊通道,https經由 超文字傳輸協議(http) 進行通訊,但利用ssl/tls來加密封包。https開發的主要目的,是提供對網路伺服器的身分認證,保護交換資料的隱私與完整性。這個協議由網景公司(netscape)在2023年首次提出,隨後擴充套件到網際網路上。簡單來說它是http+sll/tsl安全版。http與https的比較
比較http
埠80
443協議
超文字傳輸協議(明文傳輸)
http+ssl(ssl使用40位關鍵字作為rc4流加密演算法)
證書需要到ca申請證書
信任主機的問題.
採用https 的server(伺服器) 必須從ca 申請乙個用於證明伺服器用途型別的證書. 所以目前所有的銀行系統**,關鍵部分應用都是https 的. 客戶通過信任該證書,從而信任了該主機. 其實這樣做效率很低,但是銀行更側重安全. 這一點對我們沒有任何意義,我們的server ,採用的證書不管自己issue(問題) 還是從公眾的地方issue, 客戶端都是自己人,所以我們也就肯定信任該server.
通訊過程中的資料的洩密和被竄改
一般意義上的https, 就是 server 有乙個證書,主要目的是保證server是目標伺服器,服務端和客戶端之間的所有通訊,都是加密的。
我推薦一篇寫的比較好的ios中如果配置https請求的方式
我推薦一篇寫的比較好的ios中如果配置https請求的方式
我推薦一篇寫的比較好的ios中如果配置https請求的方式
接下來這3句話很重要
3. 具體講,是客戶端產生乙個對稱的金鑰,通過server 的證書來交換金鑰. 一般意義上的握手過程.
3. https所有的資訊往來就都是加密的. 第三方即使截獲,也沒有任何意義.因為他沒有金鑰(鑰匙串)
(記住這裡)少許對客戶端有要求的情況下,會要求客戶端也必須有乙個證書.【這裡客戶端證書,其實就類似表示個人資訊的時候,除了使用者名稱/密碼, 還有乙個ca 認證過的身份. 這樣能夠更安全的確認自己的身份。比如少數個人銀的具體證書可能是拿u盤作為乙個備份的載體.這裡的u盾就是ca 驗證過的身份】
**接下來作為拓展可以不做了解
https 的實現
1.http協議,乙個get(獲取)乙個response(返回). 由於https 要還金鑰和確認加密演算法的需要.單握手就需要6/7 個往返.過多的round trip(巡迴) 肯定影響效能.
2.具體的http協議,每一次響應或者請求, 都要求客戶端和服務端對會話的內容做加密/解密.儘管對稱加密/解密效率比較高,可是仍然要消耗過多的cpu,為此有專門的ssl 晶元. 如果cpu 信能比較低的話,肯定會降低效能,從而不能serve 更多的請求.加密後資料量的影響. 所以,才會出現那麼多的安全認證提示。
補充附錄:
說道安全機制 不得不說說鑰匙串(金鑰=密碼鑰匙)公鑰(public key)與私鑰(private key)是通過一種演算法得到的乙個金鑰對(即乙個公鑰和乙個私鑰),公鑰是金鑰對中公開的部分,私鑰則是非公開的部分。
通過演算法得到的金鑰對能保證在世界範圍內是唯一的。使用這個金鑰對的時候,如果用其中乙個金鑰加密一段資料,必須用另乙個金鑰解密。(比如用公鑰加密資料就必須用私鑰解密,如果用私鑰加密也必須用公鑰解密,否則解密將不會成功)
一把私有的鑰匙,僅有使用者才擁有。
一把公開的鑰匙,可公開發行配送,只要有要求即取得。
小龍哥的技術部落格
iOS基於Https的網路請求
https簡單說明 https 全稱 hyper text transfer protocol over secure socket layer 是以安全為目標的http通道,簡單講是http的安全版。即http下加入ssl層,https的安全基礎是ssl 安全套接字層 因此加密的詳細內容就需要ss...
iOS中發起https的網路請求
https https secure hypertext transfer protocol 安全超文字傳輸協議 它是乙個安全通訊通道,它基於http開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層 ssl 進行資訊交換,簡單來說它是http的安全版。http與https的比較 比較h...
ios中的網路請求
get請求 請求的位址 對於中文的話要對請求位址實行 utf 8編碼 urlstring stringbyaddingpercentescapesusingencoding nsutf8stringencoding nsurlrequest request nsurlrequest requestw...