栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Websockets客户端API中的HTTP标头

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Websockets客户端API中的HTTP标头

更新了2倍

简短答案: 不,只能指定路径和协议字段。

更长的答案:

Javascript WebSocketsAPI中没有用于指定客户端/浏览器要发送的其他标头的方法。可以在WebSocket构造函数中指定HTTP路径(“
GET / xyz”)和协议标头(“ Sec-WebSocket-Protocol”)。

Sec-WebSocket-Protocol标头(有时会扩展以用于特定于Websocket的身份验证)是从WebSocket构造函数的可选第二个参数生成的:

var ws = new WebSocket("ws://example.com/path", "protocol");var ws = new WebSocket("ws://example.com/path", ["protocol1", "protocol2"]);

上面的结果产生以下标题:

Sec-WebSocket-Protocol: protocol

Sec-WebSocket-Protocol: protocol1, protocol2

实现WebSocket身份验证/授权的一种常见模式是实现一种票证系统,其中托管WebSocket客户端的页面从服务器请求票证,然后在WebSocket连接设置过程中的URL
/查询字符串中,在协议字段中传递该票证,或要求在建立连接后作为第一条消息。然后,服务器仅在票证有效时(存在,尚未使用,票证匹配中编码的客户端IP,票证中的时间戳是最近的等)允许连接继续。

基本身份验证以前是一个选项,但已弃用,即使指定了标头,现代浏览器也不会发送标头。

基本身份验证信息(不建议使用)

Authorization标头是从WebSocket URI的用户名和密码(或仅用户名)字段生成的:

var ws = new WebSocket("ws://username:password@example.com")

上面的结果导致以下标头带有字符串“ username:password” base64编码:

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

我已经在Chrome 55和Firefox50中测试了基本身份验证,并验证了该基本身份验证信息确实是与服务器协商的(在Safari中可能无法使用)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517817.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号