HTTP优缺点

文章目录

    • 简单、灵活、易于扩展
    • 应用广泛、环境成熟
    • 无状态
    • 明文
    • 不安全
    • 性能

简单、灵活、易于扩展

**简单:**基本的报文格式就是”header+body“,头部信息也是简单的文本格式,用的也是常见的英文单词

在简单的这个基本设计理念之下,HTTP协议又多出了”灵活和易于扩展“的优点。

后期扩展的请求方法、URI、状态码、原因短句、头字段。。。

应用广泛、环境成熟

无状态

  • 优点:不需要额外的资源来记录状态信息,不仅实现上会简单一些,而且还能减轻服务器的负担,能够把更多的CPU和内存用来对外提供服务;没有状态的差异,所以可以很容易的组成集群,让负载均衡把请求转发到任意一台服务器,不会因为状态不一致导致出错,使用”堆机器“的”笨方法“轻松实现高并发高可用。
  • 缺点:无法支持需要连续多个步骤的”事务“操作。连续的操作每次都得问一遍身份信息,比较麻烦而且增加了不必要的数据传输量。
    • 如果需要解决就是cookie

明文

明文的意思是协议里的报文不适用二进制数据,而是用简单的文本形式。

  • 优点:可以方便调试
  • 缺点:信息会被暴露出来,每一个环节没有隐私可言,如果别人侵入了链路的某个设备,简单的”旁路“以下流量,就可以实现对通信的窥视。

免费WIFI陷阱

黑客利用HTTP明文传输的缺点,在公共场所架设一个WIFI热点开始”钓鱼“,诱骗网名上网。一旦脸上这个WIFI热点,所有的流量都会被拦截保存,里面如果有银行卡号、网站密码等敏感信息的话,那就危险了,黑客拿到了这些数据就可以冒充为所欲为。

不安全

怎么证明你是你

HTTP没有提供有效的手段来确认通信双方的真实信息。HTTP协议也不支持”完整性校验“,数据在传输过程中容易被篡改而无法验证真伪。

  • 解决:HTTPS

性能

HTTP性能:不算差、不够好

HTTP采用的是”请求-应答“的通信模式,所以性能的关键就在这两点上。

现在的互联网是移动和高并发,不能保证稳定的链接质量,所以在TCP层面上HTTP协议有时候就会表现得不够好。

请求-应答“模式则加剧了HTTP性能的问题,这就是著名的”队头阻塞(Head-of-line blocking)“,当顺序发送的请求序列中的一个请求因为某种原因被阻塞时,在后面排队的所有请求也一并被阻塞,会导致客户端迟迟收不到数据。

  • 解决:HTTP/2和HTTP/3

你可能感兴趣的:(计算机网络)