CN102946442B - 基于智能刷新的文件更新发布的方法和系统 - Google Patents
基于智能刷新的文件更新发布的方法和系统 Download PDFInfo
- Publication number
- CN102946442B CN102946442B CN201210520720.1A CN201210520720A CN102946442B CN 102946442 B CN102946442 B CN 102946442B CN 201210520720 A CN201210520720 A CN 201210520720A CN 102946442 B CN102946442 B CN 102946442B
- Authority
- CN
- China
- Prior art keywords
- resource
- version number
- buffer memory
- query string
- file
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了基于智能刷新的文件更新发布的方法和系统,适用于使用缓存服务器架构的源站进行文件的同步更新,减轻源站压力。其技术方案为:在源站对资源引用时添加资源版本号的查询串,当部分文件资源需要修改时对所有资源的版本号查询串进行修改。缓存服务器对于URL相同但版本号不同的资源默认为同一个资源。当版本号相同时直接使用缓存资源,当版本号不同时使用新的URL和旧缓存的Etag、Last-Modified值回源验证:如果资源改变了则从源站获取新资源使用,如果源站没有改变资源则返回304响应,不需要给出整个资源的内容。
Description
技术领域
本发明涉及源站文件更新发布技术,尤其涉及源站及缓存服务器对更新更新的处理方法和系统。
背景技术
传统HTTP网站,文件刷新的方式是:对文件资源设置一个过期时间,在文件过期后,客户端会到源站验证本地缓存文件是否可用,如果源站对该文件没有修改,会告知客户端,文件未修改,可使用本地缓存文件;如果源站更新了该资源,则会重新发送该资源给客户端,客户端使用新的文件资源。为了让网站的资源及时更新,又不影响网站性能,源站通常会对经常改变的页面设置比较短的过期时间,对不经常改变的页面设置比较长的过期时间,比如可以对HTML等经常修改的文本页面设置过期时间为5分钟,对GIF等不经常修改的资源设置过期时间为1周。
对资源设置一定的缓存时间,则客户端在设置的缓存时间内都将使用缓存的资源,没办法强制客户端马上更新缓存文件,对于希望实时更新的文件,将缓存时间设置为0后客户端每次都需要回源验证,造成源站压力大的问题。因此一些网站引用了这样一种刷新机制:对于经常改变的资源,引用的时候在资源URI后面增加查询串,该查询串的值为资源更新的版本号,一旦资源更新则改变查询串版本号的值,这样客户端就可以立马刷新资源。
引用资源带查询串的方式能马上刷新资源,但是这个方案存在以下弊端:
(1)大型网站所引用的资源非常多,更新的时候只会更新部分资源,如果每次都只对这部分资源引用进行版本号更新的话,到后面资源的版本号难于统一控制。因此为了统一管理资源版本,大部分的网站在对部分资源更新的时候,会统一更改所有资源的版本号;
(2)对部分资源进行更新时,一旦更改了所有资源的版本号,则资源被访问的时候都会回源重新取文件,造成回源量过大。
发明内容
本发明的目的在于解决上述问题,提供了一种基于智能刷新的文件更新发布的方法和系统,适用于使用缓存服务器架构的源站进行文件的同步更新,减轻源站压力。
本发明的技术方案为:本发明揭示了一种基于智能刷新的文件更新发布的方法,包括源站对文件资源的更新流程以及缓存服务器对客户端请求的处理流程,
其中源站对文件资源的更新流程为:
当源站需要更新文件资源时,更新资源内容和更新资源引用的查询串;
其中缓存服务器对客户端请求的更新流程为:
缓存服务器接收到带版本号的请求时,根据URI检查是否存在所请求的资源对应的缓存;
如果缓存不存在则直接回源取资源,将返回的内容发送给客户端并缓存,流程结束;
如果缓存的资源存在且查询串的版本号相同,则直接发送缓存内容,流程结束;
如果缓存的资源存在且查询串的版本号不同,则使用更新后的URL、缓存中已有的标签Etag以及最后修改时间Last-Modified值回源验证缓存是否更新;
对于回源验证的请求,如果返回304响应,则使用已有的缓存响应,并更新缓存的查询串的版本号,如果返回非304响应,则使用更新后的响应覆盖已有的缓存响应,并将更新后的响应返回给客户端。
根据本发明的基于智能刷新的文件更新发布的方法的一实施例,源站更新资源内容是指对服务器上需要修改的文件资源进行修改。
根据本发明的基于智能刷新的文件更新发布的方法的一实施例,源站更新资源引用的查询串是指源站对所有资源URL中的版本号查询串进行修改,以确保资源版本的统一,方便对资源版本号进行管理,所述版本号查询串是源站对资源引用时添加的。
本发明还揭示了一种基于智能刷新的文件更新发布的系统,包括源站对文件资源的更新装置以及缓存服务器对客户端请求的处理装置,
其中源站对文件资源的更新装置包括:
资源内容更新模块,更新文件资源的内容;
查询串更新模块,更新文件资源引用的查询串;
缓存服务器对客户端请求的处理装置包括:
缓存资源查询模块,缓存服务器接收到带版本号的请求时,根据URI检查是否存在所请求的资源对应的缓存;
回源模块,当所请求的资源的缓存不存在时直接回源取资源,将返回的内容发送给客户端并缓存;
缓存内容发送模块,当缓存的资源存在且查询串的版本号相同时,直接发送缓存内容;
缓存更新验证模块,当缓存的资源存在且查询串的版本号不同时,使用更新后的URL、缓存中已有的标签Etag以及最后修改时间Last-Modified值回源验证缓存是否更新;
回源验证处理模块,对于回源验证的请求,当返回304响应时使用已有的缓存响应,并更新缓存的查询串的版本号,当返回非304响应时使用更新后的响应覆盖已有的缓存响应,并将更新后的响应返回给客户端。
根据本发明的基于智能刷新的文件更新发布的系统的一实施例,资源内容更新模块的处理是对服务器上需要修改的文件资源进行修改。
根据本发明的基于智能刷新的文件更新发布的系统的一实施例,查询串更新模块的处理是源站对所有资源URL中的版本号查询串进行修改,以确保资源版本的统一,方便对资源版本号进行管理,所述版本号查询串是源站对资源引用时添加的。
本发明对比现有技术有如下的有益效果:本发明的方案是在源站对资源引用时添加资源版本号的查询串,当部分文件资源需要修改时对所有资源的版本号查询串进行修改,解决资源版本统一管理的问题。缓存服务器对于URL相同但版本号不同的资源默认为同一个资源。当版本号相同时直接使用缓存资源,当版本号不同时使用新的URL和旧缓存的Etag、Last-Modified值回源验证:如果资源改变了则从源站获取新资源使用,如果源站没有改变资源则返回304响应,不需要给出整个资源的内容,解决了回源量大的问题。
附图说明
图1示出了本发明的基于智能刷新的文件更新发布的方法的较佳实施例中的源站文件资源更新的流程图。
图2示出了本发明的基于智能刷新的文件更新发布的方法的较佳实施例中的缓存服务器处理客户端请求的流程图。
图3示出了本发明的基于智能刷新的文件更新发布的系统的较佳实施例的原理图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
本发明的基于智能刷新的文件更新发布的方法包括对文件资源的更新流程以及缓存服务器对客户端请求的处理流程。其中图1示出了源站对文件资源的更新流程,图2示出了缓存服务器对客户端请求的处理流程。
请参见图1,当源站上某类资源的内容有修改时(步骤S10),源站更新资源版本号(步骤S11)和更新页面对资源引用的查询串的版本号(步骤S12)。其中源站更新资源内容是指对服务器上需要修改的文件资源进行修改。源站更新资源引用的查询串是指源站对所有资源URL中的版本号查询串进行修改,以确保资源版本的统一,方便对资源版本号进行管理,这里所指的版本号的查询串是源站对资源引用时添加的。
请参见图2,缓存服务器对客户端请求的处理流程详述如下。
步骤S20:缓存服务器接收客户端的代版本号的请求。
步骤S21:缓存服务器根据URI查找请求对应的资源是否存在缓存。
步骤S22:若缓存不存在则进入步骤S29,若缓存的资源存在则进入步骤S23。
步骤S23:判断查询串的版本号是否相同,若相同则进入步骤S28,若不同则转入步骤S24。
步骤S24:使用新查询串的请求和旧缓存的标签Etag、最后修改时间Last-Modified回源验证缓存是否更新。
Etag和Last-Modified是HTTP1.1协议(参见rfc2616)中定义的两个HTTP响应头,这两个响应头的作用是相同的,响应内容一旦被修改过,这两个响应头的值会被修改。
步骤S25:对于验证请求如果返回304响应则说明资源未改变,转入步骤S27,如果返回非304响应则说明资源已更新,转入步骤S26。
客户端在获取某页面响应之后,再次请求该页面,会将Etag和Last-Modified值在HTTP请求头(对应的请求头分别是If-None-Match和If-Modified-Since)中带上。服务器可通过检查Last-Modified或ETag,判断出该页面自上次客户端请求之后是否被修改,如果没有被修改,则直接返回304响应头(只有响应头,不需要返回整个响应内容,减少了响应的大小),如果修改过,则返回非304响应。
Etag和Last-Modified区别在于,Last-Modified只能精确到秒级别,响应在同一秒内被修改,Last-Modified则不会改变,而Etag是响应的任一次修改都会修改Etag值。
步骤S26:返回源响应的内容并缓存,流程结束。
步骤S27:更新缓存查询串的版本号。
步骤S28:返回缓存内容,流程结束。
步骤S29:使用请求URL回源,并进入步骤S26。
图3示出了本发明的基于智能刷新的文件更新发布的系统的较佳实施例的原理。请参见图3,本实施例的系统包括源站对文件资源的更新装置1以及缓存服务器对客户端请求的处理装置2。
源站对文件资源的更新装置1包括资源内容更新模块10、查询串更新模块12。其中资源内容更新模块10更新文件资源的内容,具体是指对服务器上需要修改的文件资源进行修改。查询串更新模块12更新文件资源引用的查询串,具体是指源站对所有资源URL中的版本号查询串进行修改,以确保资源版本的统一,方便对资源版本号进行管理,所述版本号查询串是源站对资源引用时添加的。
缓存服务器对客户端请求的处理装置2包括:缓存资源查询模块20、回源模块21、缓存内容发送模块22、缓存更新验证模块23、回源验证处理模块24。
缓存资源查询模块20的处理中,缓存服务器接收到带版本号的请求时,根据URI检查是否存在所请求的资源对应的缓存。
回源模块21的处理中,当所请求的资源的缓存不存在时直接回源取资源,将返回的内容发送给客户端并缓存。
缓存内容发送模块22的处理中,当缓存的资源存在且查询串的版本号相同时,直接发送缓存内容。
缓存更新验证模块23的处理中,当缓存的资源存在且查询串的版本号不同时,使用更新后的URL、缓存中已有的Etag以及Last-Modified值回源验证缓存是否更新。
回源验证处理模块24的处理中,对于回源验证的请求,当返回304响应时使用已有的缓存响应,并更新缓存的查询串的版本号,当返回非304响应时使用更新后的响应覆盖已有的缓存响应,并将更新后的响应返回给客户端。
上述实施例是提供给本领域普通技术人员来实现和使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书所提到的创新性特征的最大范围。
Claims (4)
1.一种基于智能刷新的文件更新发布的方法,包括源站对文件资源的更新流程以及缓存服务器对客户端请求的处理流程,
其中源站对文件资源的更新流程为:
当源站需要更新文件资源时,更新资源内容和更新资源引用的查询串,其中源站更新资源引用的查询串是指源站对所有资源URL中的版本号查询串进行修改,以确保资源版本的统一,方便对资源版本号进行管理,所述版本号查询串是源站对资源引用时添加的;
其中缓存服务器对客户端请求的处理流程为:
缓存服务器接收到带版本号的请求时,根据URI检查是否存在所请求的资源对应的缓存;
如果缓存不存在则直接回源取资源,将返回的内容发送给客户端并缓存,流程结束;
如果缓存的资源存在且查询串的版本号相同,则直接发送缓存内容,流程结束;
如果缓存的资源存在且查询串的版本号不同,则使用更新后的URL、缓存中已有的标签Etag以及最后修改时间Last-Modified值回源验证缓存是否更新;
对于回源验证的请求,如果返回304响应,则使用已有的缓存响应,并更新缓存的查询串的版本号,如果返回非304响应,则使用更新后的响应覆盖已有的缓存响应,并将更新后的响应返回给客户端。
2.根据权利要求1所述的基于智能刷新的文件更新发布的方法,其特征在于,源站更新资源内容是指对服务器上需要修改的文件资源进行修改。
3.一种基于智能刷新的文件更新发布的系统,包括源站对文件资源的更新装置以及缓存服务器对客户端请求的处理装置,
其中源站对文件资源的更新装置包括:
资源内容更新模块,更新文件资源的内容;
查询串更新模块,更新文件资源引用的查询串,更新文件资源引用的查询串是源站对所有资源URL中的版本号查询串进行修改,以确保资源版本的统一,方便对资源版本号进行管理,所述版本号查询串是源站对资源引用时添加的;
缓存服务器对客户端请求的处理装置包括:
缓存资源查询模块,缓存服务器接收到带版本号的请求时,根据URI检查是否存在所请求的资源对应的缓存;
回源模块,当所请求的资源的缓存不存在时直接回源取资源,将返回的内容发送给客户端并缓存;
缓存内容发送模块,当缓存的资源存在且查询串的版本号相同时,直接发送缓存内容;
缓存更新验证模块,当缓存的资源存在且查询串的版本号不同时,使用更新后的URL、缓存中已有的标签Etag以及最后修改时间Last-Modified值回源验证缓存是否更新;
回源验证处理模块,对于回源验证的请求,当返回304响应时使用已有的缓存响应,并更新缓存的查询串的版本号,当返回非304响应时使用更新后的响应覆盖已有的缓存响应,并将更新后的响应返回给客户端。
4.根据权利要求3所述的基于智能刷新的文件更新发布的系统,其特征在于,资源内容更新模块的处理是对服务器上需要修改的文件资源进行修改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210520720.1A CN102946442B (zh) | 2012-12-06 | 2012-12-06 | 基于智能刷新的文件更新发布的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210520720.1A CN102946442B (zh) | 2012-12-06 | 2012-12-06 | 基于智能刷新的文件更新发布的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102946442A CN102946442A (zh) | 2013-02-27 |
CN102946442B true CN102946442B (zh) | 2015-10-21 |
Family
ID=47729348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210520720.1A Active CN102946442B (zh) | 2012-12-06 | 2012-12-06 | 基于智能刷新的文件更新发布的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102946442B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103401950A (zh) * | 2013-08-21 | 2013-11-20 | 网宿科技股份有限公司 | 缓存异步刷新方法、缓存服务器处理请求方法和系统 |
CN107517194B (zh) * | 2016-06-17 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 一种内容分发网络的回源认证方法和装置 |
CN108595188A (zh) * | 2018-03-30 | 2018-09-28 | 北京五八信息技术有限公司 | 一种应用文件的获取方法、装置、设备及存储介质 |
CN108920703B (zh) * | 2018-07-18 | 2021-11-26 | 郑州云海信息技术有限公司 | 一种http缓存优化方法与装置 |
CN109413163B (zh) * | 2018-10-09 | 2021-08-03 | 网宿科技股份有限公司 | 一种服务访问的方法及装置 |
CN109922368B (zh) * | 2019-02-18 | 2021-09-21 | 海信视像科技股份有限公司 | 一种基于网页页面的图片显示方法及智能电视 |
CN110096295B (zh) * | 2019-05-08 | 2023-08-08 | 吉旗(成都)科技有限公司 | 基于ReactNative的多模块移动应用的热更新方法及系统 |
CN110636121B (zh) * | 2019-09-09 | 2022-07-05 | 苏宁云计算有限公司 | 一种数据获取方法及系统 |
CN112861030B (zh) * | 2019-11-27 | 2024-04-05 | 北京金山云网络技术有限公司 | Cdn的刷新方法和装置、缓存服务器以及存储介质 |
CN116208668A (zh) * | 2023-05-05 | 2023-06-02 | 北京零壹视界科技有限公司 | 基于内容分发网络的数据缓存方法、装置、设备和介质 |
CN117194827B (zh) * | 2023-11-08 | 2024-02-27 | 联通在线信息科技有限公司 | Cdn目录刷新的方法及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882156A (zh) * | 2010-06-13 | 2010-11-10 | 用友软件股份有限公司 | Silverlight客户端可控缓存方法和系统 |
CN102594877A (zh) * | 2012-01-19 | 2012-07-18 | 网宿科技股份有限公司 | 结合重定向下载请求和代理服务加速网络服务的方法、系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0214670D0 (en) * | 2002-06-26 | 2002-08-07 | Ibm | Arrangement and method for update of configuration cache data |
-
2012
- 2012-12-06 CN CN201210520720.1A patent/CN102946442B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882156A (zh) * | 2010-06-13 | 2010-11-10 | 用友软件股份有限公司 | Silverlight客户端可控缓存方法和系统 |
CN102594877A (zh) * | 2012-01-19 | 2012-07-18 | 网宿科技股份有限公司 | 结合重定向下载请求和代理服务加速网络服务的方法、系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102946442A (zh) | 2013-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102946442B (zh) | 基于智能刷新的文件更新发布的方法和系统 | |
US10970306B2 (en) | Change management system for data synchronization within an enterprise portal application | |
US6941310B2 (en) | System and method for caching data for a mobile application | |
US11055085B2 (en) | Method, apparatus, and system for hot-deploying application | |
WO2016026384A1 (zh) | 一种客户端页面显示方法、装置及系统 | |
US8375296B2 (en) | Reusing style sheet assets | |
CN103209223A (zh) | 分布式应用会话信息共享方法、系统和应用服务器 | |
US20100088612A1 (en) | Method and System for Displaying Web Page | |
CN102882974A (zh) | 一种通过网站识别版本号节省网站访问资源的方法 | |
CN103873502A (zh) | 缓存更新方法及系统、提供更新资源的方法及系统 | |
CN102647481B (zh) | 一种访问预设网络地址的装置及方法 | |
US20200117733A1 (en) | Blockchain integration layer | |
CN104731594A (zh) | 一种基于Bootstrap显示运行时定制页面的方法 | |
US20100131585A1 (en) | Displaying information in a client/server system | |
CN103401950A (zh) | 缓存异步刷新方法、缓存服务器处理请求方法和系统 | |
CN103699674A (zh) | 网页保存、网页打开方法及装置和网页浏览系统 | |
CN101184105A (zh) | 一种用于更新数据的客户端装置和方法 | |
CN105808736A (zh) | 一种榜单数据更新方法、装置及系统 | |
CN106789249B (zh) | 热更新方法、客户端及服务器 | |
CN103108035A (zh) | 一种基于webos的应用本地化方法及装置 | |
CN103152367A (zh) | 一种缓存的动态维护更新方法及系统 | |
Pande et al. | Enhanced web application and browsing performance through service-worker infusion framework | |
WO2012155621A1 (zh) | 一种基于网络方式导入导出文件的方法 | |
TW201437826A (zh) | 網頁樣式位址合併的方法和裝置 | |
CN105426164A (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 |