web应用程序使用什么协议通信.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
web应用程序使用什么协议通信

PAGE  PAGE 25 web应用程序使用什么协议通信 篇一:Web应用中的双向通信_Websocket简介 Web 应用中的双向通信 ——WebSockets 简介顾勤 译什么是 WebSockets?WebSockets 规范是在 HTML5 中开始提供的一种浏览器与服务器的 JavaScript 接口,该规范定 义了浏览器与服务器之间进行双全工消息传送的套接字连接。WebSockets 标准大大简化了服务器与 客户端之间的通信与连接管理。关于 HTML5 WebSocketsHTML5 WebSockets 规范定义了一个 API, 允许网页利用 WebSockets 协议与远程主机进行双向 通信。 该规范介绍了 WebSockets 接口, 并定义了一个通过网络上单一的套接字连接的双全工通信频 道。相对于两种模拟双全工连接的解决方案:轮询和长轮询,HTML5 WebSockets 降低了大量不必 要的网络传输和延迟。 HTML5 WebSockets 能够穿过网络上的一些障碍,如代理和防火墙,让数据流能够使用任意连 接传输,并在单一连接中支持上行数据流和下行数据流,基于 HTML5 WebSockets 的应用能减少服 务器的负担, 使现有的机器能够支持更多的并发连接数。 下图说明了一个基本的 WebSocket 的架构, 该架构中浏览器利用 WebSocket 与服务器进行双全工、直接的通信。WebSocket 的一个独特的功能就是穿越防火墙和代理的能力,很多应用程序都面临着这样的问 题。Comet 风格的应用程序采用长轮询作为解决防火墙和代理问题的基本方法。该技术虽有效,但 不适用于低于 500 毫秒的延迟或高吞吐量要求的应用程序。基于插件的技术,如 Adobe Flash,也提 供 一 定 的套 接 字接 口 支持 , 但 长期 以 来 也 一 直存 在 难 以穿 过 代理 和 防火 墙 的 问题 , 而现 在 WebSockets 解决了这个问题。 WebSocket 会检测存在的代理服务器,并自动设置穿越代理的通道。这个通道是通过发起一个 与代理服务的 HTTP CONNECT 声明来建立的,这需要代理服务器在指定的主机和端口上打开一个 TCP/IP 连接。一旦通道创建完成,就可以顺利穿过代理进行通信。由于 HTTP 和 HTTPS 的工作原 理相似,因此通过 SSL 的安全 WebSockets 可以采用与 HTTP CONNECT 相同的方法。要注意的是, 现在的浏览器都是最近才开始支持 WebSockets Chrome 浏览器最初版本就支持 WebSockets) 然而, ( 。 今天的浏览器都实现了向后兼容性,因而能够充分利用这一新兴技术。 WebSocket 和其它 HTML5 支持的特性(如本地存储和地理定位)一样,都是原始 HTML5 规范 的一部分,但为了更加重视,WebSocket 被分离成为一个独立的标准。WebSocket 被它的作者—— 网页超文本技术工作小组(WHATWG)提交给了 Internet 工程任务组(IETF) 。参与标准制定的作 者、传播者和公司,仍将 WebSockets 视为 HTML5 原始功能部件的集合中的一部分。 WebSocket 协议 WebSocket 协议的设计,使它在现有网络设施的基础上也能够很好的工作。基于这一设计原则, 协议规定:WebSocket 的生命周期从一个 HTTP 连接开始,以保证完全兼容 WebSocket 诞生之前的 网络环境。从 HTTP 到 WebSocket 协议的转换被称为 WebSocket 握手。 浏览器向服务发送一个请求,表明它要将协议由 HTTP 转为 WebSocket。客户端通过 HTTP 头中的 Upgrade 属性来表达这一请求:GET ws:///?encoding=text HTTP/1.1 Origin: Cookie: __utma=99as Connection: Upgrade Host: Sec-WebSocket-Key: uRovscZjNol/umbTt5uKmw== Upgrade: websocket Sec-WebSocket-Version: 13如果服务器支持 WebSocket 协议,同样通过 HTTP 头中的 Upgrade 属性来表示同意进行协议的转 换:HTTP/1.1 101 WebSocket Protocol Handshake Date: Fri, 10 Feb 2012 17:38:18 GMT Connection: Upgrade Server: Kaazing Gateway Upgrade: WebSocket Access-

文档评论(0)

1045141460 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档