Http的优缺点

通过学习我们已经了解到Http具有相当优秀和方便的一面。http的优点是

一、灵活性高,可扩展性强,从http1.0到http1.1再到http2.x,http协议一直在扩展新的属性。

二、http是可靠的数据传输协议(底层的TCP协议会确保传输内容顺序的正确性以及确保不会在传输过程中丢包)

三、请求应答有来有回

四、无状态的每一个请求都是相互独立的,默认不需要保存上下文的信息。

然而,http并非中有好的一面,http也有其缺点

一、通信使用明文(不加密),内容可能会被窃听。

由于http本身不具备加密的功能,所以也无法做到对通信整体进行加密。而互联网是由能联通到全世界的网络组成,无论世界哪个角落的服务器和客户端通信时,在此通信线路上的设备、仪器、计算机等都不可能是个人的私有物,所以不排除某个环节中会遭遇到恶意窥视的行为,即使已经加密处理的通信也会被窥视到通信内容。

所以要使用加密处理防止被窃听,在目前大家正在研究的如何防止窃听的保护信息的几策略中,最为普及的就是加密技术,加密技术有以下这几种:

通信加密

http协议中没有加密机制,但可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全传输层协议)的组合使用,加密HTTP的通信内容。

用SSL建立安全通信线路之后,就可以在这条线路上进行HTTP通信了。与SSL组合使用的HTTP被称为HTTPS(HTTP Secure,超文本传输安全协议)或HTTP over SSL。

 

内容加密:

由于http协议中没有加密机制,就要对http协议传输的内容本身加密,为了做到有效的为内容加密,前提是要求客户端和服务器端同时具备加密和解密机制。

 

二、不验证通信方的身份,因此可能会遭遇伪装

 

HTTP协议的实现本身非常简单,不论是谁发送过来的请求都会返回响应,因此不确认通信方,会存在以下各种隐患。

无法确定请求发送至目标的Web服务器是否是按真实意图返回响应的那台服务器。有可能是已伪装的Web服务器。

● 无法确定响应返回到的客户端是否是按真实意图接收响应的那个客户端。有可能是已伪装的客户端。

● 无法确定正在通信的对方是否具备访问权限。因为某些Web服务器上保存着重要的信息,只想发给特定用户通信的权限。

无法判定请求是来自何方、出自谁手。

● 即使是无意义的请求也会照单全收。无法阻止海量请求下的DoS攻击(Denial of Service,拒绝服务攻击)。

 

查明对手的证书

虽然使用HTTP协议无法确定通信方,但如果使用SSL则可以。SSL不仅提供加密处理,而且还使用了一种被称为证书的手段,可用于确定方。

证书由值得信任的第三方机构颁发,用以证明服务器和客户端是实际存在的。

Http的优缺点_第1张图片

 

 

三、无法证明报文的完整性,所以有可能已遭篡改

由于HTTP协议无法证明通信的报文完整性,因此,在请求或响应送出之后直到对方接收之前的这段时间内,即使请求或响应的内容遭到篡改,也没有办法获悉。

何防止篡改

其中常用的是MD5和SHA-1等散列值校验的方法,以及用来确认文件的数字签名方法

但这些方法也依然无法百分百保证确认结果正确。因为PGP和MD5本身被改写的话,用户是没有办法意识到的。

为了有效防止这些弊端,有必要使用HTTPS。SSL提供认证和加密处理及摘要功能。仅靠HTTP确保完整性是非常困难的,因此通过和其他协议组合使用来实现这个目标。下节我们介绍HTTPS的相关内容。

 

你可能感兴趣的:(http,tcp/ip,网络协议,网络)