CN101523393B - 本地存储基于web的数据库数据 - Google Patents

本地存储基于web的数据库数据 Download PDF

Info

Publication number
CN101523393B
CN101523393B CN2007800374737A CN200780037473A CN101523393B CN 101523393 B CN101523393 B CN 101523393B CN 2007800374737 A CN2007800374737 A CN 2007800374737A CN 200780037473 A CN200780037473 A CN 200780037473A CN 101523393 B CN101523393 B CN 101523393B
Authority
CN
China
Prior art keywords
action
web
database
data
database section
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2007800374737A
Other languages
English (en)
Other versions
CN101523393A (zh
Inventor
J·C·霍金斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101523393A publication Critical patent/CN101523393A/zh
Application granted granted Critical
Publication of CN101523393B publication Critical patent/CN101523393B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及用于本地存储基于web的数据库数据的方法、系统和计算机程序产品。本发明的各实施例准许将基于web的数据库数据本地存储在计算机系统处以提高在该计算机系统处的web浏览器中呈现基于web的数据库数据的效率。基于web的数据库数据可按域沙箱化以减少(并且可能消除)基于web的数据库数据向恶意计算机系统的暴露。分配给每一个域的空间可在最初设置并且然后由用户随后来更改。

Description

本地存储基于web的数据库数据
背景
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已改变人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统被彼此耦合并被耦合到其它电子设备,以形成计算机系统和其它电子设备可以在其上传送电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算组件上。
基于网络的通信的一种常见形式是在万维网(“WWW”)上交换电子消息。万维网上的内容通常以客户机/服务器模型来访问。客户机计算机系统的“web浏览器”发送访问由服务器计算机系统的“web服务器”提供的内容的请求(例如,通过将统一资源定位符(“URL”)输入到web浏览器中)。如果web浏览器的用户被授权访问该内容,则web服务器通常将该内容提供给该web浏览器。在web环境中,内容和对内容的请求经常使用超文本传输协议(“HTTP”)来传输。基于web的内容可以在超文本标记语言(“HTML”)页面、样式表、图像、脚本等中提供。
大多数web浏览器(即使不是全部)将基于web的内容的各部分高速缓存在一公共存储位置(浏览器高速缓存)中以使得可更高效地呈现网页的后续呈现。例如,当web浏览器从web服务器接收网页时,该web浏览器可本地高速缓存该网页中所包括的内容的各部分。由此,如果web浏览器随后被定向到相同的网页,则该web浏览器可检查该公共存储位置以查找高速缓存的内容部分并且任何高速缓存的内容部分都可与经由网络接收到的其他内容组合以构造网页。因此,使用本地高速缓存的内容可能减少通过网络传输来显示来自web服务器的内容的数据量。结果,网页可更快速地呈现,从而改善了用户体验。
然而,通常即使只有网页的一部分改变,整个页面也通过网络重新加载以便显示在web浏览器上。例如,情况可以是web浏览器访问一网页,经由网络通信下载该网页的内容并高速缓存了来自该网页的内容。如果该网页的内容随后改变了,则该web浏览器可能需要重新下载整个网页,即使只有该网页的一小部分发生了改变。
因此,最近某些web浏览器实现了部分页面更新以便更好地利用高速缓存的内容。内容在网页的适用部分改变时被重新下载。然而,web浏览器未必需要响应于对网页的一部分的改变而重新下载网页的所有内容。例如,当网页中的单个图像改变时,web浏览器可检测到该变化并重新下载该单个图像而不必重新下载未改变的其他高速缓存的内容。
某些基于web的应用程序还准许web浏览器与来自数据库(例如,SQL数据库)的数据交互。web服务器从web浏览器接收请求,访问数据库数据的适当部分并且将该数据库数据返回给web浏览器。取决于基于web的应用程序的配置,用户可能还能够通过web浏览器来改变数据库数据的各部分。例如,用户可能能够通过web浏览器来创建和修改数据库记录。在某些环境中,用户能够通过web浏览器来实现SQL操作(CREATE TABLE、SELECT、INSET、UPDATE、DELETE等)。由此,web浏览器本质上提供了用于通过网络(例如,因特网)来操纵数据库数据的用户界面。
然而,通常不存在供web浏览器适当地高速缓存表格数据(例如,来自数据库的数据)的机制。通常,用户无法在任一时刻访问数据库中的所有数据。因此,高速缓存任何接收到的数据库数据提供了不完整的(并且可能是不起作用的)数据集。此外,因为内容通常被高速缓存在公共位置(浏览器高速缓存)中,所以高速缓存来自一个网站(或域)的数据库数据可能使得高速缓存的数据库数据对该web浏览器访问的任何其他网站(或域)可用。例如,高速缓存的公司财务数据在web浏览器随后(并且可能不为用户所知)被定向到恶意网站(该恶意网站然后可检查该浏览器高速缓存)时处于危险的境地。
此外,因为许多数据库包含大量数据,所以本地高速缓存数据库数据可快速填满所分配的浏览器高速缓存空间。
另外,大多数浏览器(即使不是全部)缺乏以“离线”模式操作的能力。即,web浏览器通常无法在网站不可用时(例如,在没有检测到活动的网络连接或对应的web服务器停机时)呈现有意义的内容。例如,在web浏览器试图从不可用的web服务器加载诸如例如,HTML页面或图像等资源时,该web浏览器无法呈现该资源(即使该资源已被本地高速缓存)。因此,即使数据库数据(或任何其他类型的内容)已被高速缓存,web浏览器也无法以离线模式呈现该数据库数据(或任何其他类型的内容)。
简要概述
本发明涉及用于本地存储基于web的数据库数据的方法、系统和计算机程序产品。在某些实施例中,计算机系统高速缓存表格数据库以供后续web浏览器访问。计算机系统将基于web的请求发送给指定域中的web服务器。该基于web的请求请求访问包括存储在该web服务器可访问的数据库中的数据库的一部分的网页。
计算机系统从该web服务器接收数据库的一部分。计算机系统将所接收到的数据库部分本地存储在该计算机系统处。该本地存储的数据库部分可由web浏览器来本地访问以使得来自该本地存储的数据库部分的数据可被本地提供给web浏览器而不必在基于网络的通信中包括该数据。计算机系统保留该数据库部分是从指定域接收到的指示以防止来自其他域中的web服务器的脚本代码访问该数据库部分。
在其他实施例中,计算机系统在web浏览器中呈现表格数据库数据。计算机系统将基于web的请求发送给由指定域名指示的指定域中的web服务器。该基于web的请求是为了访问包括存储在该web服务器可访问的数据库中的数据库的一部分的网页。
计算机系统从web服务器接收访问本地存储在该计算机系统处的本地存储的数据库部分的请求。计算机系统访问指示先前将该本地存储的数据库部分发送给该计算机系统的域的存储的域名。计算机系统将该指定域名与存储的域名进行比较。计算机系统确定该指定域名和存储的域名足够相似以允许来自web服务器的响应包括来自本地存储的数据库部分的数据库数据。计算机系统基于该判定来在对该基于web的请求的基于web的响应中包括来自该本地存储的数据库部分的数据。计算机系统在web浏览器处呈现包括来自本地存储的数据库部分的数据的基于web的响应。
在其他实施例中,计算机系统在该计算机系统处高速缓存表格数据库数据以供后续web浏览器访问。计算机系统将基于web的请求发送给指定域中的web服务器。该基于web的请求请求访问包括存储在该web服务器可访问的数据库中的数据库的一部分的网页。
计算机系统从来自该web服务器的脚本代码接收将该数据库部分发送给该计算机系统以便本地存储在该计算机系统处的请求。计算机系统确定分配给该指定域以供本地存储的存储空间的量足够大以存储该数据库部分。计算机系统从该web服务器接收该数据库部分。计算机系统将所接收到的数据库部分存储在该计算机系统处。所存储的数据库部分可由web浏览器来本地访问以使得来自该数据库部分的数据可被本地提供给web浏览器而不必在基于网络的通信中包括该数据。
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本描述将是显而易见的,或可通过对本发明的实践来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的手段和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书而变得更加完全明显,或可通过对下文中所述的本发明的实践来获知。
附图简述
为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,附图中:
图1A-1C示出了帮助本地存储基于web的数据库数据的示例计算机体系结构。
图2示出了用于在计算机系统处高速缓存表格数据库数据以供后续web浏览器访问的示例方法的流程图。
图3示出了用于在web浏览器中呈现表格数据库数据的示例方法的流程图。
图4示出了用于在计算机系统处高速缓存表格数据库数据以供后续web浏览器访问的另一示例方法的流程图。
详细描述
本发明涉及用于本地存储基于web的数据库数据的方法、系统和计算机程序产品。在某些实施例中,计算机系统高速缓存表格数据库以供后续web浏览器访问。计算机系统将基于web的请求发送给指定域中的web服务器。该基于web的请求请求访问包括存储在该web服务器可访问的数据库中的数据库的一部分的网页。
计算机系统从该web服务器接收数据库的一部分。计算机系统将所接收到的数据库部分本地存储在该计算机系统处。该本地存储的数据库部分可由web浏览器来本地访问以使得来自该本地存储的数据库部分的数据可被本地提供给web浏览器而不必在基于网络的通信中包括该数据。计算机系统保留该数据库部分是从指定域接收到的指示以防止来自其他域中的web服务器的脚本代码访问该数据库部分。
在其他实施例中,计算机系统在web浏览器中呈现表格数据库数据。计算机系统将基于web的请求发送给由指定域名指示的指定域中的web服务器。该基于web的请求是为了访问包括存储在该web服务器可访问的数据库中的数据库的一部分的网页。
计算机系统从来自该web服务器的脚本代码接收访问本地存储在该计算机系统处的本地存储的数据库部分的请求。计算机系统访问指示先前将该本地存储的数据库部分发送给该计算机系统的域的存储的域名。计算机系统将该指定域名与存储的域名进行比较。计算机系统确定该指定域名和存储的域名足够相似以允许来自web服务器的响应包括来自本地存储的数据库部分的数据库数据。计算机系统基于该判定来在对该基于web的请求的基于web的响应中包括来自该本地存储的数据库部分的数据。计算机系统在web浏览器处呈现包括来自本地存储的数据库部分的数据的基于web的响应。
在其他实施例中,计算机系统在该计算机系统处高速缓存表格数据库数据以供后续web浏览器访问。计算机系统将基于web的请求发送给指定域中的web服务器。该基于web的请求请求访问包括存储在该web服务器可访问的数据库中的数据库的一部分的网页。
计算机系统从来自该web服务器的脚本代码接收将该数据库部分发送给该计算机系统以便本地存储在该计算机系统处的请求。计算机系统确定分配给该指定域以供本地存储的存储空间的量足够大以存储该数据库部分。计算机系统从该web服务器接收该数据库部分。计算机系统将所接收到的数据库部分存储在该计算机系统处。所存储的数据库部分可由web浏览器来本地访问以使得来自该数据库部分的数据可本地提供给web浏览器而不必在基于网络的通信中包括该数据。
本发明的各实施例可以包括含有计算机硬件的专用或通用计算机,这将在以下做出进一步讨论。本发明的范围内的各实施例还包括用于承载或其上储存有计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,计算机可读介质可包括物理(或可记录类型的)计算机可读存储介质,诸如RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其它介质。
在本说明书和所附权利要求书中,“网络”被定义为允许在计算机系统和/或模块之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接完全视为计算机可读介质。因此,作为示例而非限制,计算机可读介质可包括可用于承载或存储计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络或数据链路。
计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言等中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,可以在具有许多类型的计算机系统配置的网络计算环境中实践本发明,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机等等。本发明也可以在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。
图1A-1C示出了帮助本地存储基于web的数据库数据的示例计算机体系结构100。计算机体系结构100包括计算机系统101、网络131和域152。计算机体系结构100中所描绘的是包括应用程序191C、web浏览器104、应用程序191S和web服务器153在内的各种组件。各种组件中的每一个都可被连接到诸如例如,局域网(“LAN”)、广域网(“WAN”)或甚至因特网等网络131。因此,各种组件可对连接到网络的其他组件收发数据。因此,各组件可以创建消息相关数据并通过网络交换消息相关数据(例如,网际协议(IP)数据报和利用IP数据报的其它更高层协议,诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等)。例如,各组件可交换包含web服务相关数据的简单对象访问协议(“SOAP”)信封。在某些实施例中,应用程序191C和应用程序191S是诸如例如,web服务应用程序等分布式应用程序的不同部分。
web浏览器104可被配置成向诸如,例如域151等可经由网络131来访问的域请求基于web的内容。基于web的内容可包括文本数据、图像数据、音频/视频数据等。诸如例如,应用程序191C等一个或多个基于web的应用程序可被配置成在web浏览器104中运行。基于web的应用程序可以是脚本和/或其他计算机可执行指令。基于web的应用程序可以向可经由网络131来访问的域请求诸如例如,数据库数据等其他类型的数据。
域151可由诸如例如,域名服务(“DNS”)名称等可解析成IP地址的域名152来标识。域名152可被输入到web浏览器(可能连同关于域151中的指定应用程序的其他标识信息一起输入)以指示浏览器向web服务器153请求内容。域名可连同其他标识信息一起被包括在输入到web浏览器的统一资源定位符(“URL”)中。取决于请求和/或接收到的URL的类型,web服务器153可访问来自内容155的内容和/或启动诸如例如,应用程序191S等基于web的应用程序。应用程序191S可请求来自域151中的其他位置的数据,诸如例如,来自数据库154(例如,SQL或其他关系型数据库)等。web服务器153可在对web浏览器请求的响应中包括来自155的内容和/或来自数据库154的数据。
浏览器高速缓存106被配置成高速缓存从包括域151在内的域接收到的基于web的内容中所包括的分量。高速缓存的分量随后可用于满足发自web浏览器104的基于web的请求。例如,高速缓存的分量182可以是直接从浏览器高速缓存106访问的(无需经由网络131来传输高速缓存的分量182)并且在web浏览器104中呈现的内容155的各部分。
在web服务器试图响应来自web浏览器104的请求时,来自该web服务器的脚本代码可访问浏览器高速缓存106以搜索本地存储的分量。在标识高速缓存的分量时,web服务器可访问这些分量并在将在web浏览器104中呈现的响应中包括这些分量。由此,浏览器高速缓存106一般可由与web浏览器104进行通信的任何web服务器来访问。因此,一个域中的web服务器可访问浏览器高速缓存106中为不同域中的web服务器高速缓存的高速缓存的分量。
另一方面,本地存储访问模块107管理对本地存储108的访问。本地存储108被配置成存储在对基于web的请求的响应中接收到的数据库数据。存储在本地存储108中的数据库数据可由web浏览器104来访问(无需经由网络131来传输该数据库数据)并被呈现在web浏览器104中的基于web的应用程序中。数据库数据可连同将该数据库数据发送给web浏览器104的域的指示一起存储在本地存储108中。
本地存储访问模块107可过滤来自源自web服务器的脚本代码的、访问存储在本地存储108中的数据库数据的请求,以使得防止一个域访问另一个域的数据库数据。由此,尽管数据库数据被存储在本地存储108中,但该数据库数据一般不可访问以满足对任何域的请求(与一般可由来自任何域的web服务器来访问的存储在浏览器高速缓存106中的分量相反)。
图2示出了用于在计算机系统处高速缓存表格数据库数据以供后续web浏览器访问的示例方法200的流程图。方法200将参考图1A中所描绘的计算机体系结构100的各组件来描述。
方法200包括将基于web的请求发送给指定域中的web服务器的动作,该基于web的请求请求访问包括数据库数据的一部分的网页,该数据库部分被存储在该web服务器可访问(例如,通过执行脚本代码)的数据库中(动作201)。例如,应用程序191C的脚本代码(在浏览器104中运行)可以将请求181发送给域151中的web服务器153。请求181可以是访问包括数据库154的一部分的网页的请求。
web服务器153可接收请求181并将请求181的至少一部分路由至应用程序191S。应用程序191S可响应于接收到该请求而访问来自数据库154的数据库部分154P。在适当时,web服务器153可将从数据库部分154P访问的任何数据库数据与来自内容155的其他内容组合。从数据库部分154P以及可能的其他内容,web服务器153可制定网页182。web服务器153可将网页182发送给web浏览器104。
web浏览器104可接收网页182。web浏览器104可呈现内容的某些部分并将任何数据库数据转发至应用程序191C。应用程序191C可处理并呈现该数据库数据。
响应于请求181,web服务器153还可将数据库部分154P发送给web浏览器104。
方法200包括从web服务器接收数据库部分的动作(动作202)。例如,web浏览器104可接收网页182中所包括的数据库部分154P。或者,web浏览器104可接收响应于请求181而单独发送给web浏览器104的数据库部分154P。
方法200包括将所接收到的数据库部分本地存储在计算机系统处的动作,该本地存储的数据库部分可由web浏览器来本地访问以使得来自该本地存储的数据库部分的数据可被本地提供给web浏览器而不必在基于网络的通信中包括该数据(动作203)。例如,web浏览器104可将数据库部分154P存储在本地存储108中。因此,数据库部分154P可由web浏览器104来本地访问以使得该本地存储的数据库部分154P可以在不经由网络131来传输数据库部分154P的情况下提供给web浏览器104。
方法200包括保留数据库部分是从指定域接收到的指示以防止其他域中的web服务器访问(例如,通过执行脚本代码)该数据库部分的动作(动作204)。例如,域名152可连同数据库部分154P一起存储在本地存储108中以指示该数据库部分154P是从域151接收到的。本地存储访问模块107可将与对数据库部分154P的后续请求相关联的域名与域名152进行比较以确定访问数据库部分154P的请求是否被授权。
图1B示出了示例计算机体系结构100并且还描绘了域161。域161包括恶意web服务器163。恶意web服务器163可被配置成试图访问高速缓存在浏览器高速缓存106中的其他web服务器的高速缓存的分量并且试图访问存储在本地存储108中的来自其他域的数据库数据。
图3示出了用于在web浏览器中呈现表格数据库数据的示例方法300的流程图。方法300将参考图1B中所描绘的计算机体系结构100的各组件来描述。
方法300包括将基于web的请求发送给由指定域名指示的指定域中的web服务器的动作,该基于web的请求是为了访问包括数据库的一部分的网页,该数据库部分被存储在该web服务器可访问的数据库中(动作301)。例如,web浏览器104可将请求189发送给域151中的web服务器153。请求189可以与包括域名152的URL相关联。请求189可以是访问包括来自数据库154的数据库部分154P的网页的请求。
响应于请求189,web服务器153可将请求184发回web浏览器104。请求184可以是访问存储在本地存储108中的数据库部分154P的副本的请求。
方法300包括从web服务器接收访问本地存储在计算机系统处的本地存储的数据库部分的请求(动作302)。例如,web浏览器104可接收请求访问存储在本地存储108中的数据库部分154P的请求184(例如,包括脚本代码)。
方法300包括访问指示先前将本地存储的数据库部分发送给计算机系统的域的存储的域名的动作(动作303)。例如,本地存储访问模块107可访问指示先前已经将数据库部分154P发送给web浏览器104的域151中的web服务器的域名152。
方法300包括将该指定域名与存储的域名进行比较的动作(动作304)。例如,本地存储访问模块可将域名152(存储在本地存储108中)与域名152(与请求184相关联)进行比较。方法300包括确定指定域名和存储的域名足够相似以允许来自web服务器的响应包括本地存储的数据库部分的动作(动作305)。例如,本地存储访问模块107可确定域152(存储在本地存储108中)与域名152(与请求184相关联)相同。然而,可以使用指示较低相似度的指定规则来确定指定域名和存储的域名是否足够相似。
方法300包括基于判定来在对基于web的请求的基于web的响应中包括来自本地存储的数据库部分的数据的动作(动作306)。例如,数据库部分154P可基于比较的结果来包括在响应185(即,对请求189的响应)中。方法300包括在web浏览器处呈现包括本地存储的数据库部分的基于web的响应的动作(动作307)。例如,数据库部分154P(以及响应185中所包括的任何其他网页分量)可在web浏览器104处呈现。
本发明的各实施例可防止恶意服务器访问另一服务器的本地存储的数据库数据。例如,情况可以是域161中的恶意服务器163将响应136发送给web浏览器104(响应于来自web浏览器104的请求)。响应136可包括请求访问存储在本地存储108中的数据库数据(例如通过执行脚本)的代码(脚本)。由此,本地存储访问模块107可将域名162(域161的域名)与本地存储108中存储的域名(例如,域名152)进行比较。如果域名162缺乏与任何存储的域名的足够的相似度,则不给予对存储的数据库数据的访问。由此,保护了诸如例如,数据库部分154P等来自其他域的数据库数据免遭未授权访问。即,当域名152和域名162缺乏足够的相似度时,本地存储访问模块107不准许来自域161的请求访问发自域151并且存储在本地存储108中的数据库部分154P。
来自web服务器的响应可包括诸如例如,当用户与网站进行具体通信等时来自服务器的代码(脚本)。响应还可包括诸如例如,当一个网站包括另一个网站的广告等时来自第三方服务器的代码(脚本)。
“恶意”web服务器从存储在本地存储108中的数据的观点来看可被视作是恶意的,即使在用户具有访问web服务器的合法理由时。例如,用户可能在第一银行和第二银行都具有银行账户。因此,计算机系统101的用户具有访问第一和第二银行两者的网站的合法的(并且实际上是有益的)理由。此外,通过先前与第一银行的网站进行通信,该第一银行可具有存储在本地存储108中的数据库数据(例如,用户账户信息)。然而,用户未必期望将对该第一银行的本地存储的数据库数据的访问给予第二银行。域名检查可防止来自第二银行的脚本访问第一银行的本地存储的数据库数据。
因此,本发明的各实施例可用于按域“沙箱化(sandbox)”本地存储的基于web的数据库数据。
图1C示出了示例计算机体系结构100并且还描绘了域171。域171包括恶意web服务器173和数据库174。类似于web服务器153,web服务器173可以与一个或多个分布式应用程序相关联并且可访问其他基于web的内容。图4示出了用于在计算机系统处高速缓存表格数据库数据以供后续web浏览器访问的另一示例方法的流程图。方法400将参考图1C中所描绘的计算机体系结构100的各组件来描述。
方法400包括将基于web的请求发送给指定域中的web服务器的动作,该基于web的请求请求访问包括数据库的一部分的网页,该数据库部分被存储在该web服务器可访问的数据库中(动作401)。例如,web浏览器104可将请求187发送给web服务器173。请求187可包括访问包括数据库174的一部分的网页的请求。
web服务器173可接收请求187并将请求181的至少一部分路由至分布式应用程序。该分布式应用程序可响应于接收到该请求而访问来自数据库174的数据(例如,数据库部分174P)。在适当时,web服务器153可将从数据库174访问的任何数据库数据与其他内容组合。从该数据库数据以及可能的其他内容,web服务器153可制定网页并将其发回web浏览器174。
web浏览器104可接收该网页。web浏览器104可呈现内容的某些部分并将任何数据库数据转发至分布式应用程序。该分布式应用程序可处理并呈现该数据库数据。
响应于请求187,web服务器173可将请求188发送给web服务器104。请求188可以是将数据库部分174P发送给计算机系统101以便存储在本地存储108中的请求。
方法400包括从web服务器接收将数据库部分发送给计算机系统以便本地存储在该计算机系统处的请求的动作(动作402)。例如,web浏览器104可从web服务器133接收请求188。
方法400包括确定分配给指定域以供本地存储的存储空间的量足够大以存储数据库部分的动作(动作403)。例如,响应于请求188,本地存储访问模块107可参考配额数据103以确定分配给域171的存储空间的量。本地存储访问模块107可扫描配额数据103中的条目以查找指定域名。例如,本地存储访问模块107可扫描配额数据103中的条目以查找域名172(域171的域名)。当发现包括指定域名的条目时,本地存储访问模块107可参考与该域相对应的存储空间配额。例如,本地存储访问模块107可参考配额112以标识分配给域171以供将数据库数据存储在本地存储108中的存储空间。
本地存储访问模块107可从配额112中减去域171当前所使用的存储空间的量以计算可用于供域171存储数据库数据的剩余存储空间量。当数据库部分174P的大小小于或等于对于域171可用的剩余存储空间量时,本地存储访问模块107准许将数据库部分174P连同域名172一起存储在本地存储108中。
另一方面,当数据库部分174P的大小大于对于域171可用的剩余存储空间量时,本地存储访问模块107可阻止将数据库部分174P存储在108中。或者,当数据库部分174P的大小大于对于域171可用的剩余存储空间量时,可向用户呈现通知,从而给予该用户增加域171的配额的机会。
例如,配置界面102可以在数据库部分174P的存储将导致超出配额112时在计算机系统101处呈现通知。该通知可包括用于在最初设置以及更改配额112的值的用户界面控件。如果用户将配额112增加了一适当的量,则本地存储访问模块107随后可准许将数据库部分174P连同域名172一起存储在本地存储108中。
当本地存储访问模块107准许将数据库数据存储在存储108中时,web浏览器104可将该信息发送给做出请求的web服务器。例如,web浏览器104可通知web服务器173其具有足够的剩余存储空间来将数据库部分174P存储在本地存储108中。作为响应,web服务器173可将数据库部分174P发送给web浏览器104。
方法400包括从web服务器接收数据库部分的动作(动作404)。例如,web浏览器104可从web服务器173接收数据库部分174P。方法400包括将数据库部分存储在计算机系统处的动作,所存储的数据库部分可由web浏览器来本地访问以使得来自该数据库部分的数据可被本地提供给web浏览器而不必在基于网络的通信中包括该数据(动作405)。例如,web浏览器104可将数据库部分174P存储在本地存储108中。因此,数据库部分174P可由web浏览器104来本地访问以使得该本地存储的数据库部分174P可以在不经由网络131来传输数据库部分174P的情况下提供给web浏览器104。
因此,本发明的各实施例准许将基于web的数据库数据本地存储在计算机系统处以提高在该计算机系统处的web浏览器中呈现基于web的数据库数据的效率。基于web的数据库数据可按域沙箱化以减少(并且可能消除)基于web的数据库数据向恶意计算机系统的暴露。分配给每一个域的空间可在最初设置并且然后由用户随后来更改。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方式的含义和范围内的所有改变应被权利要求书的范围涵盖。

Claims (19)

1.一种在包括用于浏览基于web的内容的web浏览器的计算机系统处的方法,所述方法用于在所述计算机系统处高速缓存表格数据库数据以供后续web浏览器访问,所述方法包括:
将基于web的请求发送给指定域中的web服务器的动作,所述基于web的请求请求访问包括数据库的一部分的网页,所述数据库部分被存储在所述web服务器可访问的数据库中;
从所述web服务器接收所述数据库部分的动作;
将所述数据库部分本地存储在所述计算机系统处的动作,所述本地存储的数据库部分可由所述web浏览器来本地访问以使得来自所述本地存储的数据库部分的数据可被本地提供给所述web浏览器而不必在基于网络的通信中包括所述数据;
保留所述数据库部分是从所述指定域接收到的指示以防止其他域中的web服务器访问所述数据库的副本的动作;
其中,保留所述数据库部分是从所述指定域接收到的指示的动作包括将所述指定域的域名连同所述数据库部分一起本地存储在所述计算机系统处的动作,从而当接收到访问所述数据库部分的后续请求时,能够将与所述后续请求相关联的域名与本地存储在所述计算机系统处的域名进行比较,以确定所述后续请求是否被授权。
2.如权利要求1所述的方法,其特征在于,所述将基于web的请求发送给web服务器的动作包括发送HTTP请求的动作。
3.如权利要求1所述的方法,其特征在于,所述将基于web的请求发送给web服务器的动作包括发送包括从所述计算机系统处的分布式应用程序的一部分到所述指定域中的分布式应用程序的另一部分的通信的基于web的请求的动作。
4.如权利要求1所述的方法,其特征在于,所述从web服务器接收数据库部分的动作包括接收关系型数据库的一部分的动作。
5.如权利要求1所述的方法,其特征在于,所述将数据库部分本地存储在计算机系统处的动作包括将所接收到的数据库部分存储在来自所述web服务器的脚本代码可访问的位置中以使得来自所述web服务器的脚本代码可访问本地数据库部分以满足来自所述web浏览器的基于web的请求的动作。
6.如权利要求1所述的方法,其特征在于,所述将数据库部分本地存储在计算机系统处的动作包括将所接收到的数据库部分存储在来自所述web服务器的脚本代码可访问的位置中以使得数据可用于满足基于web的请求而不必通过因特网来传输所述数据的动作。
7.一种在包括用于浏览基于web的内容的web浏览器的计算机系统处的方法,所述方法用于在所述web浏览器中呈现表格数据库数据,所述方法包括:
将基于web的请求发送给由指定域名指示的指定域中的web服务器的动作,所述基于web的请求是为了访问包括数据库数据的一部分的网页,所述数据库部分被存储在所述web服务器可访问的数据库中;
从所述web服务器接收访问本地存储在所述计算机系统处的本地存储的数据库部分的请求的动作;
访问指示先前将本地存储的所述数据库的副本发送给所述计算机系统的域的存储的域名的动作;
将所述指定域名与所述存储的域名进行比较的动作;
确定所述指定域名和所述存储的域名足够相似以允许来自所述web服务器的响应包括来自所述本地存储的数据库部分的数据库数据的动作;
基于所述判定来在对所述基于web的请求的基于web的响应中包括来自所述本地存储的数据库部分的数据的动作;以及
在所述web浏览器处呈现包括来自所述本地存储的数据库部分的数据的基于web的响应的动作。
8.如权利要求7所述的方法,其特征在于,所述将基于web的请求发送给web服务器的动作包括发送包括从所述计算机系统处的分布式应用程序的一部分到所述指定域中的分布式应用程序的另一部分的通信的基于web的请求的动作。
9.如权利要求7所述的方法,其特征在于,所述访问指示域的存储的域名的动作包括访问域名服务(“DNS”)名称的动作。
10.如权利要求7所述的方法,其特征在于,所述将指定域名与存储的域名进行比较的动作包括确定所述指定域名与所述存储的域名相同的动作。
11.如权利要求7所述的方法,其特征在于,所述在基于web的响应中包括来自本地存储的数据库部分的数据的动作包括在不通过因特网来传输所述数据的情况下包括所述数据的动作。
12.如权利要求7所述的方法,其特征在于,所述在web浏览器处呈现包括来自本地存储的数据库部分的数据的基于web的响应的动作包括呈现包括来自所述本地存储的数据库部分的数据以及一种或多种其他类型的内容的响应的动作。
13.一种在包括用于浏览基于web的内容的web浏览器的计算机系统处的方法,所述方法用于在所述计算机系统处高速缓存表格数据库数据以供后续web浏览器访问,所述方法包括:
将基于web的请求发送给指定域中的web服务器的动作,所述基于web的请求请求访问包括数据库数据的一部分的网页,所述数据库部分被存储在所述web服务器可访问的数据库中;
从所述web服务器接收将所述数据库部分发送给所述计算机系统以便本地存储在所述计算机系统处的请求的动作;
确定分配给所述指定域以供本地存储的存储空间的量足够大以存储所述数据库部分的动作;
从所述web服务器接收所述数据库部分的动作;
将所接收到的数据库部分存储在所述计算机系统处的动作,所存储的数据库部分可由所述web浏览器来本地访问以使得来自所述数据库部分的数据可被本地提供给所述web浏览器而不必在基于网络的通信中包括所述数据;
保留所述数据库部分是从所述指定域接收到的指示以防止其他域中的web服务器访问所述数据库的副本的动作;
其中,保留所述数据库部分是从所述指定域接收到的指示的动作包括将所述指定域的域名连同所述数据库部分一起存储在所述计算机系统处的动作,从而当接收到访问所述数据库部分的后续请求时,能够将与所述后续请求相关联的域名与存储在所述计算机系统处的域名进行比较,以确定所述后续请求是否被授权。
14.如权利要求13所述的方法,其特征在于,确定分配给所述指定域以供本地存储的存储空间的量足够大以存储所述数据库部分的动作包括参考所述指定域的用户可配置配额数据。
15.如权利要求13所述的方法,其特征在于,确定分配给所述指定域以供本地存储的存储空间的量足够大以存储所述数据库部分的动作包括接收初始用户设置已将足够的存储空间分配给了所述指定域以准许存储所述数据库部分的指示。
16.如权利要求13所述的方法,其特征在于,还包括:
在确定分配给所述指定域以供本地存储的存储空间的量足够大以存储所述数据库部分之前,确定分配给所述指定域以供本地存储的存储空间的量不够大以存储所述数据库部分的动作;以及
在所述计算机系统处呈现通知的动作,所述通知指示分配给所述指定域以供本地存储的存储空间的量不够大以存储所述数据库部分。
17.如权利要求16所述的方法,其特征在于,还包括:
在确定分配给所述指定域以供本地存储的存储空间的量足够大以存储所述数据库部分之前,接收用户已增加了分配给所述指定域以供本地存储的存储空间的指示的动作。
18.如权利要求13所述的方法,其特征在于,所述从web服务器接收数据库部分的动作包括接收SQL数据库的一部分的动作。
19.如权利要求13所述的方法,其特征在于,所述将所接收到的数据库部分存储在所述计算机系统处的动作包括存储所述数据库部分以使得来自所述数据库部分的数据可用于满足基于web的请求而不必通过因特网来传输来自所述数据库部分的数据的动作。
CN2007800374737A 2006-10-06 2007-10-04 本地存储基于web的数据库数据 Active CN101523393B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/539,563 US7778987B2 (en) 2006-10-06 2006-10-06 Locally storing web-based database data
US11/539,563 2006-10-06
PCT/US2007/080432 WO2008045756A1 (en) 2006-10-06 2007-10-04 Locally storing web-based database data

Publications (2)

Publication Number Publication Date
CN101523393A CN101523393A (zh) 2009-09-02
CN101523393B true CN101523393B (zh) 2012-05-23

Family

ID=39275773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800374737A Active CN101523393B (zh) 2006-10-06 2007-10-04 本地存储基于web的数据库数据

Country Status (5)

Country Link
US (1) US7778987B2 (zh)
EP (1) EP2084631A4 (zh)
CN (1) CN101523393B (zh)
TW (1) TWI372346B (zh)
WO (1) WO2008045756A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007132850A1 (ja) * 2006-05-15 2007-11-22 Visionarts, Inc. ネットワーク情報処理方法及びシステム
US9524496B2 (en) * 2007-03-19 2016-12-20 Hugo Olliphant Micro payments
US20100121907A1 (en) * 2008-10-24 2010-05-13 Mcknight Thomas R Cooperative Measurement Technique for the Determination of Internet Web Page Exposure and Viewing Behavior
US8621046B2 (en) * 2009-12-26 2013-12-31 Intel Corporation Offline advertising services
US7904574B1 (en) * 2010-09-24 2011-03-08 Bryant Christopher Lee Managing locally stored web-based database data
US8838962B2 (en) * 2010-09-24 2014-09-16 Bryant Christopher Lee Securing locally stored Web-based database data
US20150195340A1 (en) * 2010-09-30 2015-07-09 Google Inc. Determining if an Application is Cached
US8396936B2 (en) * 2010-10-28 2013-03-12 Hewlett-Packard Development Company, L.P. Computer system with cooperative cache
FR2967856A1 (fr) * 2010-11-23 2012-05-25 France Telecom Communication entre deux applications web
CN102541953A (zh) * 2010-12-29 2012-07-04 北大方正集团有限公司 一种树形结构网络数据展现方法及系统
US9449113B2 (en) 2011-06-28 2016-09-20 Microsoft Technology Licensing, Llc Browser storage management
US8583767B2 (en) * 2011-08-24 2013-11-12 CSC Holdings, LLC Virtual service delivery platform
CN103748892B (zh) 2011-08-25 2017-04-05 英特尔公司 用于基于音频的人类存在检测的系统和方法以及计算机程序产品
US9152732B2 (en) * 2011-11-02 2015-10-06 Microsoft Technology Licensing, Llc. Browser cache assist for accessing web-based content
RU2586016C2 (ru) 2011-11-15 2016-06-10 Японское Агентство По Науке И Технике Система предоставления услуги анализа/верификации программ, способ управления такой системой, машиночитаемая среда хранения, устройство для анализа/верификации программ, устройство для управления средством анализа/верификации программ
US9043469B2 (en) 2012-06-29 2015-05-26 International Business Machines Corporation Cache control for web application resources
CN103902380B (zh) * 2012-12-26 2018-09-07 北京百度网讯科技有限公司 一种利用沙箱来确定资源分配的方法、装置和设备
CN103108035A (zh) * 2013-01-17 2013-05-15 深圳市中兴移动通信有限公司 一种基于webos的应用本地化方法及装置
CN104715025A (zh) * 2015-03-03 2015-06-17 百度在线网络技术(北京)有限公司 用于离线Web应用的数据存储方法和装置
CN105893429A (zh) * 2015-12-08 2016-08-24 乐视云计算有限公司 用于优化web缓存的方法及系统
US10713286B2 (en) 2017-06-27 2020-07-14 Microsoft Technology Licensing, Llc Storage of point of interest data on a user device for offline use
CN110209798A (zh) * 2017-12-22 2019-09-06 北京奇虎科技有限公司 一种redis数据库的数据展示方法和装置
CN111355766B (zh) * 2018-12-20 2023-08-04 福建福昕软件开发股份有限公司 Pdf文件在网络上按需加载的渲染方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202023B1 (en) * 1996-08-22 2001-03-13 Go2 Systems, Inc. Internet based geographic location referencing system and method
US6701352B1 (en) * 1997-07-11 2004-03-02 Pitney Bowes Inc. Method and apparatus for importing information from a network resource
US7054900B1 (en) * 2000-08-18 2006-05-30 Netzero, Inc. Automatic, profile-free web page recommendation

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594682B2 (en) 1997-10-28 2003-07-15 Microsoft Corporation Client-side system for scheduling delivery of web content and locally managing the web content
US6131096A (en) * 1998-10-05 2000-10-10 Visto Corporation System and method for updating a remote database in a network
US6374404B1 (en) 1998-12-16 2002-04-16 Sony Corporation Of Japan Intelligent device having background caching of web pages from a digital television broadcast signal and method of same
DE19910311A1 (de) * 1999-03-09 2000-09-14 Siemens Ag Automatisierungssystem mit wiederverwendbaren Automatisierungsobjekten und Verfahren zur Wiederverwendung von Automatisierungslösungen in Engineering-Werkzeugen
US6801927B1 (en) 1999-09-24 2004-10-05 Akamba Corporation Network adaptor card with reverse proxy and cache and method implemented therewith
US6772225B1 (en) 1999-09-30 2004-08-03 International Business Machines Corporation Policy enabled web caching
US20040073707A1 (en) * 2001-05-23 2004-04-15 Hughes Electronics Corporation Generating a list of network addresses for pre-loading a network address cache via multicast
US7970816B2 (en) * 2002-03-01 2011-06-28 NetSuite Inc. Client-side caching of pages with changing content
US7266541B2 (en) * 2002-04-12 2007-09-04 International Business Machines Corporation Adaptive edge processing of application data
US7024420B2 (en) 2002-04-30 2006-04-04 Bmc Software, Inc. Run-time access techniques for database images
US7051161B2 (en) 2002-09-17 2006-05-23 Nokia Corporation Memory admission control based on object size or request frequency
US7043606B2 (en) 2002-10-01 2006-05-09 America Online, Inc. Automatic browser web cache resizing system
US7076500B2 (en) 2003-06-30 2006-07-11 David Gallant Selective file caching method
US7457828B2 (en) * 2003-08-29 2008-11-25 Sap Ag System and method for synchronizing distributed buffers when committing data to a database
CA2447961A1 (en) * 2003-10-31 2005-04-30 Ibm Canada Limited - Ibm Canada Limitee Research data repository system and method
US20050197819A1 (en) * 2004-03-02 2005-09-08 Hopkins James B. System and method for running web applications locally
US8140529B2 (en) * 2005-07-28 2012-03-20 International Business Machines Corporation Method and apparatus for autonomically regulating information transfer when accessing database resources

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202023B1 (en) * 1996-08-22 2001-03-13 Go2 Systems, Inc. Internet based geographic location referencing system and method
US6701352B1 (en) * 1997-07-11 2004-03-02 Pitney Bowes Inc. Method and apparatus for importing information from a network resource
US7054900B1 (en) * 2000-08-18 2006-05-30 Netzero, Inc. Automatic, profile-free web page recommendation

Also Published As

Publication number Publication date
US7778987B2 (en) 2010-08-17
WO2008045756A1 (en) 2008-04-17
US20080086477A1 (en) 2008-04-10
EP2084631A1 (en) 2009-08-05
TWI372346B (en) 2012-09-11
EP2084631A4 (en) 2011-02-09
TW200825801A (en) 2008-06-16
CN101523393A (zh) 2009-09-02

Similar Documents

Publication Publication Date Title
CN101523393B (zh) 本地存储基于web的数据库数据
CN101529415B (zh) 基于web的应用程序的离线执行
US7949702B2 (en) Method and apparatus for synchronizing cookies across multiple client machines
US6564218B1 (en) Method of checking the validity of a set of digital information, and a method and an apparatus for retrieving digital information from an information source
CN103562928B (zh) 用于阻挡使用跟踪的方法和装置
AU2008200613B2 (en) Tracking web server
US20080040424A1 (en) Automated acquisition and maintenance of web-servable content via enhanced "404:not found" handler
CN101390080A (zh) 基于查询部分来供应高速缓存的查询结果
CN103150513A (zh) 拦截应用程序中的植入信息的方法及装置
US6917950B2 (en) Modifying a shared resource
CN107807937B (zh) 一种网站seo处理方法、装置及系统
CN110266661A (zh) 一种授权方法、装置及设备
CN107241300B (zh) 用户请求的拦截方法和装置
JP5347429B2 (ja) ユニフォームリソースロケータ書換方法及び装置
CN1475927A (zh) 保证服务供应商所推荐的服务的可用性的方法和系统
CN109325192B (zh) 一种广告防屏蔽的方法和装置
US20080168229A1 (en) Method of Caching Data Assets
CN109086414B (zh) 用于搜索区块链数据的方法、装置及存储介质
US20160004850A1 (en) Secure download from internet marketplace
US20050004913A1 (en) Dynamic access decision information module
WO2006075898A1 (en) Method and system for managing various kinds of keywords by interworking the keywords depending on user authentication
CN101057238A (zh) 用于控制经由web或wap接入对网站的信息访问的方法和系统
CN106649792B (zh) 一种页面访问方法及装置
CN100531065C (zh) 用于管理包括动态受保护数据的网站的方法和系统
CN111988405B (zh) 负载均衡装置的报文重写方法及负载均衡装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150511

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150511

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.