WebSocket - Safari 9 - 标头值中的 UTF-8 序列无效

2024-03-28

我正在创建一个在 Chrome 版本 47.0.2526.106(64 位)中工作的 WebSocket,但在 Safari 版本 9.0.2 (11601.3.9) 上失败。错误是Invalid UTF-8 sequence in header value。 Safari 似乎要求包含某些标头并采用某些格式,但我找不到哪些标头。

我用的是开源的WebSocketHandshake line

if (valueStr.isNull()) {
    m_context->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, "invalid UTF-8 sequence in header value", 0, clientOrigin(), 0);
    return 0;
}

请求如下:

General

Request URL:wss://example.server.io/query?string=test
Request Method:GET
Status Code:101 Switching Protocols

响应头

Connection:Upgrade
Sec-WebSocket-Accept:R3JnbOI454z48aMONLd+8HP6Asg=
Set-Cookie:
Upgrade:websocket

请求标头

Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,fr;q=0.6,fr-CA;q=0.4
Cache-Control:no-cache
Connection:Upgrade
DNT:1
Host:example.server.io
Origin:http://localhost:3000
Pragma:no-cache
Sec-WebSocket-Extensions:permessage-deflate; client_max_window_bits
Sec-WebSocket-Key:QUuX6/L23NIezYa4aZJbFw==
Sec-WebSocket-Version:13
Upgrade:websocket
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36

查询字符串参数

string:test

Safari/WebKit 不喜欢空标题。在这种特殊情况下,问题是空的Set-Cookie:标头。这是Webkit 中的一个错误。 Chrome 也有这个问题,但他们在 Blink 中修复了它。
删除服务器响应中的该标头,它应该可以工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WebSocket - Safari 9 - 标头值中的 UTF-8 序列无效 的相关文章

  • XElement 和 UTF-8 问题

    我有一个 NET Web 服务 asmx 而不是 svc 它通过 HTTP POST 接受字符串 它接受的字符串是 xml 信息集 然后我通过 XElement Parse 进行解析 解析为 XElement 实例后 我将一个节点添加到该实
  • JXA:写入文件时设置UTF-8编码

    如果我使用标准添加编写文本文件 显然我可以在参数包中配置编码 在AppleScript中我会写 class utf8 但是在JXA中使用哪个值 我尝试了字符串 UTF8 utf8 class utf8 但没有成功 错误始终是 错误 无法转换
  • 如何将UTF-8编码的汉字从MySql正确导出到SQL

    过去三天我们正在与严重的问题作斗争 我们从PhpmyAdmin导出MySql数据库文件 数据库条目中写入的数据是带有UTF 8字符集的中文 导出后将其转换为拉丁字符集 现在我们正在将此数据库SQl文件导入到其他主机 我们在UTF 8和排序规
  • 防止 NGINX 中的一个 WebSocket 连接泛滥?

    我使用这个配置来防止我的服务器上出现类似 DOS 的洪水 limit req zone binary remote addr zone one 10m rate 10r s limit req zone binary remote addr
  • 如何以编程方式确定 HTML 对象可以侦听哪些事件?

    我一直在查看developer mozilla org 和Apple 开发文档上的文档 但我找不到解释是否可以通过编程方式确定特定HTML 标记是否支持给定事件监听器的文档 就像我知道的那样
  • GoLang - 坚持使用 ISO-8859-1 字符集

    我正在开发一个项目 我们需要将信息保存在具有 ISO 8859 1 表的旧数据库中 因此 在向数据库写入内容之前 我需要将其从 UTF 8 转换为 ISO 8859 1 每次从数据库检索它时 我都需要将其转换回 UTF 8 我试图使用图书馆
  • 将以utf-8字符串为内容的unicode转换为str

    我正在使用 pyquery 来解析页面 dom PyQuery http zh wikipedia org w index php title CSS printable yes variant zh cn content dom mw c
  • 如何修复套接字 io 中的 400 错误错误请求?

    我有一个前端应用程序 VUE JS 我有一个后端 Nest JS Vue JS 应用程序使用 vue socket io extended 库通过 websockets 从后端获取数据 当 Vue JS 应用程序启动时 我在浏览器中看到错误
  • AWS应用程序负载均衡器和socket.io

    我有一个正在运行的 socket io 聊天室 当我们在一台机器上运行时 其流量越来越大 我们已经使用 ws 套接字库运行了基准测试 它们的性能确实要好得多 这将更好地利用我们的硬件 但这会以必须重写我们的应用程序为代价 我们的 socke
  • Font Awesome 图标在 OSX Safari 中不起作用

    My font awesome图标在 Firefox 和 Chrome 中工作正常 但在 Safari 中我只看到其中一些图标的空白 而其他图标则看不到 截屏 如您所见 图标为fa twitter fa instagram和其他人只是没有出
  • 如何用utf8发送邮件

    我想以 utf 8 编码发送此电子邮件的消息 我能为此做什么 include functions php name stripslashes POST name email trim POST email subject stripslas
  • 隐藏 Safari 地址栏和页脚

    在我的 jQuery Mobile 项目中 我使用以下代码 我收到 Safari 浏览器地址栏和导航页脚 我怎样才能隐藏它们 以便我可以显示我的应用程序 您可以设置一些元标记来告诉 iOS 您的网站可以作为网络应用程序添加到主屏幕 一旦从那
  • 将 Scala Dataframe 写入 CSV 文件时应用 UTF8 编码

    在 Spark2 Scala 中将数据帧写入 CSV 文件时如何正确应用 UTF8 编码 我正在使用这个 df repartition 1 write mode SaveMode Overwrite format csv option he
  • JavaScript 中什么可能会打乱我的查询字符串参数构造函数?

    所以这可能是一个很长的机会 但我完全不知道可能导致这个问题的原因 我正在提供一个客户端 JavaScript 它解析嵌入的页面上的某些参数 使用这些参数构建 URL 并使用该 URL 将 iframe 注入到页面中 如下所示 var que
  • 在 Chrome/Safari 中添加 html5 属性后 Ajax 表单中断

    分步说明 新建 Asp Net MVC2 项目 Model public class TestModel public int Property get set 家庭控制器 HandleError public class HomeCont
  • 在 git 提交消息中使用任何 utf-8 字符是否安全?

    我发现使用 UTF8 字符 例如 很有用 请参阅here http www utf8icons com subsets dingbats 在提交消息中 重构 NewService 添加了更好的服务 OldServiceA 据我所见 它see
  • 多次触摸:仅当发生触摸移动时才会触发 touchend 事件

    我想在从 ios 设备 也许以后是 android 设备 访问我的 javascript 应用程序时添加一些多点触控功能 我想提供一个类似shift键功能 用户可以用一根手指按住屏幕上的按钮 按下此按钮时 屏幕其余部分上的点击操作的行为与经
  • 在 Safari 10 中设置不安全模式以使 java 插件访问本地文件的位置

    我刚刚将 Safari 从 Safari 9 更新到 Safari 10 beta 版本 我的客户端是一个从页面运行的java小程序 在Safari 9及之前版本中 运行正常 但在 Safari 10 beta 中 它失败了 我发现 saf
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • socket.io 的良好初学者教程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 如何每天在特定时间触发 akka 调度程序?

    我创建了一个 Akka 的调度程序 每天在固定时间发送邮件 例如每天上午 6 00 那么如何称呼演员呢 我的意思是我应该使用什么逻辑 谢谢 只需计算现在和接下来的下午 6 点之间的差异 将其作为初始延迟 然后每 24 小时重复一次
  • Rails 5 - 在编辑操作中使用范围来查找特定实例的相关子项

    我正在尝试学习如何在 Rails 5 应用程序中使用范围 我问了一个背景问题here https stackoverflow com questions 41755032 rails 5 exclude specific instances
  • 在 React 中专注于 div,无需单击即可在模块上启用键盘导航

    我正在 React 中从头开始编写一个图像库 当单击图像时 会弹出一个模式 与我的库组件分开的组件 我想要使用左右箭头在图片之间导航 不仅仅是屏幕上添加的箭头 onclick 但目前它只关注当我单击一次时的模式 然后我也可以使用键盘导航 o
  • AWS - cfn-init 不创建文件

    我是云信息新手 我正在使用 cfn init 创建文件 但不会创建文件 我的堆栈也不会失败 使用 EC2 实例等所需资源成功创建堆栈 它还会安装 AWS CLI 如用户数据中所述 但它只是不创建我希望创建的文件 我尝试使用不允许回滚堆栈的高
  • 测试 RESTful 服务的方法? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想直接通过 HTTP 测试我的 RESTful 应用程序 并且我正在寻找可以帮助我完成该任务的工具 基本上我正在寻找一个简单的 HTTP 请求包装器
  • 我是否需要告诉 Apache Tomcat 保持 Websocket 连接打开?

    我正在尝试Apache Tomcat Websocket 实现 http tomcat apache org tomcat 7 0 doc web socket howto html 问题是 连接总是在最多 30 秒的空闲时间后关闭 我是否
  • 通过 DataMapper 来自 SQLite 内存数据库的 No Such Table 错误

    我有一个 Ruby 程序 它使用 DataMapper 作为 ORM 与内存中的 SQLite DB 进行通信 这一直工作得很好 但是我最近刚刚添加了一个新的 DM 类和相应的表 令我惊讶的是 现在在 auto migrate 过程中事情发
  • 内存保护的最新技术水平如何?

    我对 C 语言 指针和内存管理等低级语言了解得越多 我就越想了解现代操作系统和内存保护的最新技术水平 例如 采取了哪些检查来防止某些恶意程序随机尝试读取尽可能多的地址空间并忽略操作系统设置的规则 一般来说 这些内存保护方案是如何工作的 他们
  • C# Microsoft Graph - 如何从 msal-browser 发送带有访问令牌的电子邮件

    我正在使用 C Microsoft Graph 发送电子邮件 但当我调用等待 graphClient Me SendMail message Request PostAsync 时 我遇到错误 对象引用未设置到对象的实例 方法 我尝试首先调
  • 如何找到ZedGraph上的索引位置

    有没有办法根据当前的 xPosition 找到曲线的索引位置 假设我有一个曲线项目 MyCurve 它有 20k 点 当鼠标移动时我可以获得鼠标位置 然后只需使用以下函数即可获得 x 和 y 位置 double xPos 0 yPos 0
  • 错误 lnk2005 已在 .obj 中定义

    关于这个错误有很多疑问 但它们只与一个变量相关 test h namespace World enum Objects TERRAIN 1 BOX 2 SPHERE 4 CAPSULE 8 void WorldObjects2 unsign
  • 如何将 SQL 结果集限制为不太常见的项目

    问题 我有一份姓名和地址列表 有些姓名 人 与其他姓名 人 具有相同的地址 街道 邮政编码 城镇 我想选择所有这些名称 其地址出现次数不超过三次 并从其余名称中选择前三个名称 每个名称都指向同一地址 例子 Albert Adr1 Berta
  • 连续单子转变

    在尝试为 ContT monad 转换器建立一些直觉时 我 也许并不奇怪 发现自己很困惑 问题在于 shiftT 操作似乎没有做任何有用的事情 首先是一个如何使用它的简单示例 shiftT famr gt lift do a lt calc
  • 按月分组获取数据集的百分位数

    我有一个 SQL 表 其中包含大量记录 如下所示 Date Score 01 01 2010 4 02 01 2010 6 03 01 2010 10 16 03 2010 2 我将其绘制在图表上 因此我在图表上画了一条漂亮的线 表示随时间
  • 如何使用thymeleaf作为模板引擎和飞碟作为渲染器使用密码保护pdf报告

    PDF 已成功生成 但我想用密码保护它 Flying saucer pdf 文档对我没有帮助 我正在使用这个例子使用thymeleaf flying saucer pdf Spring Boot http www oodlestechnol
  • 使用把手引用 css 和 js 文件的正确方法是什么?

    我目前在我的项目中使用 Express 和车把 这是我第一次使用车把 我不知道如何正确引用我的 css 和 js 文件的位置 我当前的项目结构如下 test root views js some JS files css some css
  • Json.net 反序列化返回一个空对象

    我正在使用下面的代码进行序列化 var json JsonConvert SerializeObject new summary summary summary是类型的自定义对象SplunkDataModel public class Sp
  • Firebase Cloud Functions - 创建 pdf、存储到存储桶并通过邮件发送

    我正在开发一个 Firebase 函数 当新订单添加到实时数据库时会触发该函数 它做的第一件事是创建一个 pdf 并将其通过管道传输到谷歌云存储桶 在存储桶流的 on finish 事件上 下一个函数将启动 该函数应通过电子邮件将管道传输的
  • 如何将通知从网站发送到 Android 应用程序 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我使用一些 javascript 和 php 制作了一个 html 网站 我使用 eclipse 和 java 制作了一个 andro
  • WebSocket - Safari 9 - 标头值中的 UTF-8 序列无效

    我正在创建一个在 Chrome 版本 47 0 2526 106 64 位 中工作的 WebSocket 但在 Safari 版本 9 0 2 11601 3 9 上失败 错误是Invalid UTF 8 sequence in heade