WebSocket协议的目的是为了工作于现有的网络基础设施。作为这一设计原则的一部分,WebSocket连接的协议规范定义了一个HTTP连接作为其开始生命周期,进而保证其与pre-WebSocket世界的完全向后兼容。通常来说从HTTP协议切换WebSocket称为WebSocket握手。

浏览器发送一个请求到服务器,这表明它想开关从HTTP WebSocket协议。客户端通过升级标题表达的愿望,代码如下所示:

复制代码代码如下:GET ws://echo.websocket.org/?encoding=text HTTP/1.1

Origin: http://websocket.org

Cookie: __utma=99as

Connection: Upgrade

Host: echo.websocket.org

Sec-WebSocket-Key: uRovscZjNol/umbTt5uKmw==

Upgrade: websocket

Sec-WebSocket-Version: 13

如果服务器理解WebSocket协议,它通过升级头同意协议切换。

复制代码代码如下:HTTP/1.1 101 WebSocket Protocol Handshake

Date: Fri, 10 Feb 2012 17:38:18 GMT

Connection: Upgrade Server: Kaazing Gateway

Upgrade: WebSocket

Access-Control-Allow-Origin: http://websocket.org

Access-Control-Allow-Credentials: true

Sec-WebSocket-Accept: rLHCkw/SKsO9GAH/ZSFhBATDKrU=

Access-Control-Allow-Headers: content-type

此时HTTP连接分解并取代了WebSocket连接在同一底层TCP / IP连接。WebSocket连接使用HTTP(80)和HTTPS端口一样(443),默认情况下。

连接建立后,WebSocket数据帧可以发送客户机和服务器之间来回在全双工模式下。两种文本和二进制帧可以在两个方向同时发送。只有两个字节数据最小陷害。对于文本帧,每一帧始于0 x00字节,以0 xff字节结束,包含utf - 8数据。WebSocket文本框架使用一个终结者,而二进制帧使用前缀长度。

html实现websocket协议,HTML5实现WebSocket协议原理浅析相关推荐

  1. 认识HTML5的WebSocket 认识HTML5的WebSocket

    2019独角兽企业重金招聘Python工程师标准>>> 在HTML5规范中,我最喜欢的Web技术就是正迅速变得流行的WebSocket API.WebSocket提供了一个受欢迎的技 ...

  2. html写个用户协议,五分钟学会HTML5的WebSocket协议

    1.背景 很多网站为了实现推送技术,所用的技术都是Ajax轮询.轮询是在特定的的时间间隔由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器.这种传统的模式带来很明显的缺点,即 ...

  3. 突袭HTML5之WebSocket入门1 - WebSocket协议

    这两年中,HTML5发展的如火如荼,再不学习一下,觉得自己都落后了.说到HTML5,最让我惊心动魄的特性我觉得就是全新的WebSocket通信协议了.有Web通信TCP之称的 WebSocket的出现 ...

  4. websocket中发生数据丢失_tcp协议;websocket协议;同源策略和跨域

    tcp协议 为什么连接的时候是三次握手,关闭的时候却是四次握手? 答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文.其中ACK报文是用来应答的,SYN报 ...

  5. 网络协议从入门到底层原理(10)WebSocket、WebService、RESTful、HTTPDNS、FTP文件传输协议、邮件相关协议、IPv6

    其他协议 WebSocket WebSocket - 建立连接 WebService RESTful HTTPDNS FTP文件传输协议 邮件相关的协议(SMTP.POP.IMAP) POP vs I ...

  6. WebSocket协议入门:WebSocket API

    HTML5连接性领域包括WebSocket.服务器发送事件和跨文档消息传递(Cross-Document Messaging)等技术.在HTML5之前,浏览器窗口和框架之间的通信由于安全的原因而受到限 ...

  7. SpringBoot实现STOMP协议下的WebSocket

    文章目录 WebSocket简介 STOMP简介 上去就是干 环境配置 引入依赖 新建WebSocket配置类 新建保存用户认证信息的实体类MyPrincipalHandshakeHandler 握手 ...

  8. websocket网络层详解_websocket 协议解析

    本文作者:IMWeb went 未经同意,禁止转载 1.使用websocket 场景 websocket作为用于双向通信的实用协议,在笔者最近做的全平台私信系统进行了应用.本次开发的私信系统与普遍理解 ...

  9. tomcat 将http协议改为https协议,Websocket请求ws协议修改为wss协议

    tomcat 将http协议改为https协议,Websocket请求ws协议修改为wss协议 一. 说明 WS协议和WSS协议两个均是WebSocket协议的SCHEM,两者一个是非安全的,一个是安 ...

最新文章

  1. 查看器_三款完美替代Windows10自带照片查看器的神器!
  2. mac下没有设置 SVN_EDITOR....错误解决方法
  3. Java for 循环中++i和i++的区别
  4. [云炬创业管理笔记]第三章打造优秀创业团队讨论4
  5. CRMEB Dockerfile文件
  6. groupby的用法
  7. BlockingCollectionT 类实现 列队操作
  8. Qt: error lnk1158 无法运行rc.exe
  9. mybatis plus使用in查询
  10. 泛微云桥任意文件读取漏洞[尽快升级]
  11. 页游游戏市场发展随笔
  12. 计算机论文英文摘要范文,毕业论文英文摘要范文三篇
  13. STM32F1读取MLX90614ESF非接触式温度传感器
  14. 批量替换 Word 文档某几页
  15. 安装fcitx五笔拼音
  16. 2019.9.11 小米笔试算法岗编程题 两个动归
  17. WIN10解包分区和磁盘分区教程
  18. 修改未能正确启动的docker容器的配置文件
  19. 用频谱仪测量晶体频率的方法
  20. 10min快速回顾C++语法(一)语法常识专题

热门文章

  1. 这就是飞秋下载早期的学习生涯
  2. 各个阶级的前端 必须掌握的基本技能汇总
  3. Jupyter简易上手的安装与使用教程
  4. 鸟类南飞,去的是哪个“南方”?
  5. 使用ssh公钥实现ssh免密码登录
  6. SIP系统怎么禁用?SIP系统完整性保护关闭方法(含M1)
  7. qaxobject控制word到某一行_太简单了!Excel信息导出为每页打印一行,且批量添加同一表头...
  8. P1618 三连击(升级版)-- python3实现
  9. laravel操作$request中值删除、增加、替换等方式的代码实例
  10. php采集绕过cloudflare,三行代码带你绕过cloudflare反爬