转自http://www.cnblogs.com/yupeng/archive/2012/03/04/2379641.html

总结下web数据交互方式.

web数据交互,简单的讲,是client与server端的数据交互,通过http协议交互的。

首先看一个传统的页面请求的生命周期:

 

  1. 浏览器发送一个HTTP请求到Web服务器。
  2. Web服务器解析请求,然后读取数据存储层,制定一个HTML文件,并用一个HTTP响应把它发送到客户端。
  3. HTTP响应通过互联网传送到浏览器。
  4. 浏览器解析Web服务器的响应,使用HTML文件构建了一个的DOM树,并且下载引用的CSS和JavaScript文件。
  5. CSS资源下载后,浏览器解析它们,并将它们应用到DOM树。
  6. JavaScript资源下载后,浏览器解析并执行它们。

上述6个步骤是一个web页面展现必不可少的,都要经历的步骤,每个步骤花的时间都会影响页面的展现的快慢的,以后会讲下性能优化,这里主要讲web交互方式,先略过。

web数据交互,从server的角度讲:主要有pull,push两个,一个是拉,另外一个是推。

1)pull 是拉,客户端向服务器端主动的拉取数据,采用的技术是ajax 和Xss(跨站脚本)
2)push 是服务器向客户端主动的推动数据,第一种方式是长连接,客户端与服务器之间一直保持着连接,如果有数据的更新,服务器向客户端推送数据,客户端接受服务器端的数据,可以理解为长轮询,客户端与服务器端必须一直是连接着的状态。另外还有一种是伪长链接的。有2种实现方式,一种是基于ajax的,它与传统的ajax的方式不同在于,服务器端会阻塞客户端的请求直到有数据传递或者超时才返回。客户端 JavaScript 响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接。 当客户端处理接收的数据、重新建立连接时,服务器端可能有新的数据到达;这些信息会被服务器端保存直到客户端重新建立连接,客户端会一次把当前服务器端所有的信息取回。