HTTP1.1

2023-06-20  本文已影响0人  xxttw

早起HTTP1.0 性能上有个很大的问题, 就是每次发起一个请求, 就要从新建立一次TCP链接, 而且是串行请求, 请求完了就会断开,做了很多没必要的TCP连接的建立和断开, 增加了通信开销

长连接

HTTP1.1为了解决这个问题, 采用了长连接的模式, 一次请求完成后,不会再断开连接,可以继续使用这个连接发起新的请求, 减少了TCP重复连接和断开的额外开销, 减轻了服务器的压力
只要双方没有明确提出断开连接, 则保持TCP的连接状态

管道网络传输

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

但是尴尬的是服务器必须按照接收请求的顺序,来发送请求的响应
比如A的请求时间耗时很长, 那么后续的请求都会被阻塞住,这个叫队头堵塞
HTTP1.1虽然解决了队头阻塞,但是没有解决响应队头阻塞

队头阻塞

HTTP是请求-应答模式, 加剧影响了HTTP的性能问题
因为当顺序发送的请求序列中, 某一个请求因为某些原因被阻塞了,那么在后面排队的请求也一同被阻塞, 会导致客户端一直收不到数据, 这也叫队头阻塞

image.png

总之HTTP1.1性能一般般, 后续HTTP2/HTTP3就是在优化HTTP的性能

上一篇 下一篇

猜你喜欢

热点阅读