当前位置: 首页 > 知识库问答 >
问题:

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

龙星渊
2023-03-14

我试图在节点中添加一个行为类似于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

每当我使用任何无上下文接管Safari都会从响应标题中删除所有内容。

共有1个答案

丁鹏鹍
2023-03-14

如果您回复为"Sec-WebSocket-扩展: x-webkit-收缩-框架",并且实际上您的WebSocket服务器支持压缩,那么它应该可以工作。我刚刚自己测试了这个。

至于为什么Safari隐藏你的响应头,我不知道。再次,测试和检查与Wireshark-压缩工程。当我发送1000字节(字符'A'重复1000次)时,数据包大约是1064字节,当我在服务器上启用压缩时,数据包大约是76字节。

 类似资料:
  • 我有一个应用程序,它使用camel-jetty、camel-cxf来公开REST api,并在apache karaf(fuse esb)中运行。由于安全原因,我需要从API响应中删除'server'标头。我从camel exchange头中删除了头,但它仍然以Jetty(7.6.7.v20120910)的形式在api响应中返回。如何从API响应中删除标头?

  • 希望有人能提供帮助,我正在使用以下代码在React应用程序的endpoint执行抓取: 并返回错误:

  • 我想从(RubyonRails)响应中删除一些头文件 报头响应: HTTP/1.1 200正常 日期:2013年6月6日星期四14:42:26 GMT 连接:保持活动状态 X运行时间:0.01900 内容类型:文本/纯文本;字符集=utf-8 缓存控制:专用,最大年龄=0,必须重新验证 服务器:WEBrick/1.3.1(Ruby/1.8.7/2012-10-12) 内容长度:281 Etag:“

  • 我正在尝试对GsonConverterFactory使用Retrofit2,问题是这是我从okhttp: 因此,我得到以下例外: java.lang.IllegalStateException:应为BEGIN_OBJECT,但在第1行第2列为字符串 如何删除特殊字符和回车与改装2?

  • 我从搜索API得到的响应如下所示 我希望从每个元素中删除_index、_type和_score字段。我该怎么做?

  • 我在spring boot中使用rest模板调用一些restendpoint,如下所示: 然后我从响应实体中读取所有标题,如下所示: 但是HttpHeaders包含这么多的头,从中我只想读取自定义头,我们不知道自定义头的名称,基本上我只想删除所有标准HTTP头并获取所有剩余的头。 我们如何删除所有标准HTTP标头?