似乎都使用 websocket 进行数据传输也无不可?
可以完全基于 websocket。
但是
等等很多东西都无了。昂,对了,鉴权也是一个其他的方式。
已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。
知乎上这个老哥直接点明了这个问题的本质:
是问“WebSocket能否完全替代HTTP作为前后端通信协议么?”
如果是这样的话,这个问题可以转换为另一个问题:“双向通信能否完全替代单向通信?”
答案是显然的,绝对没问题!
https://www.zhihu.com/questio...
已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。
这个其实涉及具体应用情况,而不是简单的不是这个就是那个的问题。
总之,很多技术栈是有背景的,脱离了具体的背景去谈意义不大,而且信息技术中是没有银弹的。
已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。
这么说吧,websocket可以理解是原生tcp的替代品,简化了很多tcp的协议约定,端序,粘包拆包之类的操作;http1.1 是建立在tcp基础上的,稳定传输重试之类的,只不过是单向的。websocket在http2之前是为了解决http单向传输而生的。所以从演进和功能上也可以看出来,当然还需要http。
websocket的握手是使用http协议进行,所以websocket/http之间不存在替代的关系。而http2是支持双向传输的,所以还需不需要 websocket 倒是个问题。
1 回答565 阅读✓ 已解决
1 回答696 阅读
524 阅读
内事不觉问维基,外事不觉问谷歌
https://zh.wikipedia.org/wiki...
Websocket不同于Http,但是Websocket经常是在Http上实现,与http协议兼容。
感觉你的问题是,已经有了一个websocket长连接后,还需要再起一个http连接通讯否?
这个需要看你的具体需求了,websocket做成一个全双工通讯,在websocket连接完成所有通许,这样做没问题,但是可能耦合性比较大。反正websocket主要做复杂长连接通讯,一些周边支线通讯、不需要维护状态的通讯用http连接去做,减少了系统耦合度,简化通讯模型,肯定是利大于弊的。
已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。