当前位置:首页 » 安卓系统 » 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