
HTTP特性

HTTP 特性
到目前为止,HTTP 常见到版本有 HTTP/1.1,HTTP/2.0,HTTP/3.0
HTTP/1.1 优点
- 简单
- 灵活易于扩展
- 应用广泛、跨平台
- 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 的性能问题