https其实就是建构在SSL/TLS之上的 http协议,所以https比http要占用更多的资源
http使用TCP 三次握手建立连接,客户端和服务器需要交换3个包,https除了 TCP 的三个包,还要加上 ssl握手需要的9个包,所以一共是12个包。
HTTPS就是在安全的传输层上发送的HTTP。HTTPS没有将未加密的HTTP报文发送给TCP它在将HTTP报文发送给TCP之前,先将其发送给了一个安全层,对其进行加密如图:
过程简述
- 1.客户端发起HTTPS请求
- 2.服务器将公钥返回给客户端
- 3.浏览器接收到服务器公钥
浏览器收到公钥后会对公钥进行一系列的验证,如:颁发机构,过期时间等等。认证失败会有警告,比如上面说的我们自己生成的证书,不是授信组织办法。成功的话,会生成一个随机值作为对称加密的密钥稍后还会提及到。用服务器返回的公钥对这个随机值进行加密
- 4.加密后的随机值发送到服务器
- 5.客户端与服务器进行加密通信
客户端和服务器端信息数据通信,就是秘钥为随机值的,对称加密了