當前位置:首頁 » 安卓系統 » androidhttphttps

androidhttphttps

發布時間: 2025-09-11 13:13:02

1. Android面試筆記——HTTP/HTTPS

HTTP和HTTPS是面試常問的問題,內容比較多而且復雜,HTTPS裡面的細節很多,本文只是把主要的東西寫出來,想要弄懂HTTPS還是要多看幾篇博文,自己動手走一遍把各個攻擊的case搞明白。

HTTP 是超⽂本傳輸協議,也就是HyperText Transfer Protocol。

Host 欄位 :客戶端發送請求時,⽤來指定伺服器的域名。 Host: www..com

Content-Length 欄位 :伺服器在返回數據時,會有 Content-Length 欄位,表明本次回應的數據長度。 Content-Length: 1000

Connection 欄位 :Connection 欄位最常用於客戶端要求伺服器使⽤ TCP 持久連接,以便其他請求復⽤。 HTTP/1.1 版本的默認連接都是持久連接,但為了兼容⽼版本的 HTTP,需要指定 Connection ⾸部欄位的值為Keep-Alive 。

Content-Type 欄位 :Content-Type 欄位⽤於伺服器回應時,告訴客戶端,本次數據是什麼格式 。 Content-Type: text/html; charset=utf-8

Content-Encoding 欄位 :Content-Encoding 欄位說明數據的壓縮⽅法。表示伺服器返回的數據使用了什麼壓縮格式 。客戶端在請求時,⽤ Accept-Encoding 欄位說明自己可以接受哪些壓縮⽅法。 Accept-Encoding: gzip, deflate

下圖為訪問網路的返回欄位

HTTP/2 協議是基於 HTTPS 的,所以 HTTP/2 的安全性也是有保障的。

這都是基於 TCP 傳輸層的問題,所以 HTTP/3 把 HTTP 下層的 TCP 協議改成了 UDP

UDP 發生是不管順序,也不管丟包的,所以不會出現 HTTP/1.1 的隊頭阻塞 和 HTTP/2 的⼀個丟包全部重傳問題。

UDP 是不可靠傳輸的,但基於 UDP 的 QUIC 協議 可以實現類似 TCP 的可靠性傳輸。

HTTPS 采⽤的是 對稱加密和⾮對稱加密結合 的「混合加密」⽅式:

采⽤「混合加密」的⽅式的原因:

摘要演算法⽤來實現 完整性 ,能夠為數據⽣成獨⼀⽆⼆的「指紋」,⽤於校驗數據的完整性,解決了篡改的⻛險。

客戶端在發送明⽂之前會通過摘要演算法算出明文的「指紋」,發送的時候把「指紋 + 明文」⼀同加密成密文後,發送給伺服器,伺服器解密後,用相同的摘要演算法算出發送過來的明文,通過⽐較客戶端攜帶的「指紋」和當前算出的「指紋」做⽐較,若「指紋」相同,說明數據是完整的。

客戶端先向伺服器端索要公鑰,然後⽤公鑰加密信息,伺服器收到密文後,⽤⾃⼰的私鑰解密。這就存在些問題,如何保證公鑰不被篡改和信任度?

所以這⾥就需要藉助第三⽅權威機構 CA (數字證書認證機構),將伺服器公鑰放在數字證書(由數字證書認證機構頒發)中,只要證書是可信的,公鑰就是可信的。

通過數字證書的⽅式保證伺服器公鑰的身份,解決冒充的⻛險 。

證書簽名和驗證過程

兩種情況

熱點內容
linuxhome在哪 發布:2025-09-11 15:29:37 瀏覽:226
安卓大圖片用什麼應用打開好 發布:2025-09-11 15:24:11 瀏覽:255
java風格 發布:2025-09-11 14:56:21 瀏覽:316
猴子桃子編程 發布:2025-09-11 14:11:10 瀏覽:995
學電腦編程多少錢 發布:2025-09-11 14:06:35 瀏覽:806
什麼叫初始支付密碼 發布:2025-09-11 13:55:13 瀏覽:80
絕對優化演算法 發布:2025-09-11 13:54:23 瀏覽:947
怎麼讀腳本 發布:2025-09-11 13:53:32 瀏覽:728
phpsession過期時間 發布:2025-09-11 13:45:54 瀏覽:660
大話西遊跑商腳本 發布:2025-09-11 13:43:33 瀏覽:1004