HTTP:是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可使浏览器更加高效,使网络传输减小。算法
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,所以加密的详细内容就须要SSL。(能够理解为浏览器
HTTPS协议由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。安全
HTTPS和HTTP的区别主要以下:服务器
HTTPS协议的主要做用能够分为两种:一种是创建一个信息安全通道,来保证数据传输的安全;另外一种是确认网站的真实性。网络
TLS 的完整过程须要三个算法(协议),密钥交互算法,对称加密算法,和消息认证算法网站
HTTPS 的总体过程分为证书验证和数据传输阶段加密
服务器利用本身惟一的私钥对客户端发来的对称秘钥进行解密,在此过程当中,中间方没法对其解密(即便是客户端也没法解密,由于只有服务器端拥有惟一的私钥),保证了对称秘钥在收发过程当中的安全,此时,服务器端和客户端拥有了一套彻底相同的对称秘钥。代理
最后,总结一下https传输过程:
1.客户端发起 HTTPS 请求,服务端返回证书,客户端对证书进行验证,验证经过后本地生成用于构造对称加密算法的随机数。
2.经过证书中的公钥对随机数进行加密传输到服务端(随机对称密钥),服务端接收后经过私钥解密获得随机对称密钥,以后的数据交互经过对称加密算法进行加解密。(既有对称加密,也有非对称加密)ssl
为何数据传输是用对称加密?资源
答:HTTP的应用场景中一般端与端之间存在大量的交互,非对称加密的加解密效率很是低。
另外,在 HTTPS的场景中只有服务端保存了私钥,一对公私钥只能实现单向的加解密,因此 HTTPS 中内容传输加密采起的是对称加密
为何须要证书?
答:防止“中间人”攻击,同时能够为网站提供身份证实。
使用 HTTPS 会被抓包吗?答:会被抓包,HTTPS 只防止用户在不知情的状况下通讯被监听,若是用户主动授信,是能够构建“中间人”网络,代理软件能够对传输内容进行解密。