Web 聚合运用跨域通信机制 1 引言 在传统的 Web1
0 应用程序中,每个 Web 站点相互隔离,用户访问 Web 站点仅能得到来自本站点的信息
即使需要访问其他站点,也是通过编辑拷贝已存储在本地的信息或者用户调换网站地址的方式来访问内容,而不是直接访问信息源数据
在新的Web2
0 潮流之下,希望网站之间打破隔离进行数据融合,使之能够共享信息
在这种背景下,聚合型网站设计方式应运而生,这就是新型的Web应用程序——聚合应用(mashupapplication)
Mashup 这个名词来源于流行音乐,将不同风格的音乐拼接,混杂在一起,构成自己独特的新曲子;Mashup 在 Web 环境中代表着整合不同来源的内容以提供交互式体验的 Web 站点或应用程序[1]
利用其他网站开放应用接口所提供的内容进行混搭,从而制造出独特的、具有新价值的 Web 应用
Mashup 把不同源或站点的信息进行融合以保证信息共享,打破站点之间“孤岛林立”的现状,由此浏览 Web 站点更加直观便捷,用户体验更加富
典型的 Mashup 应用当属 Housingmap,它将第三方网站 Craigslist 的租房信息和 GoogleMaps 提供的地图信息有机地组织起来,让租房的信息直观显示在地图上,制造出一个崭新的、互动性强的房屋搜寻站点[2]
根据以上实例背景,本文建立一个 Housingmap 聚合应用模型,由电子地图与租房信息 2 部分组成,如 图 1 所 示
传 统 的 Web 浏 览 器 安 全 机 制 遵 守 同 源 策 略(SOP,same-originpolicy)
同源策略规定 JavaScript(JS)代码只能访问其来自同源服务器上的数据,把来自不同源的内容相互分离
这种策略给 JS 提供安全保障的同时限制了基于 JS 的跨域访问
Mashup 是对多个站点资源的优化