一种网页资源缓存控制方法、 装置及系统 【技术领域】
本发明属于网络技术领域, 尤其涉及一种网页资源缓存控制方法、 装置及系统。背景技术 当前网页应用越来越丰富, 在其展现的华丽内容背后是各种各样的网页服务端资 源在提供支撑, 比如 JavaScript 文件, 图片资源, css 层叠样式表文件等等, 这些资源都需 要在用户通过客户端访问一个网页应用时, 从服务端下载到本地。内容越丰富的网页下载 的资源越多, 则客户端向服务端发出的 HTTP 请求就越多, 接收的响应内容也越大, 而请求 资源和返回响应是需要耗费时间和网络带宽的, 这样就使得网页的访问速度变慢, 网页性 能变低。因此, 网页资源缓存就显得非常重要。
网页资源缓存是指当用户通过客户端第一次访问一个网页时, 对成功下载到本地 的资源进行客户端缓存, 当用户再次访问该网页的时候就可以直接利用客户端中的缓存资 源, 而不必再向服务端请求资源, 节省了耗费时间与网络带宽, 从而达到提升网页性能的目 的。
在 HTTP 协议中, 主要提供了以下几种头信息来进行服务端返回资源的相关缓存 控制 :
Cache-Control : 设置客户端缓存一个网页资源的时间长度 ;
Expires : 设置客户端缓存资源的过期时间 ;
Last-Modified 与 If-modified-since : 提供相关时间用于服务端判断该资源是 否有修改 ;
Etag : 生成一个资源号, 用于服务端判断资源是否修改。
现有的网页资源缓存方案有客户端缓存方案和条件 GET 方案。前者通过设置 Cache-Control 或 Expires 头信息实现对请求资源的客户端缓存, 一个资源在被设置了上 述的两种头信息之一后, 会在缓存时间长度之内或缓存过期之前采用第一次下载的客户端 缓存, 而不会再去请求服务端的资源。然而, 客户端缓存的设置是无条件的, 如果服务端的 资源在缓存时间长度之内或缓存过期之前进行更新, 则无法重新获取新的内容。
条件 GET 方案通过设置 Last-Modified 或 Etag 头信息实现, 即在非第一次进行某 网页访问的时候, 根据服务端返回的网页文档向服务端请求其中的网页资源, 服务端通过 上述头信息值校验服务端资源是否修改, 如果没有则返回一个标识了 304 响应码的 HTTP 响 应, 客户端在得到 304 响应后还是采用其第一次下载的资源, 否则重新返回请求资源的内 容到客户端。条件 GET 方案的不足在于其每次都要发送一个 HTTP 请求到服务端, 由此增加 了 HTTP 请求所产生的耗费时间和网络带宽开销。
发明内容
本发明实施例的目的在于提供一种网页资源缓存控制方法, 旨在解决现有技术中 无法兼顾客户端缓存有效利用与网页资源及时更新的问题。本发明实施例是这样实现的, 一种网页资源缓存控制方法, 所述方法包括以下步骤: 服务端根据客户端的访问请求对网页的网页资源进行渲染处理, 并设置渲染标 识, 所述渲染标识用于标识所述网页资源的更新信息 ;
生成包含所述渲染标识的网页文档 ;
发送所述网页文档给客户端, 以使客户端根据网页文档中包含的渲染标识判断所 述网页资源是否经过服务端更新。
本发明实施例的另一目的在于提供一种网页资源缓存控制交互方法, 所述方法包 括下述步骤 :
服务端接收客户端发送的网页访问请求, 所述网页访问请求指定了请求访问的网 页;
服务端对请求访问的网页中的网页资源进行渲染处理, 并设置渲染标识, 所述渲 染标识用于标识网页资源的更新信息 ;
服务端生成网页文档, 并将生成的网页文档发送给客户端, 所述网页文档包含所 述渲染标识 ;
客户端接收服务端发送的网页文档, 根据网页文档中包含的渲染标识判断所述网 页资源是否经过服务端更新。
本发明实施例的另一目的在于提供一种网页资源缓存控制装置, 所述装置包括 :
访问请求接收单元, 用于接收客户端发送的网页访问请求, 所述网页访问请求指 定了请求访问的网页 ;
标识渲染单元, 用于根据客户端的访问请求对网页的网页资源进行渲染处理, 并 设置渲染标识, 所述渲染标识用于标识所述网页资源的更新信息 ;
网页文档生成单元, 用于生成包含所述渲染标识的网页文档 ;
网页文档发送单元, 用于发送所述网页文档给客户端, 以使客户端根据网页文档 中包含的渲染标识判断所述网页资源是否经过服务端更新。
本发明实施例的另一目的在于提供一种网页资源缓存控制系统, 包括服务端和客 户端,
所述服务端用于根据客户端的访问请求对网页的网页资源进行渲染处理, 并设置 渲染标识, 所述渲染标识用于标识所述网页资源的更新信息, 生成包含所述渲染标识的网 页文档, 发送所述网页文档给客户端, 以使客户端根据网页文档中包含的渲染标识判断所 述网页资源是否经过服务端更新 ;
所述客户端用于向服务端发送网页访问请求, 并接收服务端发送的网页文档, 根 据网页文档中包含的渲染标识判断网页资源是否经过服务端更新。
本发明实施例通过在服务端对网页中的网页资源进行渲染处理, 使得当客户端对 所需网页资源进行加载时, 能够在尽可能地有效利用客户端缓存中的网页资源的同时, 及 时地感知到该网页资源在服务端的更新, 减少了对服务端的 HTTP 请求, 有效节省了时间和 网络带宽。
附图说明图 1 是本发明第一实施例提供的网页资源缓存控制方法的实现流程图 ; 图 2 是本发明第二实施例提供的网页资源缓存控制方法的实现流程图 ; 图 3 是本发明实施例提供的网页资源缓存控制方法的交互流程图 ; 图 4 是本发明第一实施例提供的网页资源缓存控制装置的结构图 ; 图 5 是本发明第二实施例提供的网页资源缓存控制装置的结构图。具体实施方式
为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并 不用于限定本发明。
在本发明实施例中, 通过在服务端对网页资源进行渲染, 告知客户端该网页资源 的服务端更新情况, 使得客户端能够在服务端未对该网页资源进行更新的情况下, 继续使 用客户端缓存中的网页资源, 实现在最大时限地有效利用客户端缓存的情况下, 及时地告 知服务端网页资源的更新信息, 有效减少了发送 HTTP 请求对时间和网络带宽的耗费。
图 1 示出了本发明第一实施例提供的网页资源缓存控制方法的实现流程, 详述如 下:
在步骤 S101 中, 接收来自客户端的网页访问请求, 所述网页访问请求指定了请求 访问的网页。
本发明实施例中, 当客户端进行网页访问的时候, 需要向服务端发送该网页的访 问请求, 请求服务端发送该网页的网页文档, 所述网页文档中包含了客户端访问该网页所 需加载的网页资源。
在步骤 S102 中, 对请求访问的网页中的网页资源进行渲染处理, 并设置渲染标 识, 所述渲染标识用于标识网页资源的更新信息。
在本发明实施例中, 服务端对客户端请求访问的网页中的网页资源进行渲染, 经 过渲染的网页资源被附加上一个渲染标识, 用来标识该网页资源在服务端的更新情况。若 服务端的网页资源未经过更新, 则渲染标识与之前的渲染标识相同, 而一旦该网页资源经 过服务端更新, 则渲染后会产生一个新的渲染标识, 用于同未经过更新的原渲染标识进行 区别, 以便客户端识别该网页资源是否已经存在于客户端缓存中。
作为本发明的一个实现示例, 所述附加的标识号可以由网页资源最后更新时间或 / 及网页资源大小构成, 用于同未经过更新的原渲染标识进行区别。
在步骤 S103 中, 生成包含了渲染标识的网页文档, 并发送给客户端。
在本发明实施例中, 通过获取的上述网页文档中的渲染标识, 客户端即可得知该 网页资源是否在服务端进行了更新, 以使客户端决定是否需要重新向服务端请求网页资 源。
图 2 示出了本发明第二实施例提供的网页资源缓存控制方法的实现流程, 详述如 下:
在步骤 S201 中, 接收来自客户端的网页资源请求。
在本发明实施例中, 当客户端通过获取的网页文档中的渲染标识, 判断出所需的 网页资源不存在于客户端缓存中时, 将向服务端发送该网页资源请求。在步骤 S202 中, 通过反渲染上述网页资源请求中网页资源的渲染标识, 还原出该 网页资源实际的标识, 以使服务端能够找出其存储的该网页资源。
在步骤 S203 中, 服务端读取出其存储的该网页资源, 并将该网页资源的文件流写 入 HTTP 响应中。
在步骤 S204 中, 服务端设置 HTTP 响应中的 Cahce-Control 头信息或者 Expires 头信息, 使得该网页资源能够在客户端中长时间缓存。
在本发明实施例中, Cahce-Control 头信息设置了在客户端缓存该网页资源的时 间长度, Expires 头信息设置了在客户端缓存该网页资源的过期时间。服务端对写入 HTTP 响应的 Cahce-Control 头信息或者 Expires 头信息经过设置后, 均能使更新后的该网页资 源在客户端中进行长期缓存, 直到该网页资源经过服务端更新并被客户端在访问网页时得 知。
在步骤 S205 中, 服务端将生成的 HTTP 响应返回给客户端, 使得客户端能够加载更 新过的网页资源。
在本发明实施例中, 一旦所需的网页资源经过了服务端更新, 客户端即能够通过 渲染标识及时地感知到更新, 并向服务端请求更新的网页资源。同时, 通过服务端设置的 HTTP 响应头信息, 获取到的更新网页资源能够长时间地在客户端缓存中供客户端加载, 避 免了在资源未更新时客户端仍然会发送 HTTP 请求的情况。 图 3 示出了本发明实施例提供的网页资源缓存控制方法的交互流程, 详述如下 :
1、 客户端向服务端发送网页访问请求。
2、 服务端根据客户端的网页访问请求, 将该网页中的网页资源的标识进行渲染。
3、 服务端生成包含了渲染标识的网页文档。
4、 服务端将生成的上述网页文档发送给客户端。
5、 客户端通过获取的网页文档中的渲染标识, 判断其所需的网页资源是否已经存 在于客户端缓存中。
6、 若所需的网页资源已经存在于客户端缓存中, 则客户端直接从缓存中加载所需 的网页资源。
7、 若所需的网页资源在客户端缓存中不存在, 则向服务端发送请求, 请求访问网 页所需的网页资源。
8、 服务端收到请求后, 对客户端请求的网页资源的渲染标识进行反渲染, 将其还 原成该网页资源实际的标识。
9、 通过还原出的实际标识, 服务端读取出其存储的该网页资源, 并将该网页资源 文件流写回到 HTTP 响应中。
10、 服务端设置 HTTP 响应中的 Cahce-Control 头信息或者 Expires 头信息, 使得 该网页资源能够在客户端中长时间缓存。
11、 服务端将客户端请求的网页资源返回给客户端。
12、 客户端对获取的网页资源进行加载, 同时将该网页资源缓存在客户端缓存中。
在本发明实施例中, 只要访问网页中的网页资源未经过服务端更新, 客户端即可 以在每次访问该网页时直接使用该网页资源在客户端缓存中的缓存数据, 以实现最大时限 地有效利用客户端缓存的目的。
图 4 示出了本发明第一实施例提供的网页资源缓存控制装置的结构, 为了便于说 明, 仅示出了与本实施例相关的部分。
该网页资源缓存控制装置可以用于网络中的服务端设备, 为运行于服务端设备的 软件模块、 硬件模块或者软硬件相结合的模块, 也可以作为独立的挂件集成到这些服务端 设备中, 或者运行于这些服务端设备的应用系统中。其中 :
访问请求接收单元 41, 接收来自客户端的网页访问请求, 所述网页访问请求指定 了请求访问的网页。
标识渲染单元 42, 对网页中的网页资源进行渲染处理, 并设置渲染标识, 所述渲染 标识用于标识网页资源的更新信息, 使得该渲染标识能够区别于其先前未经过更新的渲染 标识。
网页文档生成单元 43, 生成包含了渲染标识的网页文档, 该网页文档包含所述渲 染标识。
网页文档发送单元 44, 发送生成的网页文档给客户端。
在本发明实施例中, 在访问请求接收单元 41 收到来自客户端的网页访问请求后, 由网页文档生成单元 43 生成包含了经标识渲染单元 42 渲染的网页资源渲染标识的网页文 档, 并通过网页文档发送单元 44 发送给客户端。客户端通过获取到的该网页文档中的渲染 标识, 判断出该网页资源是否在服务端进行了更新, 从而根据更新情况决定是否从客户端 缓存中执行相应的网页资源加载。 图 5 示出了本发明第二实施例提供的网页资源缓存控制装置的结构, 为了便于说 明, 仅示出了与本实施例相关的部分。
网页资源请求接收单元 51, 接收来自客户端的网页资源请求。
标识反渲染单元 52, 反渲染上述网页资源请求中的渲染标识, 以还原出该网页资 源实际的标识。
文件存储单元 53, 作为服务端的网页资源文件系统, 存储服务端的网页资源。
HTTP 响应生成单元 54, 生成包含了客户端请求的网页资源信息的 HTTP 响应, 其 中:
文件流写入单元 541, 将从文件存储单元 53 中读取出的网页资源的文件流写入 HTTP 响应中。
头信息设置单元 542, 设置 HTTP 响应中的 Cahce-Control 头信息或者 Expires 头 信息, 使得该网页资源能够在客户端中长时间缓存。
在本发明实施例中, 在服务端对写入 HTTP 响应的 Cahce-Control 头信息或者 Expires 头信息经过设置后, 均能使更新后的相应网页资源在客户端中进行长期缓存, 直到 该网页资源经过服务端更新并被客户端在访问网页时得知。
网页资源返回单元 55, 将客户端请求的网页资源以 HTTP 响应的形式返回给客户 端。
本发明实施例通过在服务端对网页中的网页资源进行渲染处理, 使得当客户端对 所需网页资源进行加载时, 能够在尽可能地有效利用客户端缓存中的网页资源的同时, 及 时地感知到该网页资源在服务端的更新, 减少了对服务端的 HTTP 请求, 有效节省了时间和 网络带宽。
以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发明的精 神和原则之内所作的任何修改、 等同替换和改进等, 均应包含在本发明的保护范围之内。