HTTP和HTTPS的区别
HTTP
位于应用层,超文本传输协议。
特点:
- 简单快速,每个资源固定出来起来方便
- 灵活,每个资源头部数据类型
- 无连接:连接一次就会断掉,不会一直连接
- 无状态,客户端和服务端是两种身份,http帮助连接,下次连接不会记住状态,是谁连接的
HTTP存在的问题:
- 不具备加密的功能,HTTP报文使用的明文方式发送;
- 无法确认你发送到的服务器是否是真正的目标服务器;
- 无法确定返回的客户端是否是按照真实意图接收的客户端;也就是说客户端和服务端都有可能伪装;
- 无法确定正在通信的对方是否具有访问权限,如果服务器上某些重要信息只想发给特定的用户,这样会导致即使是无意义的请求也会照单全收。
- 请求或响应在传输途中,可能会遭攻击者拦截并篡改内容的攻击
HTTPS
超文本传输安全协议。经由HTTP进行通信,但利用SSL/TLS来加密数据包。
- HTTPS要使客户端与服务器端的通信过程得到安全保证,必须使用的对称加密算法。
- 但是协商对称加密算法的过程,需要使用非对称加密算法来保证安全。
- 然而直接使用非对称加密的过程本身也不安全,会有中间人篡改公钥的可能性。
- 所以客户端与服务器不直接使用公钥,而是使用数字证书签发机构颁发的证书来保证非对称加密过程本身的安全。
- 这样通过这些机制协商出一个对称加密算法,就此双方使用该算法进行加密解密。从而解决了客户端与服务器端之间的通信安全问题。