websocket可以支持gzip压缩吗?

lit*_*sun 22 gzip websocket

在WebSocket成功握手之后,我们可以使用gzip压缩吗?

这是我的测试:

  1. 我使用autobahn lib构建服务器,然后响应客户端:
    HTTP/1.1 101 Switching Protocols content-encoding: gzip Connection: Upgrade Server: AutobahnPython/?.?.? Upgrade: WebSocket Sec-WebSocket-Accept: RIR8KmljoV8Cv9mdiLY7GM2nYMc=
  2. 然后我的服务器使用gzip压缩
  3. 并且Chrome浏览器得到了结果,但它告诉我"无法将文本框架解码为UTF-8"

Joe*_*ard 10

默认情况下,在某些浏览器中启用了WebSocket压缩(例如在Chrome中编写时,但在Firefox中没有).客户端必须包含'Sec-WebSocket-Extensions:permessage-deflate'标题.如果服务器以相同的扩展名响应,则WebSocket通信将以帧为基础进行压缩.据我所知,没有浏览器API来启用/禁用扩展.

关于该主题的一篇好文章是:https://www.igvita.com/2013/11/27/configuring-and-optimizing-websocket-compression/


Dre*_*een 5

有一个压缩扩展正在制作由IETF的WebSocket(HyBi)工作组。我建议关注他们的邮件列表以获取最新信息。我还建议检查这个问题


2017 年更新:该扩展程序现已可用一段时间,请参见此处:https : //tools.ietf.org/html/rfc7692

  • 它不再是一个草稿。请参阅[RFC 7692,WebSocket 压缩扩展](https://tools.ietf.org/html/rfc7692) 了解建议的标准。 (2认同)