澎湃新闻
HTTP/1.1 的并发效率受到文本报文和请求排队方式的限制。多个请求共享连接时,前面的响应如果传输缓慢,后续请求可能受到阻塞;浏览器通常会通过建立多个 TCP 连接来改善页面加载,但连接数量增加也会带来握手、资源和拥塞控制成本。
当服务器收到写有 http9.1,n 的请求行时,服务器通常不会把它当作某个新版本处理。具体结果取决于服务器软件和前置代理,可能返回 400 Bad Request、505 HTTP Version Not Supported,或者在日志中记录为异常请求。返回结果不同,不代表该字符串对应不同协议,而是代表不同组件的容错策略不同。
HTTP/2 不等于把请求行简单改成 HTTP/2 文本。HTTP/2 的通信结❤️构与 HTTP/1.1 不同,客户端和服务器需要共同支持 HTTP/2,并通过协议协商决定是否启用;如果协商失败,连接可能回退到 HTTP/1.1。
HTTP/1.1 支持持久连接,也就是同一个 TCP 连接可以承载多次请求和响应,从而减少频繁建立连接产生的开销。HTTP/1.1 还支持分块传输编码、缓存控制、范围请求、内容协商和虚拟主机,这些能力至今仍被大量旧系统和兼容模式使用。