我在http2 rst_stream中看到了新特性:
http/2增加了rst_流帧,允许客户端改变主意;
如果浏览器离开页面,或用户取消
下载,它可以避免打开一个新的连接而不会浪费
所有的带宽。
怎么能这样?浏览器如何做到这一点?密码有变化吗?
最佳答案
浏览器启动一个请求,然后在用户离开或取消时改变主意。
在http/1.1中,避免下载响应内容的唯一选择是关闭连接,因为客户端无法将中止请求的意图传达给服务器。关闭连接就是方法。
在http/2中,如果客户端想要中止请求,它会发送一个rst_流。当服务器接收到rst_流时,它将停止向客户端发送数据帧,从而停止响应(或下载)。
该连接仍可用于其他请求,与已中止的请求/响应同时进行的请求/响应可能继续进行。
通常,应用程序不需要做任何事情,也不知道rst_流,这都是由浏览器和服务器实现完成的。
当rst_流从客户端传输到服务器时,请求的全部内容可能正在传输中,并将到达客户端,客户端将丢弃它。
但是,对于较大的响应内容,发送rst_流可能有很好的机会在发送整个响应内容之前到达服务器,因此将节省带宽。