各个HTTP与HTTPS的主要不同特点

HTTP

HTTP协议是基于TCP/IP,并且使用了请求-应答的通信模式

特性

  1. 简单:报文格式就是header+body,易于理解
  2. 灵活和易拓展:HTTP协议里各类请求方法、状态码、投资端等都允许开发人员自定义和扩充;同时,由于它位于应用层,它的下层可以随意变化(HTTPS就是在TCP与HTTP层间加入了SSL/TLS的安全协议;HTTP/3将TCP换成了基于UDP的QUIC)
  3. 应用广泛和跨平台:HTTP协议应用广泛,且具有跨平台的优越性
  4. 无状态:好处:不需要额外的资源来记录状态信息,减轻CPU的负担;坏处:在处理关联性操作时很麻烦(解决:cookie)
  5. 明文传输:可以方便我们阅读,为调试工作带来了便利性;但会造成信息的不安全。
  6. 不安全明文通信不加密,内容会有被窃听的可能;不验证通信方的身份,有可能遭遇伪装;无法证明报文的完整性,有可能报文已经遭遇篡改。

HTTP/1.1

特点

  1. 提出了长连接的通信方式(持久连接),减少了TCP链接的重复建立和断开造成的额外开销,减轻服务端的负载;特点:只要任意一端没有明确提出断开连接,则保持TCP的连接状态
  2. 管道网络传输:由于采用了长连接的模式,使得管道网络传输成为了可能;即可在同一个TCP链接里面,客户端发起多个请求,只要第一个请求发出去了,不必等他回来就可以发送第二个请求,减少整体响应时间。但是服务器还是按照顺序,依次回应请求,如果前面回应的特别慢,后面就会有许多请求等待,这称为队头阻塞

缺点

  1. 请求/响应头部未经压缩就发送,首部信息越多延迟越大,只能压缩Body部分
  2. 发送冗长的首部,每次发送相同的首部造成浪费
  3. 服务器按请求顺序响应,会造成队头阻塞
  4. 没有请求优先级控制
  5. 请求只能从客户端开始,服务器只能被动响应

HTTP/2

  1. 头部压缩:如果同时发送多个请求,且头部是相似或一样的,协议会自动消除重复部分—这就是HPACK算法:在客户端和服务器同时维护一张头信息表,所有字段都会存入这个信息表,生成一个索引号,以后就不发送相同的字段了,只发送索引号。
  2. 二进制格式:不再像HTTP/1.1中纯文本形式,采用了二进制格式,头部和数据体的信息都是二进制,统称为;至此,计算机收到报文后无需将明文的报文转化为二进制,而是直接解析二进制报文,提升了数据传输的效率
  3. 数据流:数据包不再是按需发送。每个请求或回应的所有数据包成为一个数据流,每个数据流都有一个标记,(其中规定客户端的数据流编号为奇数;服务器发出的数据流编号为偶数);
  4. 客户端还能指定数据流的优先级,优先级高的请求,服务器先响应
  5. 多路复用:可以在一个连接中发送多个请求或回应,不用按序一一回应,移除了HTTP/1.1的串行请求,不用排队等待也就不会出现队头阻塞,降低了延迟,提高了连接的利用率
  6. 服务器推送:改善了请求-应答的工作模式,服务器不再是被动响应,也可以主动发送信息。

缺点

多个HTTP请求复用在一个TCP连接中,下层的TCP协议不知道有多少个HTTP请求,一旦发生了丢包,就会触发TCP的重传机制,因此一个TCP连接中所有的HTTP请求必须等待这个丢失的包被传送回来

HTTP/3

基于TCP传输层的问题,HTTP/3吧下层的TCP改成了UDP。UDP不能可靠传输,但基于UDP的QUIC协议可以实现类似TCP的可靠传输

特点

  1. UDP不管顺序、不管丢包,因此不会出现1.1中的队头阻塞或者2中的丢一个包就要全部重传的问题
  2. QUIC有一套机制可以保证传输的可靠性,当某个流发生丢包时,就阻塞这个流,其他的流不会受到影响
  3. TLS3升级成1.3版本,头部压缩算法用了QPACK
  4. HTTPS建立以此连接需要完成六次交互,三次握手以及TLS/1.3的三次握手,QUIC直接把以往的将六次交互合并成了三次,减少了交互次数

HTTPS

在TCP和HTTP网络层之间加入SSL/TLS的安全协议,使得报文能够加密传输

与HTTP的区别

  1. HTTPS需要在TCP的三次握手后在进行SSL/TLS的握手过程,才能进入加密报文传输
  2. HTTP的端口是80,HTTPS的端口是443
  3. HTTPS需要向CA(证书权威机构)申请数字证书以此来保证服务器的身份是可信的。

如何解决HTTP的不安全这一缺点

  1. 使用混合加密(对称加密和非对称加密相结合)保证信息的机密性,解决了窃听的风险
  2. 使用摘要算法来保证信息的完整性
  3. 使用数字证书保证服务器的身份是可信的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值