7.1 HTTP 的缺点
HTTP 主要有这些不足,例举如下。
- 通信使用明文(不加密),内容可能会被窃听
- 不验证通信方的身份,因此有可能遭遇伪装
- 无法证明报文的完整性,所以有可能已遭篡改
7.1.1 通信使用明文可能会被窃听
由于 HTTP 本身不具备加密的功能,所以也无法做到对通信整体(使用 HTTP 协议通信的请求和响应的内容)进行加密。即, HTTP 报文使用明文(指未经过加密的报文)方式发送。
TCP/IP 是可能被窃听的网络:即使已经过加密处理的通信,也会被窥视到通信内容,这点和未加密的通信是相同的。只是说如果通信经过加密,就有可能让人无法破解报文信息的含义,但加密处理后的报文信息本身还是会被看到的。
互联网上的任何角落都存在通信内容被窃听的风险
加密处理防止被窃听
- 通道加密:一种方式就是将通信加密。 HTTP 协议中没有加密机制,但可以通过和 SSL(Secure Socket Layer,安全套接层)或 TLS(Transport Layer Security,安全层传输协议)的组合使用,加密 HTTP 的通信内容。用 SSL 建立安全通信线路之后,就可以在这条线路上进行 HTTP 通信了。与 SSL 组合使用的 HTTP 被称为 HTTPS(HTTP Secure,超文本传输安全协议)或 HTTP over SSL 。
- 内容的加密:在这种情况下,客户端需要对 HTTP 报文进行加密处理后再发送请求。
为了做到有效的内容加密,前提是要求客户端和服务器同时具备加密和解密机制。主要应用在Web 服务中。有一点必须引起注意,由于该方式不同于 SSL 或 TLS 将整个通信线路加密处理,所以内容仍有被篡改的风险。
7.1.2 不验证通信方的身份就可能遭遇伪装