- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我读到了 http2 RST_STREAM 中的新功能:
HTTP/2 adds the RST_STREAM frame to allow a client to change its mind; if the browser navigates away from a page, or the user cancels a download, it can avoid having to open a new connection without wasting all of that bandwidth.
如何做到这一点?浏览器如何做到这一点?代码有什么变化吗?
最佳答案
浏览器发起一个请求,然后改变主意,要么用户离开,要么取消。
在 HTTP/1.1 中,避免下载响应内容的唯一选择是关闭连接,因为客户端无法将这种中止请求的意图传达给服务器。关闭连接是方法。
在 HTTP/2 中,如果客户端想要中止请求,它会发送一个 RST_STREAM。当服务器收到 RST_STREAM 时,它会停止向客户端发送 DATA 帧,从而停止响应(或下载)。该连接仍可用于其他请求,并且与已中止的请求/响应并发的请求/响应可能会继续进行。
通常,应用程序不需要做任何事情,也不知道 RST_STREAM,这一切都由浏览器和服务器实现完成。
有可能当 RST_STREAM 从客户端传输到服务器时,请求的全部内容都在传输中并将到达客户端,客户端将丢弃它。但是,对于较大的响应内容,发送 RST_STREAM 可能有很好的机会在整个响应内容发送之前到达服务器,因此可以节省带宽。
关于http - HTTP2 中的 RST_STREAM 帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28736463/
我读到了 http2 RST_STREAM 中的新功能: HTTP/2 adds the RST_STREAM frame to allow a client to change its mind;
我正在用 python 实现 gRPC 客户端和服务器。服务器成功接收来自客户端的数据,但客户端收到返回“RST_STREAM with error code 2”。 它实际上意味着什么?我该如何解决
我目前正在树莓上使用 dialogflow api。 使用 grpc 调用 StreamingDetectIntent 方法时一切正常。 我必须在我的产品上使用多个 api,因此,我试图在它们前面放置
我们有 2 个微服务需要通过 GRPC 进行通信,它们都是用 Nestjs 编写的。这两个服务可以轻松地通过 IP 和端口进行通信。 现在,当 GRPC 服务器位于启用了 SSL 的 Nginx 代理
我是一名优秀的程序员,十分优秀!