http :
超文本传输协议,是一个客户端到服务端请求与应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议
https:
是以安全为目标的http通道,简单讲是http的安全版本,HTTPS下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
HTTPS的主要作用就是建立一个安全通道,用来传输数据。
http与HTTPS的区别:
http传输的数据时未经加密的。HTTPS协议是由SSL协议与http协议共同构建的可进行加密传输和身份认证的网络协议,比http协议安全性更高。
主要区别:1.HTTPS需要ca证书,费用较高
2.http是超文本传输协议,信息是明文传输, HTTPS则是经过ssl加密的加密传输协议。
3.端口不同 http:80 HTTPS:443
HTTPS的工作原理:
1.浏览器客户端向服务器(443端口)发起请求,请求中携带了浏览器支持的加密算法和哈希算法
2.服务器接收到浏览器的请求,选择浏览器支持的加密算法和哈希算法
3.服务器将数字证书(数字证书可以是向某个机构申请的也可以是自制的)返回给浏览器。
4.浏览器进入数字证书认证环节,这一部分是浏览器内置的TLS完成的。
4.1:首先浏览器会从内置的证书列表中索引,找到服务器下发证书对应的机构,如果找不到,浏览器就会提示用户该证书不是由权威机构颁发,是不可信任的。如果查到了对应的机构 ,则取出该机构颁发的公钥。
4.2:浏览器用该证书对用的公钥解密出证书的内容和证书签名,内容包括网站的网址、网站的公钥、证书的有效期等。浏览器会先验证证书签名的合法性。签名通过后证书会验证证书记录中的网址是否跟当前的网址是否一致,不一致会提示用户。如果网址一致会验证证书的有效期,如果有效期不一致也会提示用户。这些都通过时,浏览器就可以安全的使用证书中的网站公钥了。
4.3:浏览器生成一个随机数R,并使用网站公钥对其加密。
5.浏览器将加密的随机数R发送给服务器。
6.服务器用自己的私钥解密得到随机数R
7.服务器以R为秘钥使用了对称加密算法加密网页内容并传输给浏览器。
8.浏览器以R为秘钥使用之前约定好的解密算法获得网页内容
HTTPS协议的优点:(安全)
1.使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户端和服务器。
2.HTTPS协议是http与ssl协议构建的可进行加密传输,身份认证的网络协议,要比http协议安全,可防止数据再传输过程中不被截取,篡改,确保数据的完整性。
3.HTTPS是当下最安全的网络传输解决方案,虽不是绝对安全,但是大幅度增加了中间人攻击的成本。
HTTPS协议的缺点:
1.https握手阶段比较费时
2.https缓存不如http搞,会增加数据开销
3.ssl证书需要钱
4.ssl证书需要绑定IP,不能再同一个IP上绑定多个域名,ipv4资源支持不了这种消耗。
参考: