HTTP的缺点:

1,HTTP通信使用的是明文,内容可能会被窃听。
窃听相同段上的通信并非难事。只需要收集在互联网上流动的数据包(帧)就行了。对于收集来的数据包的解析工作,可交给那些抓包(Packet Capture)或嗅探器(Sniffer)工具。

解决方法:加密处理防止被窃听,一种方式就是将通信加密。HTTP协议中没有加密机制,但可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全传输层协议)的组合使用,加密HTTP的通信内容。
用SSL建立安全通信线路之后,就可以在这条线路上进行HTTP通信了。与SSL组合使用的HTTP被称为HTTPS(HTTP Secure,超文本传输安全协议)或HTTPover SSL。
image.png

2,不验证通信方的身份,因此有可能遭遇伪装。
在HTTP协议通信时,由于不存在确认通信方的处理步骤,任何人都可以发起请求。另外,服务器只要接收到请求,不管对方是谁都会返回一个响应(但也仅限于发送端的IP地址和端口号没有被Web服务器设定限制访问的前提下)。
解决方法:
虽然使用HTTP协议无法确定通信方,但如果使用SSL则可以。SSL不仅提供加密处理,而且还使用了一种被称为证书的手段,可用于确定方。
通常HTTP直接和TCP通信,当使用SSL时,http会先和SSL通信再由SSL和TCP通信
image.png
image.png
3,无法证明报文的完整性,所以有可能已遭篡改
由于HTTP协议无法证明通信的报文完整性,因此,在请求或响应送出之后直到对方接收之前的这段时间内,即使请求或响应的内容遭到篡改,也没有办法获悉。换句话说,没有任何办法确认,发出的请求/响应和接收到的请求/响应是前后相同的。
image.png
像这样,请求或响应在传输途中,遭攻击者拦截并篡改内容的攻击称为中间人攻击
SSL提供认证和加密处理及摘要功能。仅靠HTTP确保完整性是非常困难的,因此通过和其他协议组合使用来实现这个目标。

HTTPS

HTTP+加密+认证+完整性保护=HTTPS
为了统一解决上述这些问题,需要在HTTP上再加入加密处理和认证等机制。我们把添加了加密及认证机制的HTTP称为HTTPS(HTTP Secure)。
HTTPS并非是应用层的一种新协议。只是HTTP通信接口部分用SSL(SecureSocket Layer)和TLS(Transport Layer Security)协议代替而已。
image.png

HTTPS的优点:

1,用了SSL之后会建立一条安全的通信线路,所有内容的传输都经过加密的,而且还可以通过证书来确定通信人的身份
2,SSL采用非对称加密算法。(加密算法是公开的,而密钥是保密的)
HTTPS的加密方式有两种
对称加密:加密和解密公用一个密钥的方式叫做对称密钥加密,缺点就是以这种方式加密时必须将密钥也发送给对方,在互联网上转发密钥时,如果通信被监听那么密钥就可能被攻击者得到
image.png
非对称加密:一把叫做私有密钥,另一把叫做公开密钥。发送密文的一方使用对方的公开密钥进行加密处理,对方收到加密信息后,在使用自己私有的密钥进行解密。
image.png
而HTTPS采用这两者混合加密机制,如果能够实现密钥的安全交换,会先考虑使用对称加密,因为对称加密的处理速度较快
3, HTTP和HTTPS使用的端口也不一样,前者是80,后者是443。