Https = Http + SSL
Http就是超文本传输协议(HyperText Transport Protocol)的缩写
SSL就是安全套接字层(Secure Sockets Layer)的缩写,工作在传输层。
SSL现在已经被更加安全的TLS所继承(Transport Layer Security)
Http是使用明文传输的,在生活中非常不安全,只要有一个坏人对你和服务商之间的任何一个环节(WiFi、基站等地方)进行监听就可以获取你的敏感信息。
所以Https应运而生,它可以对你的浏览器和服务器之间传输的Http信息进行加密。
Http是基于TCP协议的,所以会有三次握手来建立连接。
TLS会在三次握手后建立,所以三次握手后不会马上传输数据了。
TLS是怎么传输的呢?
- 浏览器向服务器发送请求, 希望建立TLS连接.
- 服务器使用非对称加密生成一对公/私钥,私钥在自己手里. 公钥和数字证书(CA)一起发给浏览器.
- 浏览器生成一个传输用的密钥,用公钥加密后传输给服务器
- 服务器收到这个被加密的密钥 后,用自己的私钥将其解密,就能得到双方传输用的对称密钥了
- 浏览器和服务器都通过被加密的密钥 进行验证后, 可以开始传输信息了.