Web端服务器推送技术原理分析及dwr框架简单的使用(1)

这篇具有很好参考价值的文章主要介绍了Web端服务器推送技术原理分析及dwr框架简单的使用(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

随着 Ajax技术的兴起,让广大开发人员又一次看到了使用浏览器来替代桌面应用的机会,并且这次机会非常大。Ajax将整个页面的刷新变成页面局部的刷新,并且数据的传送是以异步方式进行,这使得网络延迟带来的视觉差异将会消失。

但是,在浏览器中的 Ajax应用中存在一个致命的缺陷无法满足传统桌面系统的需求。那就是“服务器发起的消息传递”(Server-Initiated Message Delivery)。在很多的应用当中,服务器软件需要向客户端主动发送消息或信息。因为服务器掌握着系统的主要资源,能够最先获得系统的状态变化和事件的发生。当这些变化发生的时候,服务器需要主动的向客户端实时的发送消息。例如股票的变化。在传统的桌面系统这种需求没有任何问题,因为客户端和服务器之间通常存在着持久的连接,这个连接可以双向传递各种数据。而基于HTTP协议的 Web应用却不行。

2 客户端得到通知的方式

图1 传统web 访问机制

我们知道, Web的访问机制天生是设计用来 pull数据的,如图 1,也就是只允许 Browser端主动发起请求,server是被动的响应,不允许Server向 Browser发出一个 connection请求,也就是说没有为server向 Browser push数据提供设计实现.虽然没有直接的实现方法,却可以使用一些变通的方式完成类似的功能。

2.1 传统轮询

在 Web早期,这一点常使用meta刷新实现。这将自动指示浏览器在指定秒数之后重新装载页面,从而支持简陋的轮询(polling)。例如在HTML文件中加入 ,实际上就是 HTTP 头标告知浏览器每 12 秒更新一次文档。

优点 :不需要服务器端的配置。

缺点 :

a) 糟糕的用户体验

b) 对服务器的压力很大,并且造成带宽的极大浪费。

2.2 Ajax 轮询

Ajax隔一段时间(通常使用JavaScript的setTimeout函数)就去服务器查询是否有改变,从而进行增量式的更新。但是间隔多长时间去查询成了问题,因为性能和即时性造成了严重的反比关系。间隔太短,连续不断的请求会冲垮服务器,间隔太长,务器上的新数据就需要越多的时间才能到达客户机。

优点:

a) 不需要太多服务器端的配置。

b) 降低带宽的负荷(因为服务器返回的不是完整页面)。

缺点:

a) 对服务器的压力并不会有明显的减少。

b) 实时性差,有一定的延迟。

应用: 这是一项非常常见的技术,例如,大多数 webmail应用程序就是通过这种技术在电子邮件到达时显示电子邮件的。

2.3 Comet

Comet方式通俗的说就是一种长连接机制(long lived http)。同样是由Browser端主动发起请求,但是Server端以一种似乎非常慢的响应方式给出回答。这样在这个期间内,服务器端可以使用同一个connection把要更新的数据主动发送给Browser。因此请求可能等待较长的时间,期间没有任何数据返回,但是一旦有了新的数据,它将立即被发送到客户机。Comet又有很多种实现方式,但是总的来说对Server端的负载都会有增加.虽然对于单位操作来说,每次只需要建议一次connection,但是由于connection是保持较长时间的,对于 server端的资源的占用要有所增加。

优点: 实时性好(消息延时小);性能好(能支持大量用户)

缺点: 长期占用连接,丧失了无状态高并发的特点。

应用: 股票系统、实时通讯。

2.4 Flash XML Socket

这种方案实现的基础是:一、Flash提供了 XMLSocket类。二、 JavaScript 和 Flash的紧密结合:在 JavaScript可以直接调用 Flash程序提供的接口。

缺点:

a) 因为XMLSocket没有HTTP隧道功能,XMLSocket类不能自动穿过防火墙;

b) 因为是使用套接口,需要设置一个通信端口,防火墙、代理服务器也可能对非HTTP通道端口进行限制;

应用: 网络聊天室,网络互动游戏。

2.5 Java Applet 套接口

在客户端使用 Java Applet,通过 java.net.Socket或java.net.DatagramSocket或java.net.MulticastSocket 建立与服务器端的套接口连接,从而实现“服务器推送 ”。

缺点: 需要客户端安装 JAVA虚拟机。

3 Comet 介绍

Comet 有时也称反向 Ajax或服务器端推技术(server-side push)。其思想很简单:将数据直接从服务器推到浏览器,而不必等到浏览器请求数据。听起来简单,但是如果熟悉Web 应用程序,尤其是HTTP协议,那么您就会知道,这绝不简单。实现Comet风格的 Web应用程序,同时保证在浏览器和服务器上的可伸缩性,这只是在最近几年才成为可能。目前一些主流网站都有类似的原理,例如:webQQ、开心网、校内等等,它们中消息动态都是采用类似的技术,只是具体实现方式不一样。

COMET的精髓就在于用服务器与javascript来维持浏览器的长连接,同时完成服务器端事件的浏览器端响应。这样的事件广播机制是跨网络的,同时也是实时的。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

Web端服务器推送技术原理分析及dwr框架简单的使用(1),程序员,前端,服务器,okhttp

Web端服务器推送技术原理分析及dwr框架简单的使用(1),程序员,前端,服务器,okhttp

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

Web端服务器推送技术原理分析及dwr框架简单的使用(1),程序员,前端,服务器,okhttp

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

Web端服务器推送技术原理分析及dwr框架简单的使用(1),程序员,前端,服务器,okhttp

最后

Web端服务器推送技术原理分析及dwr框架简单的使用(1),程序员,前端,服务器,okhttp

Web端服务器推送技术原理分析及dwr框架简单的使用(1),程序员,前端,服务器,okhttp

由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,详细完整版的JavaScript面试题文档,或更多前端资料可以点此处获取。文章来源地址https://www.toymoban.com/news/detail-857188.html

84553)]

[外链图片转存中…(img-S4BSZRiX-1712549484553)]

由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,详细完整版的JavaScript面试题文档,或更多前端资料可以点此处获取。

到了这里,关于Web端服务器推送技术原理分析及dwr框架简单的使用(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WEB服务器配置与HTTP分析

    目录 实验目的: 实验要求: 实验原理: 实验步骤: 步骤1:创建拓扑 步骤2:为PC、Client和Server配置IPv4地址、子网掩码和域名服务器 步骤3:启动设备和服务器 步骤4:测试PC-1、Client-1和Server-1之间的通信 步骤5:在Server-1上配置并启动DNS服务器  步骤6:在Server-1上配置并启动

    2024年01月17日
    浏览(53)
  • logback服务器日志删除原理分析

        查看以下的logback官方文档 Chapter 4: Appenders https://logback.qos.ch/manual/appenders.html     按文档说明,maxHistory是设置保存归档日志的最大数量,该数量的单位受到fileNamePattern里的值%d控制,如果有多个%d,只能有一个主%d,其他的要用aux参数标记为辅助令牌。 /var/log/%d{yyyy/MM, aux}

    2024年02月04日
    浏览(41)
  • 【计算机网络笔记】Web缓存/代理服务器技术

    什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率 计算机网络体系结构概念 OSI参考模型

    2024年02月08日
    浏览(46)
  • 配置web服务器+编写简单页面+分析交互过程

    目录 配置web服务器 IIS配置web服务器 C++搭建简单的web服务器 编写web页面 程序测试 IIS配置测试 C++程序测试 Wireshark捕获交互过程及分析 三次握手 请求报文 请求行 请求头 请求体 响应报文 响应行 响应头 响应体 四次挥手 实验中遇到的问题及分析 参考资料 使用Windows自带的II

    2024年02月08日
    浏览(48)
  • Linux下Web服务器工作模型及Nginx工作原理详解

    在Linux环境下,Web服务器处理并发连接请求的工作模型主要有阻塞、非阻塞、同步、异步等方式。以下是对各种工作模型的浅析: 同步阻塞 I/O: 类比于在餐厅等饭,需要在取餐处等待,期间不能进行其他事情。 同步非阻塞 I/O: 类比于在餐厅等饭,可以进行其他事情,但需

    2024年02月03日
    浏览(43)
  • C++轻量级Web服务器TinyWebServer源码分析之http篇

    http类这篇个人觉得是最难同时也是最繁琐的一篇,本篇在基础知识方面,包括epoll、HTTP报文格式、状态码和有限状态机,不做赘述,所有源码分析的篇章基础知识会做单开一篇或者读者可以看 小白一文看懂社长服务器 来补基础知识。真的佩服那个叫社长的男人,我读代码且

    2024年02月10日
    浏览(48)
  • Linux项目实战C++轻量级Web服务器源码分析TinyWebServer

    TinyWebServer是Linux下C++轻量级Web服务器,助力初学者快速实践网络编程,搭建属于自己的服务器.作为新手拿它练手入门再好不过的不二之选,项目开发者社长也写了一些文章帮助初学者理解,但是,非学习总结的总是容易忘,这里记录一下学习过程。 源码链接: https://github.co

    2024年02月16日
    浏览(64)
  • SSE(服务器推送事件)规范

    SSE 是指 \\\"Server-Sent Events\\\",即服务器推送事件。它是一种基于 HTTP 的服务器推送技术,允许服务器实时向客户端推送数据。SSE 规范定义了一种在客户端和服务器之间单向实时通信的方式,通常用于实现服务器向客户端推送更新、通知或实时数据。 使用 SSE,客户端可以通过简单

    2024年01月18日
    浏览(56)
  • WEB通讯技术。前端实现SSE长连接,nodejs+express搭建简单服务器,进行接口调试,通过curl请求数据

    长连接(Keep-Alive)是一种HTTP/1.1的持久连接技术,它允许客户端和服务器在一次TCP连接上进行多个HTTP请求和响应,而不必为每个请求/响应建立和断开一个新的连接。长连接有助于减少服务器的负载和提高性能。 长连接的HTTP请求方法与普通HTTP请求方法相同,可以使用GET、P

    2024年02月09日
    浏览(53)
  • 2.css公共样式、LOGO SEO优化、常用模块和注册页类名命名、tab栏布局原理、Web服务器

    favicon.ico 一般用于作为缩略的网站标志,它显示在浏览器的地址栏或者标签上。 目前主要的浏览器都支持favicon.ico图标。 favicon图标的制作分为3步: 1.制作favicon图标 2.favicon图标放到网站根目录下 3.HTML页面引入favicon图标 1.制作favicon图标 (1)把品优购图标切成png图片 (2)把png图片

    2024年02月16日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包