http与https

简单描述

我们都知道http是一个基于请求,响应的为无状态,应用层传输协议。它是明文传输,就像没有穿衣服的姑娘。
https就是要为她穿上衣服,这件衣服就是SLL/TLS。

https 有更复杂的 握手过程所以在建立连接是也更耗时,由于存在加密解密的过程,自然也会更消耗性能。
在https 的加密过程中会存在 将 使用对称加密和非对称加密同时使用。

为什么不直接都是用非对称加密勒?
因为非对称加密 比 堆成加密的性能消耗大,效率低

对http报文的加密是用对称加密的,这就需用客户端和服务端都需要知道同一个秘钥,这个时候这个秘钥的传输就成了问题,这个时候就引入了非对称加密。服务器端回给客户端一个公钥,客户端用这个公钥对用随机值生成的秘钥进行加密,然后传给服务端,服务端用私钥进行解密,然后就可以开始加密传输了,

但是有引出一个问题,那就是如何确定这个公钥就是服务器的?假如是一个中间人拦截了伪造的勒?

为了处理这个问题,就需要一个第三方机构来对进行认证,这个第三方就是CA,服务端会到CA申请一个证书,证明这个公钥就是我的,所以,服务器向客户端传递的公钥是以证书的方式传递的。客服端拿到这个证书会进行验证,验证通过就可以下一步了。 当然了,这个证书是收费的。

你可能感兴趣的:(JAVA基础)