客户端与服务器端通信方式总结

1.HTTP:客户端发出请求、服务器端响应的方式.

2.基于客户端套接口的“服务器推”技术

(1)Flash XMLSocket

如果Web应用的用户接受应用只有在安装了Flash播放器才能正常运行, 那么使用FlashXMLSocket也是一个可行的方案。

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

具体实现方法:在 HTML页面中内嵌入一个使用了XMLSocket类的Flash程序。JavaScript通过调用此Flash程序提供的套接口接口与服务器端的套接口进行通信。JavaScript在收到服务器端以XML格式传送的信息后可以很容易地控制HTML页面的内容显示。

(2)Java Applet 套接口

在客户端使用Java Applet,通过java.net.Socketjava.net.DatagramSocketjava.net.MulticastSocket建立与服务器端的套接口连接,从而实现“服务器推”。这种方案最大的不足在于Java applet在收到服务器端返回的信息后,无法通过JavaScript去更新HTML页面的内容。

3.AJAX技术:“Asynchronous JavaScript and XML”(异步JavaScriptXML)

XmlHttpRequest使客户端可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。JavaScript可以调用XMLHttpRequest对象发出HTTP请求,JavaScript响应处理函数根据服务器返回的信息(不是整个网页,只是部分信息)对 HTML页面的显示进行更新。

图 1.传统的 Web应用模型与基于AJAX的模型之比较

4.comet :基于HTTP长连接的“服务器推”技术

(1)基于 AJAX的长轮询方式

使用 AJAX实现服务器推与传统的AJAX应用不同之处在于:

1.1服务器端会阻塞请求直到有数据传递或超时才返回。

1.2客户端 JavaScript响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接。

1.3当客户端处理接收的数据、重新建立连接时,服务器端可能有新的数据到达;这些信息会被服务器端保存直到客户端重新建立连接,客户端会一次把当前服务器端所                   有的信息取回

// JavaScript 文件
var http_request = false;
function send_request(url) {//初始化,指定处理函数,发送请求的函数 http_request = false;//开始初始化XMLHttpRequest对象 if (window.XMLHttpRequest) {//Mozilla 浏览器 http_request = new XMLHttpRequest();if (http_request.overrideMimeType) {//设置MiME类别 http_request.overrideMimeType('text/xml');}}else if (window.ActiveXObject) {// IE浏览器 try {http_request = new ActiveXObject("Msxml2.XMLHTTP");}catch (e) {try {http_request = new ActiveXObject("Microsoft.XMLHTTP");}catch (e) { }}}if (!http_request) {// 异常,创建对象实例失败 window.alert("不能创建XMLHttpRequest对象实例.");return false;}http_request.onreadystatechange = processRequest;// 确定发送请求的方式和URL以及是否同步执行下段代码 http_request.open("GET", url, true);http_request.send(null);
}
// 处理返回信息的函数
function processRequest() {if (http_request.readyState == 4) {// 判断对象状态 // alert(http_request.readyState);// alert(http_request.status);if (http_request.status == 200) {// 信息已经成功返回,开始处理信息 Image1.ImageUrl = "GobangDisplay.aspx?cs=" + DateTime.Now.Second.ToString();window.open('GobangDisplay.aspx', '_blank');//  document.getElementById("stateView").innerHTML = s;// alert(str);//  showMsg(str);}else {//页面不正常 alert(http_request.status + "您所请求的页面有异常.");}}
}

图 2.基于长轮询的服务器推模型

(2)基于 iframehtmlfile的流方式

iframe 是很早就存在的一种HTML标记, 通过在HTML页面里嵌入一个隐蔵帧,然后将这个隐蔵帧的SRC属性设为对一个长连接的请求,服务器端就能源源不断地往客户端输入数据。

Tip不要在同一客户端同时使用超过两个的 HTTP长连接

我们使用 IE下载文件时会有这样的体验,从同一个Web服务器下载文件,最多只能有两个文件同时被下载。第三个文件的下载会被阻塞,直到前面下载的文件下载完毕。     这是因为HTTP 1.1规范中规定,客户端不应该与服务器端建立超过两个的HTTP连接, 新的连接会被阻塞。而IE在实现中严格遵守了这种规定。

详细链接:http://www.ibm.com/developerworks/cn/web/wa-lo-comet/

5.websocket

WebSocket 规范的目标是在浏览器中实现和服务器端双向通信。浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。在此WebSocket协议中,为我们实现即时服务带来了两大好处:互相沟通的Header是很小的-大概只2Bytes、服务器可以主动传送数据给客户端。目前还只有部分浏览器支持此协议。

客户端与服务器端通信方式总结相关推荐

  1. Android客户端请求服务器端的详细解释(附源代码)

    Android客户端请求服务器端的详细解释 1. Android客户端与服务器端通信方式: Android与服务器通信通常采用HTTP通信方式和Socket通信方式,而HTTP通信方式又分get和po ...

  2. 深入Atlas系列:Web Sevices Access in Atlas示例(6) - 在客户端隐藏服务器端类型信息...

    如果要在客户端指定服务器端Web Service方法所接收的参数类型,就必须在客户端通过"__type"来指定,但是这就暴露了服务器端的具体类型了,这可不太好.现在我们就来看一下应 ...

  3. 浅析Java web程序之客户端和服务器端交互原理

    原文链接: https://www.iteye.com/topic/470019 1. 协议 a. TCP/IP整体构架概述 TCP/IP协议并不完全符合OSI的七层参考模型.传统的开放式系统互连参考 ...

  4. VSS 2005 客户端和服务器端配置总结

    花了差不多一天的时间把vss配置搞明白了~废话不多说,下面简单的介绍下配置的过程: 安装VSS2005(客户端和服务器端都需要),当然必须有VS2008或者2005的前提下. 配置前的准备: 1.在在 ...

  5. 封装一个类搞定90%安卓客户端与服务器端交互

    本实例封装了一个处理安卓客户端与服务器端交互的几个方法,对于中文乱码问题本实例也找到了解决方案.本例可以处理的场景如下: 1.与服务器端交互json数据. 2.Get方式与服务器端交互数据. 3.Po ...

  6. 现存问题以及解决方案:在ASP.NET AJAX中从客户端向服务器端传送DataTable

    摘要 在<现存问题以及解决方案:在ASP.NET AJAX客户端得到服务器端的DataTable>这篇文章中,我给出了一个在ASP.NET AJAX中从服务器端得到客户端DataTable ...

  7. C# 视频监控系列(5):客户端——给服务器端发送字符串和录像(数据捕获)

    前言 这几天加紧赶工写服务器端的程序,所有系列文章更新较慢,见谅: ) 注意 本系列文章限于学习交流,注重过程,由于涉及公司,所以不提供源代码下载,非常抱歉!!但是请大家放心,核心.实现以及其他能够贴 ...

  8. php 客户端上传图片,php上传图片客户端和服务器端实现方法

    这篇文章主要介绍了php上传图片客户端和服务器端实现方法,涉及php操作文件的技巧,涉及图片后缀验证.文件重命名等常用方法,具有一定参考借鉴价值,需要的朋友可以 本文实例讲述了php上传图片客户端和服 ...

  9. java 实现 web 客户端_Java web客户端和服务器端交互的原理

    Java web客户端和服务器端交互的原理 其实HTTP客户端和服务器端的交互原理很简单:即先是浏览器和服务器端建立Socket无状态连接,也就是短连接,然后通过IO流进行报文信息(这个报文是严格遵循 ...

最新文章

  1. 原创推荐!B站最强学习资源汇总(数据科学,机器学习,Python)
  2. Docker概述和安装部署
  3. matlab sol函数,sol=bvp4c(@f,@fsbc,solinit)解决有上下限的ODE函数
  4. 简单易用的baidutemplate模板的使用
  5. mnist数据集图片提取出来
  6. Oracle的latch机制源代码解析——借postgresql猜测Oracle的latch
  7. 学python能赚钱吗-做直播能有多赚钱,Python告诉你
  8. C++ Make、Makefile、CMake和CMakeLists关系
  9. 387.字符串中的第一个唯一字符
  10. 超级终端连接华为交换机_Win8系统使用超级终端连接华为交换机的方法
  11. Linux搜索文件或内容
  12. flink-sqlclient报错
  13. 产品专利和方法专利对比分析
  14. NoteExpress的使用方法
  15. 计算机系的同学应该有更高的雄心壮志
  16. Mybatis映射详解
  17. 从零开始用C语言实现图片解码播放器(有源码)
  18. 关于正确处理0x80070426等错误的方法
  19. 从零开始:教你如何训练神经网络
  20. k8s学习笔记(一)

热门文章

  1. java ebcdic编码转换_EBCDIC编码转换为ASCII编码
  2. 30_ElasticSearch IK分词器配置文件 以及自定义词库
  3. python爬虫获取图片无法打开或已损坏_Python爬取小姐姐图片
  4. 使用VS+QT问题小结
  5. 项目中用了多个日志依赖,导致冲突
  6. 计算机电缆对绞外径怎样算,计算机电缆国家标准是什么
  7. 服务器到底是个什么东东?跟电脑有啥区别?
  8. ognl.NoSuchPropertyException(没有对应属性异常)
  9. 人工智能的就业方向有哪些?
  10. One PUNCH Man——线性回归算法