HTTP特性

HTTP特性

fetch150zy

HTTP 特性

到目前为止,HTTP 常见到版本有 HTTP/1.1,HTTP/2.0,HTTP/3.0

HTTP/1.1 优点

  1. 简单
  2. 灵活易于扩展
  3. 应用广泛、跨平台
    • HTTPS就是在HTTP与TCP层之间增加了SSL/TLS安全传输层
    • HTTP/1.1和HTTP/2.0传输协议使用的是 TCP 协议,而到了 HTTP/3.0 传输协议改用了 UDP 协议

HTTP/1.1 缺点

无状态

  • 无状态的好处,因为服务器不会去记忆 HTTP 的状态,所以不需要额外的资源来记录状态信息,这能减轻服务器的负担,能够把更多的 CPU 和内存用来对外提供服务

  • 无状态的坏处,既然服务器没有记忆能力,它在完成有关联性的操作时会非常麻烦

    对于无状态的问题,解法方案有很多种,其中比较简单的方式用 Cookie 技术

明文传输

明文意味着在传输过程中的信息,是可方便阅读的,比如 Wireshark 抓包都可以直接肉眼查看,为我们调试工作带了极大的便利性;但HTTP 的所有信息都暴露在外,信息内容毫无隐私

不安全

HTTP 比较严重的缺点就是不安全:

  • 通信使用明文(不加密),内容可能会被窃听
  • 不验证通信方的身份,因此有可能遭遇伪装
  • 无法证明报文的完整性,所以有可能已遭篡改

HTTP 的安全问题,可以用 HTTPS 的方式解决,也就是通过引入 SSL/TLS 层,使得在安全上达到了极致

HTTP/1.1 性能

HTTP 协议是基于 TCP/IP,并且使用了「请求 - 应答」的通信模式,所以性能的关键就在这两点

长连接

HTTP/1.1 提出了长连接的通信方式,也叫持久连接;这种方式的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载

管道网络传输

HTTP/1.1 采用了长连接的方式,这使得管道(pipeline)网络传输成为了可能

即可在同一个 TCP 连接里面,客户端可以发起多个请求,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间

队头阻塞

「请求 - 应答」的模式会造成 HTTP 的性能问题