【Web Socket简介】
Web Socket简介
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简介】相关推荐
- Web Socket简介
1. Web Socket 是 HTML5 的新协议,允许服务器端向客户端发送数据,是一种全双工.双向的通信方式,并且它可以保持长时间通信. 概念理解: [1]全双工:意思就是服务器向浏览器发送数据的 ...
- web安全简介_Web安全:HTTP简介
web安全简介 by Alex Nadalin 通过亚历克斯·纳达林 Web安全:HTTP简介 (Web Security: an introduction to HTTP) This is part ...
- Tim Berners-Lee重新分散的新Web SOLID简介
by Arnav Bansal 通过Arnav Bansal Tim Berners-Lee重新分散的新Web SOLID简介 (An introduction to SOLID, Tim Berne ...
- 《jQuery与JavaScript入门经典》——第 1 章 动态Web编程简介 1.1理解Web服务器浏览器范式...
本节书摘来自异步社区<jQuery与JavaScript入门经典>一书中的第1章,第1.1节,作者:[美]Brad Dayley著,更多章节内容可以访问云栖社区"异步社区&quo ...
- web socket 心跳包的实现方案
web socket 心跳包的实现方案05/30/2010 现在网络环境错综复杂,socket心跳包是获得健康强壮的连接的有效解决方案,今天,我们就在web socket中实现心跳包方案,是的,尽管我 ...
- web API简介(二):客户端储存之document.cookie API
概述 前篇:web API简介(一):API,Ajax和Fetch 客户端储存从某一方面来说和动态网站差不多.动态网站是用服务端来储存数据,而客户端储存是用客户端来储存数据.document.cook ...
- Socket简介及客户端服务器连接实例
注: 在客户端游戏开发中,使用HTTP进行网络通信的比较少,一般使用的都是Socket进行通信.而HTTP一般用于网页或者网页游戏. [Socket简介] 1.套接字(socket)概念 套接字(s ...
- 第一章 Web MVC简介 —— 跟开涛学SpringMVC
第一章 Web MVC简介 -- 跟开涛学SpringMVC Web MVC简介 1.1.Web开发中的请求-响应模型: 在Web世界里,具体步骤如下: 1. Web浏览器(如IE)发起请求,如访问 ...
- Web Socket/Stomp——整合Spring Session【Header Token模式】解决方案
官方文档 https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#websocket-stomp-au ...
最新文章
- 用Python实现武侠小说中的武打动作残影特效
- 服务器网站数据用什么方式加以保留?
- Intel VT学习笔记(九)—— EPT应用示例
- Robot Framework基础学习(六)
- .NET跨平台之旅:博问站点迁移至ASP.NET Core on Linux并发布上线
- linux struct input_event结构体详解
- 部署Linux单机kafka踩坑
- SVN环境搭建详解(来源网络)
- fread读取同一个文件得到缓冲区大小不同_c++日志文件操作
- scala中的filter函数
- 闲人闲谈PS之十四——幕墙工程系统化管理施工设计篇
- 微信小程序 js部分语法
- 计算机考研复试之计算机网络
- java捕鱼达人源码_捕鱼达人java源码(完整功能)
- C#工具栏的各种工具
- Django学习笔记-settings.py详解
- 怎么在中国使用chatgpt
- kmeans聚类图像的像素并可视化
- java书籍 李清华_201772020113 李清華《面向對象程序設計(java)》第18周學習總結...
- 华三交换机配置access命令_h3c交换机配置命令
热门文章
- 信息技术计算机的飞速发展,21世纪是一个信息技术飞速发展和计算机广泛应用.doc...
- 【weixin】微信支付---PC网站微信支付
- Go微服务架构实战-中篇 1. k8s架构介绍
- 合纵连横:手机中国联盟在上海成立
- Linux下pdf阅读器推荐
- this code must be changed as there‘s no longer a status bar or status bar window.
- 人工智能如何改变半导体的分层技术
- 汉语言文学自考本科考计算机研究生,汉语言文学考研方向有什么高校?接受自学考试生吗?...
- 【场景化解决方案】销帮帮酷应用,帮助企业销售团队实现精细化管理
- 动力环境集中监控系统的常用技术