本文接着 HTTP知识梳理(一) 继续梳理
HTTPS & HTTP 网络协议栈
https 是基于http 实现了数据的安全传输,http 的一个问题就是数据没有被加密,容易被劫持,https 主要功能是对 http 的数据进行加密解密。
https 网络协议栈比 http 多一层安全层。在客户端和服务端建立了 TCP 链接后,客户端和服务端会初始化这个安全层,对加密参数进行沟通并交换秘钥。安全层初始完成之后,客户端就可以将请求报文发送给安全层,安全层会前对其加密,然后发送给服务端。
https 加密过程:https://blog.csdn.net/H_L_S/article/details/106867332
HTTP / HTTPS 从访问到获取响应的流程
HTTP URL 访问到获取数据的整个流程(不考虑缓存的情况下)
1.进行域名解析获取服务器的 IP 地址(DNS 解析过程不在这里说明)。
2.建立 TCP 连接,进行三次握手。
3.数据传输(IP 协议+TCP 协议+HTTP 协议+荷载)。
4.TPC/IP 协议栈处理,最后应用层解析 HTTP 协议。
5.服务器返回响应(3-4)。
6.关闭连接,四次挥手。
个人觉得,至于经历了什么缓存、反向代理之类的,并不应该在 HTTP 访问流程中
HTTPS URL 访问到获取数据的整个流程(不考虑缓存的情况下)
1.进行域名解析获取服务器的IP地址。
2.建立 TCP 连接,进行三次握手。
3.初始化安全层,对加密参数进行沟通并交换秘钥。
4.通过秘钥和加密算法对荷载加密(服务端需要解密荷载)。
5.数据传输(IP 协议+TCP 协议+HTTPS 协议+荷载)
6.TPC/IP 协议栈处理,最后应用层解析 HTTP 协议。
7.服务器返回响应(4-6)。
8.关闭连接,四次挥手。
更详细的流程参考:https://cloud.tencent.com/developer/article/1464938
HTTP1.0 / HTTP1.1 / HTTP2.0 介绍
主要介绍几个标准 http 协议版本的问题和相对前一个版本新增的功能。
详细的参考:
1.https://www.jianshu.com/p/52d86558ca57
2.https://cloud.tencent.com/developer/article/1464938
总结
本文首先介绍了 HTTP & HTTPS 的区别,然后简单说明了一下 HTTP/HTTPS 从访问到获得响应的流程,最后介绍了几个 HTTP 版本的优缺点。
参考
1. 《HTTP 权威指南》
2.https://www.jianshu.com/p/52d86558ca57
3.https://cloud.tencent.com/developer/article/1464938
4.https://cloud.tencent.com/developer/article/1464938
5.https://www.cnblogs.com/an-wen/p/11180076.html