历史很重要。对一个技术的学习也应当从历史出发,通过其在时间形成历史的流变,得以知晓现状,甚至能够预知未来。
那Web 1.0是什么呢?
他们说,记得静态HTML的WWW时代么?
(那个时代的WWW应用、人们的Web体验、对社会的影响如何?)
那么动态HTML和静态HTML下的Web相比,是多少版本?1.5?对了,他们是真这么叫的。
(在效果和影响上,与1.0相比,扩展和加深多少?)
要呈现的数据存储在数据库中,通过Web服务端的程序,应用户的请求,取出数据,加上事先设计的模板,动态的生成Html代码,发送到用户的浏览器那里。
他是1.0系列,应为用户在浏览器中所见和Web 1.0一样,它有0.5的升级,因为数据不是事先制作并发布,而是动态生成,和用户的需要交互生成。
那好,在加0.5,到Web 2.0,变化是在哪里呢?
(看到了正在崛起的和改变的,会继续朝着什么方向改变互联网和社会呢?)
更新:关于各个版本的差别,看看亚马逊的例子。
事情没有那么幸运,Web 2.0并不是一个具体的事物,而是一个阶段,是促成这个阶段的各种技术和相关的产品服务的一个称呼。所以,我们无法说,Web 2.0是什么,但是可以说,那些是Web 2.0。
WikiPedia的Web 2.0条目下列出了这些条件:
* CSS 和语义相关的 XHTML 标记
* AJAX 技术
* Syndication of data in RSS/ATOM
* Aggregation of RSS/ATOM data
* 简洁而有意义的 URLs
* 支持发布为 weblog
* RESTian (preferred) 或者 XML Webservice APIs
* 一些社会性网络元素
必须具备的要素有:
* 网站应该能够让用户把数据在网站系统内外倒腾。
* 用户在网站系统内拥有自己的数据
* 完全基于Web,所有的功能都能透过浏览器完成。
虽然这只是一家之言,不过,对于其中谈到的几个要素,大家还是公认的。
- 基于RSS/ATOM/RDF/FOAF等XML数据的同步、聚合和迁移。
数据不再和页面和网站混粘在一起,它独立了,它跟着用户走。这是Web 2.0的很重要特征。这也是为什么Blog是Web 2.0的代表的原因。在网志上,常主角的是相互独立的一则则的网志。
独立,然后有物理表现。现在,就能让他们活跃起来。透过对XML数据的处理,这些内容能被自由的组合,被各种应用程序,不论是Web程序还是桌面程序等呈现和处理。
当然,最重要的是背后的人。
- 社会性因素。
内容跟着人走,内容又能够被用户自由的组合,也就是说,用户能够自由的借助内容媒介,创建起一个个的社群,发生各种社会性的(网络)行为。
此外还有标签以及建立在开放标签系统之上的Folksonomy。
-第三个公认的因素是开放API,这个技术性稍强些,得另花时间研习,可以先看看例子:amazon、flickr、google map等。
从Web应用的产品/服务生产者角度来说,该如何创建Web 2.0的产品呢? 重要的是要抓住这么几点,一个是微内容(这里有定义),一个是用户个体。除了这两个最基本的之外,还可以考虑社群内的分享以及提供API。
微内容:英文是microcontent。用户所生产的任何数据都算是微内容,比如一则网志,评论,图片,收藏的书签,喜好的音乐列表、想要做的事情,想要去的地方、新的朋友等等。这些微内容,充斥着我们的生活、工作和学习,它的数量、重要性,还有我们对它的依赖,并不亚于那些道貌岸然、西装革履的正统文章、论文、书籍。
对微内容的重新发现和利用,是互联网所开创的平等、民主、自由风气的自然衍生,也是互联网相关技术消减信息管理成本之后的一个成果。
我们每天都生产众多的微内容,也消费着同样多的微内容。对于Web 2.0来说,如何帮助用户管理、维护、存储、分享、转移微内容,就成了关键。
用户个体。对于Web 1.0的典型产品/服务来说,用户没有具体的面貌、个性,它只是一个模糊的群体的代名词而已。但是对于Web2.0的产品和服务来说,用户是个实实在在的人。Web 2.0所服务的,是具体的人,而不是一个如同幽灵般的概念。并且,这个人的具体性,会因为服务本身而不断地充实起来。
如何为这个具体的个体服务,是Web 2.0设计的起点。
因此,一类可以被称作Web 2.0的产品/服务将是这样:
服务于用户个体的微内容的收集、创建、发布、管理、分享、合作、维护等的平台。
其他的呢?恐怕就设计到好些人提到的,微内容的XML表现;微内容的聚合;微内容的迁移;社会性关系的维护;界面的易用性等等。
以及是否就是开源、参与、个人价值、草根、合作等等?
Web2.0是许多方面起头并进又相互牵连的一个新的阶段的到来。因此,不同的人,有着不同的看法。那么,对于Web开发人员来说,Web2.0意味着什么呢?
他们说Web2.0阶段,Web是一个平台,或者说,Web正在变得可编程,可以执行的Web应用。野心家们设想这个它的终极目标是Web OS。
Web 1.0时候,Web只是一个针对人的阅读的发布平台,Web由一个个的超文本链接而成。现在的趋势发生了变化,Web不仅仅是Html文档的天下,它成了交互的场所。
Web 2.0 Conference网站的横幅引用Jeff Bezos的话说“Web 1.0 is making the internet for people,web 2.0 is making the internet better for computers”。
具体来讲,他们说Web成为一个开发环境,借助Web服务提供的编程接口,网站成了软件构件。
这些,就是Web Service的目标吧,信息孤岛通过这些Web Service的对话,能够被自由构建成适合不同应用的建筑来。
一些例子:del.icio.us、flickr、a9、amazon、yahoo、google、msn等提供的编程接口衍生出的各种应用。
为什么要开放APIs,这涉及到集市中的商业方面的技术策略。当然,还有更深层的原因,那是什么呢?
这种交互不仅体现在不同的网站服务之间,同时还体现在用户和Web之间在浏览器上的交互。这也是为什么在美味书签的收藏中Web2.0和AJAX如此相关的一个原因。
在Web页面上使用桌面程序有的那些便利,真的是很享受的事情。这恐怕也是Web可编程的一个方面,Web页面不再是标记和内容混合那样的简单,它就是一个可以编程的地方(是这样理解吧?)
有人反对说,AJAX的使用对搜索引擎不友好,只有Web1.0的站长才关心这个事情吧,在Web 2.0时候,站长应该关心的是用户参与的便利、用户的自由度,至于搜索,有RSS/ATOM/RDF等,更本用不着操心,Google不是已经顺应这个趋势,让大家主动提交了么?
可编程的第三个方面,是否在于Web应用和桌面应用之间的无缝连接趋势的出现?类似这里说的“从工具上,是由互联网浏览器向各类浏览器、rss阅读器等内容发展”
编程的一个重要目的是对数据的操作,因此,对于网站来说,除了Web Service接口之外,最近为简便方式就是将内容以RSS/RDF/ATOM格式,或者有意义的XHTML格式输出,同时实现内容和表现的分离。
Web2.0是个历史学的概念,而非是个技术性的概念,它是对Web发展历史断代的成果。对这个概念的梳理,能帮助我更好的把握互联网正在发生的技术与文化。