时不时会看到http和https的资料每次看着都是懵逼,根本没清楚,今天突然开窍了,分享一波,走起!
首先明白一点的是:http和https最大的区别就是安全,https是安全的,而http是不安全的,http传输数据都是通过明文传输,那https既然安全,就要在这个基础上完成一个加密的过程,从而保证安全;另外的区别有:端口不同(http使用的80,https使用的443),访问速度(http快,https慢,理由就是https除了三次握手的过程还需要完成密钥交换和加密才真正开始数据的传输),https收费而http免费(加密需要第三方CA机构颁发证书,第三方自然要收费)。
工作流程如下:
客户机与服务器完成三次握手之后,
1.Client发起请求获取公钥(Server中有公钥和私钥,只发送公钥给Client)
2.Server返回公钥证书
3.Client验证证书
4.Client生成对称密钥,用公钥加密这个对称密钥后发给Server
5.Server使用私钥解密,得到对称密钥
经过上述几个步骤之后,客户机与服务器双方对真正的通讯数据使用对称密钥:•加密明文并发送•解密密文得到明文
可以看出整个过程中,对称密钥的传输公钥加密然后再使用私钥解密,两端使用不同的密钥,这称为非对称加密,客户机与服务器双方真正的通讯数据使用对称密钥称为对称加密,所以整个过程中使用了两种加密方式,称为混合加密。
介绍至此,更详细的自己查资料吧!