将动态网址转换为静态网址的命名方法、系统及其应用与流程

文档序号:11138784阅读:312来源:国知局
将动态网址转换为静态网址的命名方法、系统及其应用与制造工艺

本发明涉及一种将动态查询网址转换为静态化的网址的命名方法、系统及其应用,通过此种转换后,将解决动态查询网页按地址做为文件名存储的难题。



背景技术:

许多基于因特网的服务提供者向全世界的浏览者递送数字内容。数字内容可以包括web对象(例如,文本、图形、URL、脚本)、可下载对象(例如,媒体文件、软件、文档等)、web应用、流媒体(例如,音频和视频内容)等。

随着因特网内容展现方式的不断丰富,已由传统的页面内容全部预先录入好的“静态网页”,发展为按浏览者发送来的不同请求,而展现不同内容的动态网页。

静态网页:如http://www.a.com/index.html,这个网页里所有的内容都已固定,不会根据用户浏览器传送的参数而改变。

动态网页:比如http://www.a.com/news.php是根据收到的查询参数展现不同的新闻内容。例如,如果要查询2016年8月8日的第一条新闻,可以通过给定如下http://www.a.com/news.php?id=1&date=20160808,对于这种查询的网址,其中

●news.php:是网页文件名

●?id=1&date=20160808:是查询的参数。

与静态网页相比,news.php的网页是基于所述查询参数动态生成的,因此,其显示的内容会根据?id=后面的值的不同而有不同的变化。

从上面的分析的两种网页展现形式来看,静态网页的存储是很容易的,只需要将静态网页按原来的目录和文件名存储即可。

但对于动态网页的存储,需要将news.php?id=1date=20160808做为文件名存储。但news.php?id=1date=20160808由于包含?、&、=等特殊字符,因而无法直接做为文件名。

在现有技术中已经有人认识到上述问题并提出了解决方案,例如亚马逊S3产品对于这种动态查询的文件名,建议了使用URL编码来存储文件名。即将上述示例的news.php?id=1date=123通过URL编码后转换为:news.php%3fid%3d1date%3d123,从而解决了动态页面无法备份保存的问题。但经过测试后发现经过这种转码后存储的文件名,有如下两个问题:

1、需要将备份的网页中的相应链接地址,全部改写为这种URL编码。比如原来有多个页面a.htm、b.htm等等中都有链接指向news.php?id=1date=123这个地址,在将news.php?id=1date=123地址进行了上述转换之后,需要将所有的a.htm、b.htm等等页面中的该地址全部改为news.php%3fid%3d1date%3d123,这样,当点击a.htm、b.htm等等页面中的链接时,所述产品才能正确地将页面跳转到经转换后的地址处的页面。显然,这种转换的工作量巨大,还改写了用户的备份网页中的实际内容。

2、当用户正在访问备份服务器上所备份的网页过程中,如果用户的源站恢复正常,当用户在浏览器中点击网页中的链接时,备份服务器应该将用户引导回源站来访问源站上的对应的网页。但这时用户本地浏览器中访问的网页还是出现问题时所访问备份服务器中经过上述地址转换的内容。因此,当用户点击例如a.htm中的news.php?id=1date=123这个链接时,就会向源站访问URL编码过的news.php%3fid%3d1date%3d123页面,而非真正的“news.php?id=1date=123”页面。这会造成源站无法识别此种URL,导致访问失败。

由此可见,存在一种对能够解决现有技术中所存在的上述问题的方案的需求,特别是对能够将动态查询URL转换为静态URL同时不影响对源站的访问的技术。



技术实现要素:

本发明通过“极速存储”服务,提供了一种解决在将动态URL按文件名保存时不能存储的问题并且当所述源站恢复正常后使得所述对内容的访问从“极速存储”服务返回到源站的方案。

根据本发明的第一方面,提供了一种将动态查询网址转换为静态网址的命名方法,包括:接收来自客户端的包含有动态查询网址的请求;从所述请求中解析出所述动态查询网址;根据标准将所述动态查询网址拆分成包含查询字符串的多个部分;对所述查询字符串进行散列计算;将经散列的查询字符串与拆分出的其它部分拼接出新的文件名;以及以该新文件名存储与所述动态查询网址相关联的备份文件。

基于所述命名方法,本发明还提供了一种用于将来自源站的网页文件存储到备份存储中的方法,包括:根据来自客户端的用户给出的域名,按网页层级遍历该域名相关联的内容;当所遍历的源站的页面的链接地址是动态地址时,通过如本发明的第一方面所述的命名方法来为所述页面计算出新的文件名;获取所遍历的源站的页面的文件内容和文件属性;以及将所述文件内容和文件属性一起以计算出的新的文件名存储到备份存储中。

基于所述命名方法,本发明还提供了一种用于浏览备份存储中的备份文件的方法,包括:接收来自客户端的由访问者发送的访问源站的请求;当所述源站的运行状态异常时,将所述请求转发给备份存储服务器来请求从其获得所请求的内容;在接收到所述请求之后,备份存储服务器判断所述请求所访问的地址是静态地址还是动态地址:如果所访问的地址是静态地址,则直接以所请求的文件名来定位在所述备份存储中的对应的备份文件;如果所访问的地址是动态地址,则根据本发明的第一方面所述的命名方法从所访问的地址中计算出文件名,并根据该计算出的文件名来定位在所述备份存储中的对应的备份文件;以及所述备份存储服务将该备份文件的文件内容、文件属性等内容通过所述CDN边缘节点返回给所述客户端。

本发明还提供了一种用于将来自源站的网页文件存储到备份存储中的系统,包括:用于根据来自客户端的用户给出的相关域名,按网页层级遍历该域名网站相关内容的装置;用于当所遍历的源站的页面的链接地址是动态地址时,通过如权利要求1所述的命名方法来为所述页面计算出新的文件名的装置;用于获取所遍历的源站的页面的文件内容和文件属性的装置;以及用于将所述文件内容以计算出的新的文件名来命名,并与其文件属性一同存储到备份存储中的装置。

本发明还提供了一种用于浏览备份存储中的备份文件的系统,包括:用于接收来自客户端的访问请求的装置;用于当所述源站的运行状态异常时,将所述请求转发给备份存储服务器来请求备份的内容的装置;用于在接收到所述请求之后,使备份存储服务器判断所述请求所访问的地址是静态地址还是动态地址的装置,其中:如果所访问的地址是静态地址,则直接以所请求的文件名来定位在所述备份存储中的对应的备份文件;如果所访问的地址是动态地址,则根据如权利要求1所述的命名方法从所访问的地址中计算出文件名,并根据该计算出的文件名来定位在所述备份存储中的对应的备份文件;以及用于使所述备份存储服务将该备份文件的文件内容、文件属性等内容返回给所述客户端的装置。

附图说明

为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:

图1示出了极速存储服务的运行环境。

图2示出了将来自源站的网页文件存储到极速存储中的流程示意图。

图3示出了浏览极速存储中的备份文件的流程示意图。

图4示出了一种将动态查询网址转换为静态网址以作为存储在极速存储中的备份文件的文件名的方法。

具体实施方式

下面结合附图和实施例对本发明作进一步的描述

本发明涉及一种基于“极速存储”服务。所述极速存储是一种面向互联网对象的存储备份技术,通过爬虫技术将用户网站中的内容存储到极速存储中,达到备份的目的。当用户的网站有异常时,可以通过将对该网站的访问引导到极速存储中保存的与该网站相关联的页面备份,为用户的网站提供持续访问能力,并且当所述用户的网站恢复正常时,可以及时将所述访问引导回源站以实现无缝切换。

当与CDN技术相结合时,可以在浏览者无感知的情况下,在用户源网站和极速存储备份数据中切换。

CDN技术中的缓存节点,也会将浏览者访问的网页内容存储到本地,当有用户现次访问同样的内容时,能够快速提供内容。

但与传统的CDN技术相比,本发明的极速存储存在下述不同之处:

首先,如前所述,传统的CDN的缓存的内容具有时效性,而在极速存储服务中,当来自用户的网站的页面存储到极速存储中时,所存储的内容是永久性的,也即不会因为时效性而不被删除。

其次,在将来自用户的网站的静态页面存储到极速存储中时,与CDN将缓存的网页转换成独特的文件名不同的是本发明的极速存储是按用户请求的网页的网址来存储该网页,例如用户请求网址为www.a.com/abc.htm的网页,则在极速存储中该网页所存储的文件名就是“www.a.com/abc.htm”。而CDN缓存技术,可能会将用户访问的内容转换成自有的目录存储格式。

还有,针对动态网页的存储,本发明的极速存储服务提供了一种统一的命名方法来将动态查询网址转换为静态网址并通过上述静态页面的处理方式将其按所转换的静态网址来存储该动态网页,从而解决了动态网页难以备份的问题。同时,当用户的网站恢复时,极速存储服务可以在用户没有任何察觉的情况下将用户的访问从极速存储的备份内容切换回所述网站的动态内容。

下面,首先结合附图1来描述下极速存储服务的运行环境。在图1中示出了包括多个CDN边缘节点的CDN服务网络102、用户的源站104、客户端106以及极速存储服务器108。这些设备通过各种类型的网络彼此相连并通信,所述网络包括蜂窝移动网络、互联网、局域网和广域网等等。访问者通过客户端106向CDN服务网络102发送对源站104的网页的访问请求。在接收到所述请求后,CDN服务网络102根据源站的当前运行状况判断是从源站104读取内容返回给访问者(源站运行情况正常)还是将存储在极速存储中的备份内容返回给访问者(源站工作异常,例如无法访问或响应异常缓慢等等情况)。随后,根据CDN服务网络102的判断,所述请求被相应地发送给源站104或极速存储服务器108并从其将所请求的内容返回给访问者。应该理解的是所述CDN服务网络仅仅是一种说明性示例,其它服务网络也可以被用于源站、客户端和极速存储服务器108之间的通信,例如蜂窝网络、Wi-Fi网络、互联网服务等等。

在了解了本发明的极速存储服务的基本运行情况之后,下面结合各附图来分别描述所述极速存储服务的各种功能。

首先,结合图2来描述所述极速存储服务为用户的网站的各页面提供的快照存储功能,所述快照存储是指将来自源站的网页文件存储到极速存储中。具体来说,通过模拟网页浏览者遍历访问者用户所指定域名的网站内容,将网站中所有内容,以快照保存到极速存储中。而源服务器中的代码结构和业务逻辑无需做任何改变。

在步骤202,通过专用程序根据用户给出的域名,按照网页层级遍历(业内也管这种遍历站点网页的方式叫做:爬取),取得用户所指定的网站中的所有网页、图片等文件链接。

在步骤204,分析所遍历的页面中的链接地址是否在用户指定的域名范围内。如果是,则进入步骤206。如果不是则返回到步骤202,继续遍历爬取源站的下一个页面。

在步骤206,判断所遍历的页面的链接地址是静态地址还是动态地址。如果所述链接地址是静态地址,诸如普通网页、静态图片等的地址,则进入步骤208。如果所述链接地址是动态地址,诸如,查询网页、根据参数动态生成的图片等,则所述流程进入步骤210。

在步骤208,直接以该静态网址作为要本地缓存的页面文件在极速存储中的文件名,并进入步骤212。

在步骤210,通过一种用于计算动态文件名的统一命名方法(在图4中进一步描述)来为该页面内容计算出新的文件名,并进入步骤212。

在步骤212,获取所遍历的页面的文件内容,以临时文件存储到本地。

在步骤214,获取所遍历的页面的文件属性,如Content-type、Max-age等;

在步骤216,以计算出的新的文件名将文件内容和文件属性一起存储到极速存储中。到此,完成了对所遍历的源站的页面的快照备份。

可以理解的是,在进行源站的爬取时,用户只需要提供一个域名清单,并为域名确定需要备份的页面层级,例如对于一个新闻站点,第一级是首页,第二级则是首页中的一个新闻链接,第三级可以是该新闻链接所链接到的页面中所含有的链接,以此类推。通过这两步简单的设置,本发明中所涉及技术就能够将该域名下的第一级、第二级(甚至更多级下)的页面的内容自动保存到极速存储中,以实现对源站的快照存储(即备份)功能。

而且,为了能够及时更新所备份的内容,可以每天定时地爬取源站来更新所述备份。例如,对于网页内容少的网站(例如较少变化的政府网站)可以每4小时重新爬取一次,以保证所述备份内容的及时性。而对于频繁更新的例如新闻和社交网站,则可以每半小时重新爬取一次,以尽可能保持备份内容的新鲜度。用户可以根据自身需求来设置所述更新周期。

在图3中描述了浏览在极速存储中的备份文件的流程示意图。当极速存储服务根据用户的指令如图2所述顺利地备份(即快照存储)了指定域名的源站所包含的内容后,所述极速存储服务在源站发生故障时就能够为请求访问该源站的访问者提供浏览极速存储上的备份文件(快照)的服务。

在步骤302,CDN访问网络中的一个CDN边缘节点接收到来自客户端的由访问者发送的访问源站的请求。

在步骤304,CDN边缘节点根据所述请求检测源站的运行状态是否正常。所述检测可以根据是否有来自源站的响应以及所述响应的延迟长短。如果出现诸如404或502之类的错误响应或无法访问的问题,则可以判断所述源站工作异常,无法提供访问服务。

如果源站运行状态正常,则在步骤306,所述CDN边缘节点将所述访问请求直接转发给源站并将从其返回的内容转发回客户端。

如果源站状态异常,则在步骤308,CDN边缘节点将该请求转发给极速存储服务器来请求从其获得所请求的内容。

在步骤310,极速存储服务器在接收到所述请求之后,判断所述请求所访问的地址是静态地址还是动态地址。

如果所访问的地址是静态地址,则进入步骤312,直接以所请求的文件名来定位在极速存储中的对应的文件。

如果所访问的地址是动态地址,则进入步骤314,通过用于计算动态文件名的统一命名方法计算出文件名。

在步骤316,根据来自步骤312的直接的文件名或来自步骤314的计算出的文件名定位在极速存储中的与所请求的文件相对应的备份文件。

在步骤318,所述极速存储服务将该备份文件的文件内容、文件属性(如Content-type、Max-age等)等内容通过CDN边缘节点返回给客户端。

如此,当源站发生问题时,本发明提供了一种对指定站的快速有效的快照备服务方案,避免了访问者无法访问源站的尴尬,避免了可能潜在的巨大经济损失。

另外,在一个较佳实施例中,当极速存储服务接收到来自CDN边缘节点转发的访问请求后,它还可以向所请求的源站发送报警信息,以通知源站的管理人员及时查找源站的异常状态的原因,并尽快恢复源站的正常运作。

而且,在又一个较佳实施例中,CDN服务网络会持续(例如每隔一定时间周期)重新检查所请求的源站的运行是否恢复正常。或者,当用户每次点击从极速存储返回的备份页面中的链接时,所述极速存储服务器可以先检查源站的运行是否恢复正常。在上述情况下,如果源站已经恢复正常,则CDN服务网络则会将所述访问从极速存储切换到源站,即将后续的请求都转发给源站并将从其返回的内容转发回客户端。所述切换可以是在CDN服务网络中自动后台进行的,因此,用户对此可能毫无察觉,不会影响用户的访问体验。而如果上述情况下源站还是异常状态,则可以继续执行步骤310-318来为访问者提供来自极速存储中的备份页面的内容,以持续提供访问服务。

需要指出的是,与现有的例如亚马逊S3产品所不同的是,本发明的极速存储服务不会对备份的页面中任何内容做转换或修改。因此,当点击所述备份页面中的链接时,被CDN服务网络可根据该链接尝试从源站访问页面。当源站无响应时,则极速存储服务可以根据该链接通过用于计算动态文件名的统一命名方法计算出的文件名来定位出在极速存储中所存储的对应的备份文件以提供给访问者。因此,本发明的方案无需对备份页面的内容进行任何修改。这无疑大大减少了备份操作的工作量,并保证了备份文件与源站内容的一致性。

下面,结合图4描述一种将动态查询网址转换为静态网址以作为存储在极速存储中的备份文件的文件名的统一命名计算方法。

在图4中,在步骤402中,接收来自客户端的包含有动态查询地址的请求。

在步骤404中,从所述请求中解析出所述动态查询网址。

在步骤406中,根据例如RFC1808之类的标准的规定,将动态查询网址拆分为例如如下所示的包含查询字符串的多个部分:

<scheme协议>://<net_loc网络位置>/<path访问路径>?<query查询字符串>。

在步骤408中,将查询字符串进行散列计算,如利用HASH、MD5算法,得到经散列的查询字符串;

在步骤410中,根据例如下述格式,将经散列的查询字符串与其它部分拼接出新的文件名(即静态地址):

<网络位置>/<path访问路径>+经散列的查询字符串;

在步骤412中,返回新的文件名以作为存储在极速存储中的与该动态查询网址相关联的备份文件的文件名。

以动态网址http://www.a.com/news.php?id=1&date=20160808为例。根据RFC1808标准,它可以被拆分成<http>://<www.a.com>/<news.php>?<id=1&date=20160808>,随后将其中的查询字符串“id=1&date=20160808”用例如MD5的算法进行散列计算,得到经散列的查询字符串“11209aa964458b7f5d9433de535a177e”。最后,根据上述格式拼接出新的文件名:www.a.com/news.php11209aa964458b7f5d9433de535a177e。由此,完成了动态查询网址到静态网址的转换。需要注意的是,以上例举的动态网址仅仅是一种说明性示例,并不是要将其局限于此。如果动态网址缺少上述个别部分或包含上面没有指出的更多部分,它也是可以进行拆分和散列的。

利用上述的统一命名计算方法就可以将动态查询网址转换为静态网址并将该静态网址直接作为存储在极速存储中的备份文件的文件名,解决了现有技术中对动态地址的页面无法备份保存的问题。并且,在当备份文件中同时包含访问下一层次的页面的链接时,也可以通过所述统一命名计算方法计算出该链接地址所对应的文件名来在极速存储中迅速定位到该下一层次的备份页面,因为所述下一层次的备份页面在进行备份时,其文件名也是基于其链接地址通过所述统一命名计算方法计算出的。所以,所述统一命名计算方法避免了对备份页面的内容进行任何修改,减少了备份操作的工作量,并保证了备份文件与源站内容的一致性。

综上所述,在本发明中提供了一种网站内容备份服务,所述极速存储服务不仅可以为静态地址的页面提供存储服务,同时也能为动态地址的网页提供存储服务。且通过爬取主动内容减少了备份操作的工作量,并不修改文件中的内容以保证内容的完整性。同时,通过利用计算机系统执行针对本发明的上述方法所特别编程的程序,本发明还可以提供用于实现本发明的上述这些方法的系统。

本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变都被权利要求书的范围所涵盖。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1