HTTP 与 HTTPS 的区别

    HTTPS=HTTP + 通信加密 + 证书 +完整性保护。
    HTTP 与 HTTPS 相比具有以上缺点:明文传输(未加密),不能确定对方身份,没有校验完整性。
    而 HTTPS (Secerty) 是将 HTTP 的部分接口用 SSL (Secerty Socket Layer 安全套接字) + TLS (Transmit Layer Secrety 安全传输协议) 代替,原先 HTTP 在应用层,是直接与传输层的 TCP 协议交互,而 HTTPS 是先建立 SSL 连接,再由 SSL 和TCP 通信 。
HTTP 与 HTTPS 的区别

一、对称加密与非对称加密

1.对称 / 共享**加密

    加密与解密使用相同的**。

2.非对称 / 公开**加密

    发送方使用接收方的公钥【随意发布,大家都可见】对数据进行加密发送,而接收方持有私钥【仅自己可见】进行解密。 公钥与私钥是配对儿进行加密、解密的。
    公开加密耗时、耗资源,但是可以规避被抓包而**被攻击者窃取的问题——因为私钥是不会随数据传输的;而共享加密虽然快,但是传输数据时需要附带着**,如果被窃取,就起不到加密的作用了。综合以上,SSL 采用的是混合加密机制——先用 公开加密,安全地交换**,如下图所示,A 获得了 B 发来的 由A公钥加密的???? ,并通过 A私钥解密,得到了????;同理,B 也获得了 A发来的 由B 公钥加密的 ????,并通过 B私钥解密,得到了 ????,他俩得到的是同一把 ** ????,那么以后就可以采用共享加密【 加密、解密用的是相同的** 】快速传输数据了,因为A B已经得到钥匙,后续传输数据的过程自然也就不需要再携带**了,就不存在被窃取风险。(这是我个人理解,如有误请指出,十分感谢。)
HTTP 与 HTTPS 的区别

3.证书

    以上过程,客户端与服务器通信时,无法保证对方正是自己想要通信的服务器,需要身份认证。
    服务器运营商会向 数字证书认证机构 CA 登录自己的公钥信息,CA 验证后会进行数字签名并授予证书,证书将和服务器的公钥绑定在一起。CA 的公钥是植入到浏览器中的,客户先向 CA 请求,CA 会将证书发送给客户,客户端也就知道了对方服务器的身份、是正规营业商。
    而有不正规的 数字证书认证机构,会 “自认证”,这是不符合规范的。

4.HTTPS通信过程

HTTP 与 HTTPS 的区别
    在以上流程中,应用层发送数据时会附加一种叫做 MAC(Message Authentication Code 信息认证码)的报文摘要。MAC能够查知报文是否遭到篡改,从而保证报文的完整性。