websocket是基于http协议,借用http协议来完成连接阶段的握手;

当连接建立后,浏览器和服务器之间的通信就和http协议没有关系了,b、s之间只用websocket协议来完成基本通信。

=========

ajax轮询,其原理让浏览器隔几秒就发送一次请求,询问服务器是否有新的信息。

long poll,原理和ajax差不多,都是基于轮询的方式,不过是采用的阻塞模式。即client发起连接后,如果没有消息,就一直不返回response到客户端,知道有消息菜饭会,返回完之后,客户端在此建立连接,周而复始。下面是long poll的伪代码。

loop(){

if(connction){

request

while(response!=0){

wait;

}

hand the message;

}

}

==从上面的分析可以看到,client都是利用http主动建立连接,等待服务端处理。即服务端不能主动想client推送信息,只能等待client请求,被动回复请求。因为http协议是无状态的。

所以ajax的缺点是很明显,需要服务器有很快的处理速度。

long poll的缺点是则需要较高的并发量。

==websocket登场了,可以解决的问题包括:

1,服务器完成协议升级后http-》websocket,server可以主动想client推送信息。利用client定义的回调函数,来完成。

2,在传统的方式上,要不断建立和关闭http协议,由于http是非状态的,每次都要鉴别identity info(鉴别信息),来告诉server你是谁。

但是websocket只需要将一次http握手,整个的通信过程都是建立在一次连接中,也就避免了hthtp的非状态性。这样将客户主动询问,转换为服务器推送信息才发送信息。

=====

websocket协议详解;的更多相关文章

  1. WebSocket协议详解及应用

    WebSocket协议详解及应用(七)-WebSocket协议关闭帧 本篇介绍WebSocket协议的关闭帧,包括客户端及服务器如何发送并处理关闭帧.关闭帧错误码及错误处理方法.本篇内容主要翻译自RF ...

  2. WebSocket协议详解与c++&c#实现

    摘要: 随着手机游戏.H5游戏以及微信小游戏的普及,越来越多的客户端-服务器端的通讯采用websocket协议.Websocket协议是全双工的.基于数据帧的.建立在tcp之上的长连接协议.Webso ...

  3. WebSocket协议详解

    转自 http://www.cnblogs.com/lizhenghn/p/5155933.html 1. websocket 是什么 websocket 是html5提出的一个协议规范,参考rfc6 ...

  4. WebSocket 协议详解

    一.WebSocket 协议背景 早期,在网站上推送消息给用户,只能通过轮询的方式或 Comet 技术.轮询就是浏览器每隔几秒钟向服务端发送 HTTP 请求,然后服务端返回消息给客户端. 轮询技术一般 ...

  5. HTTP协议详解(转)

    转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...

  6. HTTP协议详解

    Author :Jeffrey 引言 HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展. ...

  7. 动态选路、RIP协议&&OSPF协议详解

    动态选路.RIP协议&&OSPF协议详解 概念 当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路.路由器之间必须采用选路协议进行通信,这样的选路协议 ...

  8. ASP.NET知识总结(3.HTTP协议详解)

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  9. 接口测试之HTTP协议详解

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

随机推荐

  1. Java基础知识(持续更新中...)

    1.成员变量:全局变量/字段(Field),不要称之为属性(错误)直接定义在类中,方法外面 1.类成员变量    使用static修饰的变量 2.实例成员变量 没用使用static修饰的变量 局部变量 ...

  2. MySQL存储引擎与索引

    引言: MySQL存储引擎主要分为 InnoDB 存储引擎与 MyISAM 存储引擎.都采用B+数的存储结构. 应用场景: InnoDB适合:(1)可靠性要求比较高,要求事务:(2)大量 insert ...

  3. 小白袍 -- Chapter 1 Java中的Encode与Decode

    前几天做一个邮件发送功能,一些常用信息配置在properties文件中,通过prop.getProperty(key)来获取配置的信息,结果配置文件中是用中文写的,邮件发送成功后,邮箱中的激活链接是乱 ...

  4. iOS9全新的联系人相关框架——Contacts Framework

    iOS9全新的联系人相关框架——Contacts Framework 一.引言 在以前iOS开发中,涉及联系人相关的编程,代码都非常繁琐,并且框架的设计也不是Objective-C风格的,这使开发者用 ...

  5. 使用Vscode写python

    在python官网下载好python2.x 或者 3.x, 然后在vscode 下载python插件. 写一个python程序, 运行, vscode会自动提示你配置python执行路径,并帮你创建好 ...

  6. SAP ABAP 日期,时间 相关函数

    获的两个日期之间的分钟数 data min TYPE i. CALL FUNCTION 'DELTA_TIME_DAY_HOUR' EXPORTING T1 = ' T2 = ' D1 = ' D2 ...

  7. (四)启用HTTPS

    安全规范中有一条是要求尽量使用https而弃用http(新Chrome将标记非HTTPS网站为不安全),其实启用https和之前的ipv6改造一样,并不是什么高难度或者工作流繁多的的改造,只需将中间件 ...

  8. docker化安装grafana

    继续进行docker改造. 1. 找镜像.拉取镜像 [root@devlop ~]# docker search grafana INDEX NAME DESCRIPTION STARS OFFICI ...

  9. JZOJ 5934. 列队

    Description         Sylvia是一个热爱学习的女孩子.        在平时的练习中,他总是能考到std以上的成绩,前段时间,他参加了一场练习赛,众所周知,机房是一个 的方阵.这 ...

  10. Ubuntu14.04安装opencv2.4.13

    本文参考相关链接:http://blog.csdn.net/honyniu/article/details/46390097   系 统:Ubuntu 14.04 x64 opencv版本:2.4.1 ...