学习笔记:网页技术Ch8.Web 2.0
在2004年,Time oreilly 提出了Web2.0的概念,这个概念不包括新的技术,只是改变了开发者们开发应用的方式。下面来介绍特点:
- 用户创造内容
- 数据是动力
- 社区化的信息分享
- web只作为软件的平台
值得注意的是,在他提出这个概念之前,其实就有这样模式的网站存在,比如Amazong,用户可以在上面进行评论,交流。
web2.0的主要内容:
- Social Web:用户不是信息的消费者,也能创造信息。CNN vs 微博
- Rich Internet Applications(RIAs):在浏览器中就能用应用。ChromeBook狂喜。
- Service Oriented Architecture(SOAs):允许不同的应用能share信息和服务,所以一个网站不必搭建全部的技术块,有现成的就用现成的。可以于OOP联想,把服务拆成块,用谁就调用哪个
在Amazon买书的时候会发现一个事情,Amazon会把很多流量导入给销量高的书,销量低的书很难有机会得到曝光(access),就出现了Long tail问题,如下图所示:

和这个一样的是,互联网的大部分内容都是由许许多多的小站点贡献的,那我们是不是要用一些工具,能让小站点也能access?
先不管上面那个问题,我们先来看看web2.0的网站的应用:
wiki:
起源于夏威夷的wikiwiki公交车,用户可以在网站上创建页面,修改页面内容,其他用户也可以看到这个页面的修改历史,比如:Wikipedia,缺点就是,因为没有中央系统,所以没办法保证权威性。
Blogs:
博客,非常好理解,自己可以创建自己的页面,并且在上面不断更新内容,值得注意的是,你可以通过连接其他地址,把照片啊这些东西加进来,这就体现了web的soas
Flickr:
用户创建album,把照片上传,并分享,这个照片也可以直接api连到自己的blog里,值得注意的是,一个照片可以出现在不同的album里
Folksonomies:
由大众来定义标签,比如这个网站是黄色内容,浏览的人多了,给他下的黄色标签多了,那这个网站就被定义成了黄色网站。
Mashups:
就是把几个网站的功能和内容整合在一起,拼出来一个新功能。
web2.0的社会意义:

上面一些有趣的讲完了,下面就来讲讲如何在技术上实现WEBeb 2.0:
Programmer Web:
主要用HTTP,数据用XML封装,有许多可用的数据形式:html,js。。。
下面介绍RIAs:
其实就是把操作界面放在浏览器中,怎么理解?体现在界面上就是,一个页面上的内容不会随着每次操作全部刷新,而是只刷新它想要刷新的 那个部分。
因此会获得很高的响应性!!
因此这种访问方式叫:Asynchronous Partical Update
- 只刷新页面的特定部分:从服务器接收信息,然后调到dom tree里,刷新
- 刷新只在用户端进行,由用户的操作反射
- 刷新不能在服务器初始化,因为HTTP的特性
下面介绍实现的方式AJAX:
是Asynchronous JavaScript and XML
这不是一个技术,而是一个技术包:
- HTML和CSS用于视图
- Javascript 和 dom组合,用于接收到信息,改写dom实现页面的变化
- XHR用于和服务器交换让JavaScript搞动作的命令
优缺点:

下面介绍SOAs:
- 就是将模块化的功能合成一体的架构
- SaaS:就是软件本身就是服务,甚至可以是另一个软件的一部分
有两种方法实现,Big Web Service,RESTful Web Service:
Big Web Service:
其实就是,google这样的公司想把自己的服务提供给开发者调用,但是开发者又不知道怎么调用,于是google就可以把这些服务的地址和方法写在UDDI里,并放在中央服务器,开发者写WSDL,请求访问,就可以把这个服务放在这里了
那么用户如何操作放在google服务器的里的功能呢?
SOAP:一个特定的HTTP post 发给服务器,服务器再返回给用户”你该在google服务器怎么做“的信息

之后就是RESTful:
REST–Representational State Transfer:
必须满足以下特征:
- 服务器和用户端要分开开发
- 有统一的接口
- stateless
- 要定义这个信息可以不可以缓存
- 要可以在服务器和用户间还能加服务器
用HTTP传输操作,用uri来定位资源