https
https说白了就是在http层和Tcp层之间加ssl层或者tls层
http是直接通过明文在浏览器和服务器之间传递信息。
https是通过对称加密和非对称加密的方式保护浏览器和服务端之间的通信安全,一般链接建立之前用的是非对称加密的方式实现密钥的交换,链接建立之后用的是对称加密,对数据进行加密。
具体是如何加密,解密,验证的,且看下图:
TLS是基于TCP协议之上的,TLS的握手过程如下:
client1:TLS的版本号+支持的加密套件列表+希望使用的TLS选项
server1:选择的合适客户端的加密套件+自己的公钥+自己的证书+希望使用的TLS选项
client2:使用服务起的公钥和服务器协商的套件加密一个对称密钥,告诉服务器我们发送数据要用这个对称密钥加密。
server2:使用私钥解析出密钥,发送finish,并根浏览器说,好的就用这个密钥加密发送的数据。