websocket初步了解
websocket是一种新型的协议,协议标识符为ws,加密即为wss
简单说来就是一种持续的http服务,但不需要多次请求,仅需要进行一次通讯,后期使得服务端自动回应
在http1.0中,http的生命周期是依靠一个request和一个respone来界定,收到一次响应后就结束了,而在http1.1中加入了keep-live,增加访问时间,发送多次request请求,接受多个respone
一个普通的websocket包会在请求头中加入
Upgrade: websocket
Connection: Upgrade
表示自己发送的是一个websocket包
然后通过
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
表明自己需要的信息
sec-websocket-protocol表示自己需要的服务
sec-websocket-version表示websocket的版本
Sec-WebSocket-Key表示自己的加密信息
然后服务端会返回一个数据包
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
Sec-WebSocket-Protocol: chat
Sec-WebSocket-Accept表示服务端收到信息后返回的加密的信息,是 Sec-WebSocket-Key”加上一个特殊字符串 258EAFA5-E914-47DA-95CA-C5AB0DC85B11,然后计算 SHA-1 摘要,之后进行 BASE-64 编码,将结果做为Sec-WebSocket-Accept 头的值,返回给客户端。
Sec-WebSocket-Protocol表示请求的服务
这样就会建立一个websocket服务,获得到自己需要的资源
websocket初步了解的更多相关文章
- websocket 初步使用经验(python)
想实现网页前端和后端的数据同步交互,就有必要使用 websocket 的方式进行通信. python websocket github 地址:git@github.com:Aplexchenfl/py ...
- 基于JSR-356实现的Tyrus WebSocket框架的消息传递机制初步了解
对阻塞.非阻塞,同步.异步初步了解了,不是太明白,其中大多数将的是对于CPU的使用率及对一个事件的处理效率. 阻塞与非阻塞各有优缺点,在知乎上也看到了下面的结论: 在处理 IO 的时候,阻塞和非阻塞都 ...
- WebSocket详解(一):初步认识WebSocket技术
1.什么是Socket?什么是WebSocket? 对于第1次听说WebSocket技术的人来说,两者有什么区别?websocket是仅仅将socket的概念移植到浏览器中的实现吗? 我们知道,在网络 ...
- 借助node实战WebSocket
一.WebSocket概述 WebSocket协议,是建立在TCP协议上的,而非HTTP协议. 如下: ws://127.0.0.1或wss://127.0.0.1就是WebSocket请求. 注:w ...
- 使用wireshark抓包分析浏览器无法建立WebSocket连接的问题(server为Alchemy WebSockets组件)
工作时使用了Websocket技术,在使用的过程中发现,浏览器(Chrome)升级后可能会导致Websocket不可用,更换浏览器后可以正常使用. 近日偶尔一次在本地调试,发现使用相同版本的Chrom ...
- Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE
1. 前言 Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Serve ...
- WebSocket使用教程 2
WebSocket使用教程 - 带完整实例 收藏 james_laughing 发表于 2年前 阅读 46438 收藏 23 点赞 5 评论 4 摘要: WebSocket使用教程 - 带完整实例 什 ...
- WebSocket使用教程 - 带完整实例
http://my.oschina.net/u/1266171/blog/357488 什么是WebSocket?看过html5的同学都知道,WebSocket protocol 是HTML5一种新的 ...
- 基于Tomcat7、Java、WebSocket的服务器推送聊天室
http://blog.csdn.net/leecho571/article/details/9707497 http://blog.fens.me/java-websocket-intro/ jav ...
随机推荐
- java通过各种类型驱动连接数据库
常见数据库驱动实现类:JDBC-ODBC:sun.jdbc.odbc.JdbcOdbcDriver Oracle:oracle.jdbc.driver.OracleDriver MySQL:com.m ...
- hdu 4903 The only survival
The only survival http://acm.hdu.edu.cn/showproblem.php?pid=4903 Time Limit: 40000/20000 MS (Java/Ot ...
- sscanf的用法
sscanf也太好用了8我竟然一直都不知道qaq #include<cstdio> #include<cstdlib> #include<cstring> #inc ...
- szoj657 【AHSDFZNOI 7.2 WuHongxun】Odd
[题目大意] 给出$n$个数$a_1, a_2, ..., a_n$,求有多少个区间$[l, r]$,满足每个数都出现了奇数次. $1 \leq n \leq 2 * 10^5, 0 \leq a_i ...
- HDU 2717 Catch That Cow (深搜)
题目链接 Problem Description Farmer John has been informed of the location of a fugitive cow and wants t ...
- 简易微信小程序签到功能
一.效果图 点击签到后 二.数据库 用一张数据表存用户签到的信息,每次用户签到都会往表中添加一条记录了用户id和签到日期的数据,如下图 三.后端 后端写两个接口,一个用于查询用户今日是否签到和签到记录 ...
- MongoDB 数据库(2)
db.collectionName 集合对象 获取集合对象 db.getCollection('collection_name') e.g. db.getCollection("class0 ...
- MVC4 AspNet MVC下的Ajax / 使用JQuery做相关的Ajax请求
源码参考:链接:http://pan.baidu.com/s/1pKhHHMj 密码:mkr4 1:新建-->项目-->Web-->ASP.NET MVC 4 Web 应用程序.命 ...
- 使用ubuntun16.04代码笔记
(1)cd /代表到根目录下面:ls表示将盘中内容列出:cd /home表是打开根目录下的home文件夹:(注意:凡是根目录下的文件夹前面都要加 /) (2)快捷键方式:可以用tab自动补全 (1 ...
- cart回归树算法过程
回归树:使用平方误差最小准则 训练集为:D={(x1,y1), (x2,y2), …, (xn,yn)}. 输出Y为连续变量,将输入划分为M个区域,分别为R1,R2,…,RM,每个区域的输出值分别为: ...