1. Web Socket 是 HTML5 的新协议,允许服务器端向客户端发送数据,是一种全双工、双向的通信方式,并且它可以保持长时间通信.

概念理解:

【1】全双工:意思就是服务器向浏览器发送数据的同时,浏览器也可以向服务器传递数据,即同时进行信息的双向传递.

  扩展:(1)半双工:允许通信双方互相传递数据,但是在一方 A 向另一方 B 传递数据时,B 不能向 A 传,类比独木桥.

  (2)单工:即只允许一方 A 向另一方 B 传递数据,B 永远都不能向 A 传递数据,类比单行道.

【2】长时间通信:类比 HTTP 协议是一次请求,一次响应,两次请求之间不存在任何关系,除非加入 cookie 保存信息。而 Web Socket 只需要一次请求,接下来一直处于同一个连接状态进行通讯.

2. Web Socket 通信过程:首先使用 HTTP 协议进行握手初始化连接,服务器响应后,连接使用 Upgrade 头部字段将 HTTP 协议切换到 Web Socket 协议. 之后就可以在一次连接中一直保持通信,而不需要像 HTTP 协议,不断的请求-响应、请求-响应......【这里转一张图:

3. Web Socket 特点:

【1】与 HTTP 协议兼容

【2】建立在 TCP 协议上,利用了握手,与 HTTP 协议同属 应用层.

【3】服务器和客户端可以发送少量数据,性能开销小,通信高效

【4】没有同源策略限制

【5】协议标志符是 ws 和 wss,前者为不安全协议,后者为安全协议

【6】可以发送文本,也可以发送二进制数据

Web Socket简介相关推荐

  1. 【Web Socket简介】

    Web Socket简介 1. Web Socket 是 HTML5 的新协议,允许服务器端向客户端发送数据,是一种全双工.双向的通信方式,并且它可以保持长时间通信. 概念理解: [1]全双工:意思就 ...

  2. web安全简介_Web安全:HTTP简介

    web安全简介 by Alex Nadalin 通过亚历克斯·纳达林 Web安全:HTTP简介 (Web Security: an introduction to HTTP) This is part ...

  3. Tim Berners-Lee重新分散的新Web SOLID简介

    by Arnav Bansal 通过Arnav Bansal Tim Berners-Lee重新分散的新Web SOLID简介 (An introduction to SOLID, Tim Berne ...

  4. 《jQuery与JavaScript入门经典》——第 1 章 动态Web编程简介 1.1理解Web服务器浏览器范式...

    本节书摘来自异步社区<jQuery与JavaScript入门经典>一书中的第1章,第1.1节,作者:[美]Brad Dayley著,更多章节内容可以访问云栖社区"异步社区&quo ...

  5. web socket 心跳包的实现方案

    web socket 心跳包的实现方案05/30/2010 现在网络环境错综复杂,socket心跳包是获得健康强壮的连接的有效解决方案,今天,我们就在web socket中实现心跳包方案,是的,尽管我 ...

  6. web API简介(二):客户端储存之document.cookie API

    概述 前篇:web API简介(一):API,Ajax和Fetch 客户端储存从某一方面来说和动态网站差不多.动态网站是用服务端来储存数据,而客户端储存是用客户端来储存数据.document.cook ...

  7. Socket简介及客户端服务器连接实例

    注:  在客户端游戏开发中,使用HTTP进行网络通信的比较少,一般使用的都是Socket进行通信.而HTTP一般用于网页或者网页游戏. [Socket简介] 1.套接字(socket)概念 套接字(s ...

  8. 第一章 Web MVC简介 —— 跟开涛学SpringMVC

    第一章 Web MVC简介 -- 跟开涛学SpringMVC Web MVC简介 1.1.Web开发中的请求-响应模型: 在Web世界里,具体步骤如下: 1.  Web浏览器(如IE)发起请求,如访问 ...

  9. Web Socket/Stomp——整合Spring Session【Header Token模式】解决方案

    官方文档 https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#websocket-stomp-au ...

最新文章

  1. hud 5929.Basic Data Structure
  2. Manifest值冲突解决方法
  3. 算法题26 复杂链表的复制
  4. odu oracle 价格_Oracle数据库ODU的几种恢复场景
  5. c语言不同指令意识,C语言必须理清的概念1
  6. 玩转C语言之数组-数组指针
  7. android 设置点击ProgressDialog外的区域不消失
  8. NOIP 模拟 box - 费用流 / 匈牙利
  9. php获取访问者ip地址汇总,php获取访问者IP地址汇总_PHP
  10. 浅谈:国内软件公司为何无法做大做强?
  11. 面试题系列(10):一个大型电商网有大量的图片,加载很慢,你有哪些方法优化这些图片的加载?...
  12. 庆祝自开博来首篇浏览数过万的随笔诞生 - [原创]从程序员角度分析安徽电信HTTP劫持的无耻行径......
  13. 基于JAVA+SpringMVC+Mybatis+MYSQL的网上医院预约挂号系统
  14. 把RDD简单的转换成DataFrames
  15. cs1.6服务器弹道优化,CS1.6弹道优化命令.doc
  16. 如何搭建中国电信物联网云平台
  17. Adobe Photoshop 2021 22.4.2 绿色精简版
  18. 快速成为脚本小子_什么是脚本小子? 如何成为脚本小子?
  19. ubuntu中无法安装vim
  20. Ozone数据探查服务Recon的启用

热门文章

  1. ionic 配置java_Ionic,android和java环境配置
  2. android9夜间模式,遗憾:三星S9安卓9.0正式版升级阉割夜间模式
  3. 本地IP跟localhost的区别
  4. TCPIP协议栈的心跳、丢包重传、连接超时机制实例详解
  5. 2021-05-24 Hikvision DS-TVL224-4-5Y Python 显示部分驱动代码
  6. 芯片,SOC和MCU区别;裸机和带系统
  7. linux系列安装python3.0以上的版本
  8. codeforces 242E XOR on Segment
  9. 51CTO资源下载器
  10. Cadence Allegro 导出Gerber-PCB加工文件SMT钢网制作文件图文教程及视频演示