我的网站开发技术经验总结 我的网站开发技术经验总结
首页

fangdown

我的网站开发技术经验总结
首页
  • 大前端

  • 基础

  • 框架

  • 情商

  • 算法

  • 网络

    • 如何理解CDN?说说实现原理
    • 如何理解OSI七层模型
    • 说说 HTTP 常见的状态码有哪些,适用场景?
    • 说说 HTTP 常见的请求头有哪些和作用
    • 说说TCP为什么需要三次握手和四次挥手
    • 说说dns的查询过程
    • 说说get和post的区别
    • 说说http1.0&http1.1&http2.0区别
    • 说说https的加密原理
    • 说说http和https的区别
    • 说说tcp和udp之间的区别
    • 说说地址栏输入 URL 敲下回车后发生了什么?
    • 说说对websocket的理解和应用场景
      • 是什么
        • 特性
      • 应用场景
      • 优点
      • FAQ
  • 千锤百炼
  • 网络
fangdown
2021-08-12
目录

说说对websocket的理解和应用场景

# 是什么

websocket是一种网络传输协议,位于osi模型的应用层

# 特性

  • 全双工

  • 一次握手即可

    • 请求格式:
      GET /chat HTTP/1.1
      Host: server.example.com
      Upgrade: websocket
      Connection: Upgrade
      Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
      Origin: http://example.com
      Sec-WebSocket-Protocol: chat, superchat
      Sec-WebSocket-Version: 13
      
      • 返回格式:
      HTTP/1.1 101 Switching Protocols
      Upgrade: websocket
      Connection: Upgrade
      Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=Sec-WebSocket-Protocol: chat
      
    • Connection:必须设置Upgrade,表示客户端希望连接升级
    • Upgrade:必须设置Websocket,表示希望升级到Websocket协议
    • Sec-WebSocket-Key:客户端发送的一个 base64 编码的密文,用于简单的认证秘钥。要求服务端必须返回一个对应加密的Sec-WebSocket-Accept应答,否则客户端会抛出错误,并关闭连接
    • Sec-WebSocket-Version :表示支持的Websocket版本
  • 双向通信

  • 二进制帧

  • 协议名

    • 80 明文
    • 443 密文
ws://www.chrono.com
ws://www.chrono.com:8080/srv
wss://www.chrono.com:445/im?user_id=xxx

# 应用场景

  • 弹幕
  • 媒体聊天
  • 协同编辑
  • 基于位置的应用
  • 体育实况更新
  • 其他实时更新应用

# 优点

  • 连接开销小
  • 更强的实时性
  • 更好的二进制支持
  • 更好的压缩效果
  • 支持扩展(如子协议)

# FAQ

#websocket
上次更新: 2021/12/19, 18:05:42
说说地址栏输入 URL 敲下回车后发生了什么?

← 说说地址栏输入 URL 敲下回车后发生了什么?

最近更新
01
多分支修复撞车的问题
05-01
02
如何成为架构师
01-23
03
服务器部署全过程
11-23
更多文章>
Theme by Vdoing | Copyright © 2019-2026 fangdown | 粤ICP备19079809号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式