1. http 0.9 ~ http 2.0 的发展历程
- http 0.9:是最早的http版本,确定了http是基于TCP协议的,并且只能使用一个GET方法,在数据的传输格式中,只支持html格式的数据。
- http 1.0:可以传输图像、视频的格式,并且增加了许多新的请求方法,如Head、Put方法,但是一次只能接收一个TCP连接,并且当双方发送完数据之后,就断开这条TCP连接,换而言之就是只支持短连接。
- http1.1:增加了长连接和管道的机制。长连接就是指当双方发送完数据之后,并不会立即的断开连接,而是会保留一段时间。管道的机制就是指允许浏览器一次发送多个TCP连接请求,但是这些TCP连接请求并不会一次性的被接收,而是会存放在管道中,按照顺序来进行相应的接收,也就是说,只有当当前这个TCP请求处理完之后,才会去从管道中获取下一个TCP连接请求进行处理, 这也会导致队头阻塞的问题。
- http2.0:增加了二进制分帧(即将http的首部和数据包均变为二进制的格式封装成帧进行传输),服务器推送(服务器可以主动的给客户端推送数据,客户端可以选择需要的数据进行保存,增加了客户端和服务端双向通信的能力),多路复用技术(采用该技术解决了队头阻塞的问题,即当多个TCP连接请求进来的时候,可以同时的进行响应)。
2. ssl 三次握手
https
https = http + 通信加密 + 证书 + 完整性保护(http + ssl) ? 先经过SSL握手,再经过三次握手(SSL握手形成为服务端和客户端形成一个安全通道,然后再经过TCP协议保证连接双方的可靠连接)
https采用混合加密的机制,而不是非对称加密算法,https在交换密钥的环节,使用非对称加密的方式(公开密钥加密),之后的建立通信交换报文阶段则使用对称加密方式(共享密钥加密方式)
- 在服务端和客户端第一次交换密钥的时候采用非对称加密的方式
- 在确保服务端和客户端的公开密钥是安全的情况下,采用对称的加密方式进行通信
对称加密和非对称加密
- 对称加密:加密和解密使用相同的密钥,但是所带来的问题也是只要拿到这个密钥,任何人都能破解这个密码。
- 非对称加密:即就是使用两个密钥,公开密钥和私有密钥,使用公开密钥进行加密,使用私有密钥进行解密。
SSL
ssl:是安全套接字协议,一般被用来保证网络数据传输的安全性
|