http2.0与WebSocket的关系是咋样的
WebSocket是基于HTTP1.1的协议,可以简单理解为创建了一条TCP连接,
在JS中用new WebSocket("ws://hostname/chattingrom/")来创建,具有双向传输二进制等特性。
而HTTP2.0则是对HTML、CSS等JS资源的传输方式进行了优化,并没有提供新的JS API,也不能用于实时传输消息。
如果需要实时传输消息,现在还是需要SSE、WebSocket。
现在的WebSocket还不能用于HTTP2.0的链路上。协议还在设计。
draft-hirano-httpbis-websocket-over-http2-01 - WebSocket over HTTP/2
draft-svirid-websocket2-over-http2-00 - WebSocket2 over HTTP/2
■网友
我觉得不会被淘汰。
【http2.0与WebSocket的关系是咋样的】 HTTP协议和WebSocket协议都是应用层的协议,两者应用场景不一样。
HTTP主要用来一问一答的方式交付信息;WebSocket让通信双方都可以主动去交换信息。
HTTP2虽然支持服务器推送资源到客户端,但那不是应用程序可以感知的,主要是让浏览器(用户代理)提前缓存静态资源,所以我们不能指望HTTP2可以像WebSocket建立双向实时通信。
但是人类的想象力是非常丰富的。比如为了让服务器可以推送消息给客户端,使用了一个“偏方”。它就是SSE(Server Sent Event)。
推荐参考MDN相关SSE的介绍:SSE 和 EventSource
SSE简单说就是,借助http协议支持分块传输这一特性。在响应报文里,设置Content-Type: text/event-stream,如此一来响应报文实体就可以多次从服务器返回给客户端,只需要约定好边界就好,比如SSE的边界就是以空行作为消息分隔符。
服务器返回的每一条消息大致有如下格式:: this is a test streamevent: usereventdata: some text上面就表示,服务器发来两条消息,第一条是注释(主要用来keep-alive),第二条是实数据,可以被客户端EventSource对象注册的onmessage事件监听到。
■网友
draft-hirano-httpbis-websocket-over-http2-01 可以参考, 在http2.0 f下层stream协议基础上实现websocket协议,优点: 原来n条websocket干的活, 现在一条搞定, 其实就是多了个多路复用
■网友
参考:解读 JavaScript 之深入探索 WebSockets 和 HTTP/2
■网友
不会的,http2中Server是可以主动关闭连接的,所以并不是长连接
推荐阅读
- 浙江临海男子勇救儿童:“我60岁了,牺牲都没关系”
- 警方:锦江学院2死者系男女朋友关系男子杀人后跳楼
- 最近看到很多微邦克的宣传,可信吗,和微众银行啥关系啊
- |共促和谐劳动关系 工会法律和集体协商技能竞赛启动
- 女子23年前分配工作至今未有通知,“单位”仲裁解除劳动关系
- 肝癌|夫妻俩相继查出肝癌,医生感叹:与睡前1事脱不了关系
- 端口到底是啥概念和ip之间有啥关系能形象+抽象的从技术角度描述一下吗
- 基于OGRE的NeoAxis3D引擎和网易的NeoX引擎有啥关系吗
- 华商云公益是啥,和欧美同学基金会又是啥关系啊
- 非凡三侠|章子怡费尽心思打进的名媛圈,名媛冯咏仪也出镜,两人关系也是超好
