Safari从响应中删除Sec WebSocket Extensions标头

Safari从响应中删除Sec WebSocket Extensions标头,websocket,safari,compression,mobile-safari,Websocket,Safari,Compression,Mobile Safari,我试图在节点中添加一个行为类似于permessage deflate的web套接字扩展。我的问题是直到点节点发回它与Sec WebSocket扩展的握手:x-webkit-deflate-frame之前,一切都正常。来自Safari的请求包含了这一点,但如果我在响应中包含它,尝试告诉Safari继续使用压缩,它就永远不会在网络选项卡中显示为标题。我已经通过Wireshark确认我们在回复中发送了它,但我不明白safari为什么要删除它。我找遍了所有可能的地方,但似乎没有人有这个问题 我还尝试使用

我试图在节点中添加一个行为类似于permessage deflate的web套接字扩展。我的问题是直到点节点发回它与Sec WebSocket扩展的握手:x-webkit-deflate-frame之前,一切都正常。来自Safari的请求包含了这一点,但如果我在响应中包含它,尝试告诉Safari继续使用压缩,它就永远不会在网络选项卡中显示为标题。我已经通过Wireshark确认我们在回复中发送了它,但我不明白safari为什么要删除它。我找遍了所有可能的地方,但似乎没有人有这个问题

我还尝试使用:

Sec-WebSocket-Extensions: x-webkit-deflate-frame; server_no_context_takover

Sec-WebSocket-Extensions: x-webkit-deflate-frame; no_context_takover

Sec-WebSocket-Extensions: x-webkit-deflate-frame; client_no_context_takeover

Sec-WebSocket-Extensions: x-webkit-deflate-frame; server_no_context_takeover; client_no_context_takeover
每当我使用任何无上下文takeovers Safari时,都会从响应头中删除所有内容。

如果您使用“Sec WebSocket Extensions:x-webkit-deflate-frame”进行回复,并且您的WebSocket服务器支持压缩,那么它应该可以工作。我只是自己测试了一下


至于Safari为什么隐藏您的响应标题,我不知道。再次使用Wireshark进行测试和检查-压缩工作正常。当我发送1000字节(字符“A”重复1000次)时,数据包大约是1064字节,当我在服务器上启用压缩时,数据包大约是76字节。

额外的细节是什么?你为什么认为Safari会支持他们?它在
x-webkit-deflate-frame
specs中吗?@Myst,我想你是糊涂了。额外的细节是,除了用
Sec WebSocket Extensions:x-webkit-deflate-frame
来响应之外,我还尝试了其他的事情,看看这些是否能让它工作。事实上,我在开发自己的web套接字服务器时遇到了同样的问题,所以提供了一个答案。希望它有用那么你有没有设法绕过这个问题?顺便说一句,大约一年前,当我创建我的WebSocket服务器的第一个版本时,据我记忆所及,我可以看到响应“SecWebSocket Extensions”标题。也许这与Safari的更新版本有关?