书签 分享 收藏 举报 版权申诉 / 22

网页资源处理方法及装置.pdf

  • 上传人:v****
  • 文档编号:6336770
  • 上传时间:2019-06-02
  • 格式:PDF
  • 页数:22
  • 大小:1.51MB
  • 摘要
    申请专利号:

    CN201510600114.4

    申请日:

    2015.09.18

    公开号:

    CN105589919A

    公开日:

    2016.05.18

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20150918|||公开

    IPC分类号:

    G06F17/30

    主分类号:

    G06F17/30

    申请人:

    广州市动景计算机科技有限公司

    发明人:

    梁捷; 吴伟勇

    地址:

    510627 广东省广州市天河区黄埔大道西平云路163号广电平云广场B塔14楼

    优先权:

    专利代理机构:

    北京超凡志成知识产权代理事务所(普通合伙) 11371

    代理人:

    冯倩

    PDF完整版下载: PDF下载
    内容摘要

    本发明实施例提出一种网页资源处理方法及装置,可以减少缓存数据的冗余,使http缓存空间能够存储更多缓存数据。所述方法包括接收由web服务器获取的网页资源;根据所述网页资源的信息,生成包括所述网页资源的应答头部的头部缓存数据和包括所述网页资源的应答正文的正文缓存数据,所述头部缓存数据中包括指向所述正文缓存数据的第一键值,相同的正文缓存数据具有相同的第一键值;分别对所述正文缓存数据和所述头部缓存数据进行缓存。

    权利要求书

    1.一种网页资源处理方法,其特征在于,所述方法包括:
    接收由web服务器获取的网页资源;
    根据所述网页资源的信息,生成包括所述网页资源的应答头部
    的头部缓存数据和包括所述网页资源的应答正文的正文缓存数据,
    所述头部缓存数据中还包括指向所述正文缓存数据的第一键值,其
    中,相同的正文缓存数据具有相同的第一键值;
    分别对所述正文缓存数据和所述头部缓存数据进行缓存。
    2.如权利要求1所述的方法,其特征在于,所述第一键值包括:
    所述网页资源的类型名称、以及基于所述网页资源的应答正文计算
    出来的哈希值、经编码后生成的字符串。
    3.如权利要求1所述的方法,其特征在于,所述根据所述网页
    资源的信息,生成包括所述网页资源的应答头部的头部缓存数据和
    包括所述网页资源的应答正文的正文缓存数据之前,包括:
    判断所述网页资源是否可缓存,如果是,则执行所述生成包括
    所述网页资源的应答头部的头部缓存数据和包括所述网页资源的应
    答正文的正文缓存数据的步骤,否则,不进行缓存。
    4.如权利要求1所述的方法,其特征在于,所述根据所述网页
    资源的信息,生成包括所述网页资源的应答头部的头部缓存数据和
    包括所述网页资源的应答正文的正文缓存数据之前,包括:
    判断所述网页资源是否符合预定条件;
    如果符合所述预定条件,执行所述生成包括所述网页资源的应
    答头部的头部缓存数据和包括所述网页资源的应答正文的正文缓存
    数据的步骤;
    否则,根据所网页资源的信息生成实体缓存数据,直接对所述
    实体缓存数据进行缓存,所述实体缓存数据包括所述网页资源的所
    有http应答数据。
    5.如权利要求4所述的方法,其特征在于,所述预定条件包括
    以下一种或几种的组合:
    所述网页资源的类型为预设类型;
    所述网页资源的大小大于预设阈值;以及
    所述网页资源的名称存在于预设关键词列表中。
    6.如权利要求1所述的方法,其特征在于,所述分别对所述正
    文缓存数据和所述头部缓存数据进行缓存之后,还包括:
    将所述正文缓存数据的过期时间设置为0。
    7.一种网页资源处理方法,其特征在于,所述方法包括:
    响应于网页资源加载请求,以待加载的网页资源的唯一资源标
    识符为键值,在本地查询对应的有效缓存数据;
    当查询到与所述键值对应的有效缓存数据时,解析查找到的所
    述有效缓存数据,判断所述有效缓存数据的格式是否符合头部缓存
    数据的预定缓存格式,其中,所述头部缓存数据的预定缓存格式中
    包括指向与其对应的所述正文缓存数据的第一键值,相同的正文缓
    存数据具有相同的第一键值;
    如果是,则在所述有效缓存数据中获取第一键值,根据所获取
    的第一键值查询对应的目标正文缓存数据,当查询到有效的目标正
    文缓存数据时,基于所述有效缓存数据以及所述目标正文缓存数据
    获得所述待加载网页资源的信息;
    如果不是,则直接根据所述有效缓存数据获得所述待加载网页
    资源的信息。
    8.一种网页资源处理装置,其特征在于,包括:
    网页资源接收模块,用于接收由web服务器获取的网页资源;
    缓存数据生成模块,用于根据所述网页资源的信息,生成包括
    所述网页资源的应答头部的头部缓存数据和包括所述网页资源的应
    答正文的正文缓存数据,所述头部缓存数据中包括指向所述正文缓
    存数据的第一键值,相同的正文缓存数据具有相同的第一键值;
    缓存模块,用于分别对所述正文缓存数据和所述头部缓存数据
    进行缓存。
    9.如权利要求8所述的装置,其特征在于,所述头部缓存数据
    还包括所述网页资源的http应答数据的状态行和应答头部,所述正
    文缓存数据包括所述网页资源的http应答数据的应答正文。
    10.如权利要求9所述的装置,其特征在于,所述第一键值包
    括:所述网页资源的类型名称、以及基于所述网页资源的应答正文
    计算出来的哈希值、经编码后生成的字符串。
    11.如权利要求9所述的装置,其特征在于,还包括:
    判断模块,用于判断所述网页资源是否符合预定条件;
    如果符合所述预定条件,所述缓存数据生成模块生成包括所述
    网页资源的应答头部的头部缓存数据和包括所述网页资源的应答正
    文的正文缓存数据;
    否则,所述缓存数据生成模块根据所网页资源的信息生成实体
    缓存数据,所述缓存模块直接对所述实体缓存数据进行缓存,所述
    实体缓存数据包括所述网页资源的所有http应答数据。
    12.如权利要求11所述的装置,其特征在于,所述预定条件包
    括以下一种或几种的组合:
    所述网页资源的类型为预设类型;
    所述网页资源的大小大于预设阈值;以及
    所述网页资源的名称存在于预设关键词列表中。
    13.如权利要求8所述的装置,其特征在于,所述缓存模块还
    用于在分别对所述正文缓存数据和所述头部缓存数据进行缓存之
    后,将所述正文缓存数据的过期时间设置为0。
    14.一种网页资源处理装置,其特征在于,包括:
    查询模块,用于响应于网页资源加载请求,以待加载的网页资
    源的唯一资源标识符为键值,在本地查询对应的有效缓存数据;
    解析判断模块,用于当查询到与所述键值对应的有效缓存数据
    时,解析查找到的所述有效缓存数据,判断所述有效缓存数据的格
    式是否符合头部缓存数据的预定缓存格式,其中,所述头部缓存数
    据的预定缓存格式中包括指向与其对应的所述正文缓存数据的第一
    键值,相同的正文缓存数据具有相同的第一键值;
    资源获取模块,用于如果所述解析判断模块的判断结果为是,
    在所述有效缓存数据中获取第一键值,根据所获取的第一键值查询
    对应的目标正文缓存数据,当查询到有效的目标正文缓存数据时,
    基于所述有效缓存数据以及所述目标正文缓存数据获得所述待加载
    网页资源的信息,如果所述解析判断模块的判断结果为不是,则直
    接根据所述有效缓存数据获得所述待加载网页资源的信息。

    说明书

    网页资源处理方法及装置

    技术领域

    本发明涉及计算机移动通信技术领域,具体而言,涉及一种网
    页资源处理方法及装置。

    背景技术

    浏览器在加载web服务器提供的网页资源(web资源)后,会根
    据web资源的http应答数据的应答头部(responseheaders)信息,对
    可缓存的(或需要校验的)web资源进行http缓存,便于后续在浏览
    器使用同一个网页资源时,可以复用本地保存的该网页资源副本,
    从而可以减少向web服务器请求网页资源的次数,进而可以减少从
    web服务器加载资源导致的流量耗费。此外,使用本地保存的副本,
    能够加快页面的解析和渲染,可以提升用户的浏览体验。

    http应答数据,又称为http应答(响应)报文,主要由状态行(status
    line)、应答头部(responseheaders)、应答正文(body)这三部分组成。
    状态行与应答头部之间使用“\r\n”回车换行符分隔;应答头部各字段
    之间也是使用“\r\n”回车换行符分隔;最后一个应答头部字段与应答
    正文之间使用一个独立的“\r\n”回车换行符分隔。基于这样的约定,
    可以保证http客户端(例如移动浏览器)在接收到http应答数据后可
    以解析出各部分信息。对于各种类型的网页资源(例如html页面、
    JavaScript(一种直译式脚本语言)、CSS(一种样式设计语言)、图片),
    应答正文就是实际的内容。现有的http缓存一般都是将web资源的
    地址、http应答头部及应答正文一次写入http缓存空间。

    对于移动浏览器使用的http缓存服务,由于移动设备的硬件配
    置的限制,其容量是受限的。这样,意味着,随着用户浏览的页面
    增多,存在某些有效的http缓存资源会由于缓存容量达到上限而被
    淘汰的情况。因此,如何减少缓存数据的冗余成为现在亟待解决的
    问题。

    发明内容

    本发明的目的在于提供一种网页资源处理方法及装置以减少缓
    存数据的冗余。

    为了实现上述目的,本发明实施例采用的技术方案如下:

    第一方面,本发明实施例提供了一种网页资源处理方法,包括:
    接收由web服务器获取的网页资源;根据所述网页资源的信息,生
    成包括所述网页资源的应答头部的头部缓存数据和包括所述网页资
    源的应答正文的正文缓存数据,所述头部缓存数据中还包括指向所
    述正文缓存数据的第一键值,其中,相同的正文缓存数据具有相同
    的第一键值;分别对所述正文缓存数据和所述头部缓存数据进行缓
    存。

    第二方面,本发明实施例还提供了一种网页资源处理方法,包
    括:响应于网页资源加载请求,以待加载的网页资源的唯一资源标
    识符为键值,在本地查询对应的有效缓存数据;当查询到与所述键
    值对应的有效缓存数据时,解析查找到的所述有效缓存数据,判断
    所述有效缓存数据的格式是否符合头部缓存数据的预定缓存格式,
    其中,所述头部缓存数据的预定缓存格式中包括指向与其对应的所
    述正文缓存数据的第一键值,相同的正文缓存数据具有相同的第一
    键值;如果是,则在所述有效缓存数据中获取第一键值,根据所获
    取的第一键值查询对应的目标正文缓存数据,当查询到有效的目标
    正文缓存数据时,基于所述有效缓存数据以及所述目标正文缓存数
    据获得所述待加载网页资源的信息;如果不是,则直接根据所述有
    效缓存数据获得所述待加载网页资源的信息。

    第三方面,本发明实施例还提供了一种网页资源处理装置,包
    括:网页资源接收模块,用于接收由web服务器获取的网页资源;
    缓存数据生成模块,用于根据所述网页资源的信息,生成包括所述
    网页资源的应答头部的头部缓存数据和包括所述网页资源的应答正
    文的正文缓存数据,所述头部缓存数据中包括指向所述正文缓存数
    据的第一键值,相同的正文缓存数据具有相同的第一键值;缓存模
    块,用于分别对所述正文缓存数据和所述头部缓存数据进行缓存。

    第四方面,本发明另一实施例还提供了一种网页资源处理装置,
    包括:查询模块,用于响应于网页资源加载请求,以待加载的网页
    资源的唯一资源标识符为键值,在本地查询对应的有效缓存数据;
    解析判断模块,用于当查询到与所述键值对应的有效缓存数据时,
    解析查找到的所述有效缓存数据,判断所述有效缓存数据的格式是
    否符合头部缓存数据的预定缓存格式,其中,所述头部缓存数据的
    预定缓存格式中包括指向与其对应的所述正文缓存数据的第一键
    值,相同的正文缓存数据具有相同的第一键值;资源获取模块,用
    于如果所述解析判断模块的判断结果为是,在所述有效缓存数据中
    获取第一键值,根据所获取的第一键值查询对应的目标正文缓存数
    据,当查询到有效的目标正文缓存数据时,基于所述有效缓存数据
    以及所述目标正文缓存数据获得所述待加载网页资源的信息,如果
    所述解析判断模块的判断结果为不是,则直接根据所述有效缓存数
    据获得所述待加载网页资源的信息。

    本发明实施例提供的网页资源处理方法和装置根据由web服务
    器获取的网页资源的信息,生成包括所述网页资源的应答头部的头
    部缓存数据和包括所述网页资源的应答正文的正文缓存数据,头部
    缓存数据中包括指向该正文缓存数据的第一键值,并且相同的正文
    缓存数据具有相同的第一键值,从而可以实现让具有相同正文缓存
    数据的不同网页资源在http缓存中有各自的头部缓存数据,但都指
    向同一份正文缓存数据,从而减少缓存数据的冗余,使http缓存空
    间能够存储更多缓存数据。

    为使本发明的上述目的、特征和优点能更明显易懂,下文特举
    较佳实施例,并配合所附附图,作详细说明如下。

    附图说明

    为了更清楚地说明本发明实施例的技术方案,下面将对实施例
    中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了
    本发明的某些实施例,因此不应被看作是对范围的限定,对于本领
    域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
    这些附图获得其他相关的附图。

    图1示出了本发明实施例提供的网页资源处理方法及装置的应
    用环境示意图;

    图2示出了本发明实施例提供的用户终端的结构框图;

    图3示出了本发明第一实施例提供的一种网页资源处理方法
    的流程示意图;

    图4示出了本发明第二实施例提供的一种网页资源处理方法的
    流程示意图;

    图5示出了本发明第三实施例提供的一种网页资源处理方法的
    流程示意图;

    图6示出了本发明第四实施例提供的一种网页资源处理装置的
    结构框图;

    图7示出了本发明第五实施例提供的一种网页资源处理装置的
    结构框图。

    具体实施方式

    本发明实施例所提供的网页资源处理方法及装置可应用于如图
    1所示的应用环境中。如图1所示,用户终端100、web服务器200
    位于无线网络或有线网络300中,通过该无线网络或有线网络300,
    用户终端100与web服务器200进行数据交互。

    于本发明实施例中,用户终端100优选为移动终端设备,例如
    可以包括智能手机、平板电脑、电子书阅读器、膝上型便携计算机、
    车载电脑、穿戴式移动终端等等。

    图2示出了一种可应用于本发明实施例中的用户终端的结构框
    图。如图2所示,用户终端100包括存储器102、存储控制器104,
    一个或多个(图中仅示出一个)处理器106、外设接口108、射频模
    块110、音频模块112、触控屏幕114等。这些组件通过一条或多条
    通讯总线/信号线116相互通讯。

    存储器102可用于存储软件程序以及模块,如本发明实施例中
    的网页资源处理方法及装置对应的程序指令/模块,处理器106通过
    运行存储在存储器102内的软件程序以及模块,从而执行各种功能
    应用以及数据处理,如本发明实施例提供的网页资源处理方法。

    存储器102可包括高速随机存储器,还可包括非易失性存储器,
    如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储
    器。处理器106以及其他可能的组件对存储器102的访问可在存储
    控制器104的控制下进行。

    外设接口108将各种输入/输入装置耦合至处理器106以及存储
    器102。在一些实施例中,外设接口108,处理器106以及存储控制
    器104可以在单个芯片中实现。在其他一些实例中,他们可以分别
    由独立的芯片实现。

    射频模块110用于接收以及发送电磁波,实现电磁波与电信号
    的相互转换,从而与通讯网络或者其他设备进行通讯。

    音频模块112向用户提供音频接口,其可包括一个或多个麦克
    风、一个或者多个扬声器以及音频电路。

    触控屏幕114在用户终端100与用户之间同时提供一个输出及
    输入界面。

    可以理解,图2所示的结构仅为示意,用户终端100还可包括
    比图2中所示更多或者更少的组件,或者具有与图2所示不同的配
    置。图2中所示的各组件可以采用硬件、软件或其组合实现。

    于本发明实施例中,用户终端100中安装有浏览器,与web服
    务器200相对应,为用户提供服务。浏览器具有浏览器内核和http
    缓存服务系统。

    本发明实施例提出的网页资源处理方法和装置,提供了一种新
    的应用于网页资源的http缓存存储及查询机制。

    发明人通过对不同的web页面的采样数据分析,发现对于一些
    网页资源,例如JavaScript资源或者CSS资源,虽然web地址不同,
    但是其内容可能存在一致。比如前端开源框架Jquery开源Javascritp
    库(或者Jquery开源CSS库)。如果某个浏览器用户刚好访问了三个
    页面,分别各自引用Jquery类库,那么在其http缓存空间中则有三
    份缓存数据。但是,如果三个页面引用的Jquery类库的Javascript
    资源的数据都是一样的,就浪费了存放两个应答正文的http缓存空
    间,假设应答正文的大小是210KB,那么就浪费了420KB的缓存
    空间。

    本发明实施例提供的网页资源处理方法和装置根据网页资源的
    信息,生成包括所述网页资源的应答头部的头部缓存数据和包括所
    述网页资源的应答正文的正文缓存数据,头部缓存数据中包括指向
    该正文缓存数据的第一键值,并且相同的正文缓存数据具有相同的
    第一键值,从而可以实现让具有相同正文缓存数据的不同网页资源
    在http缓存中有各自的头部缓存数据,但都指向同一份正文缓存数
    据,从而减少缓存数据冗余,让http缓存空间能够存储更多缓存数
    据。例如,对于上述场景,可以节省将近420KB的缓存空间。

    需要说明的是,本发明实施例中的http缓存服务系统使用
    key-value数据库(或者类key-value数据库)来实现,在对数据进行存
    储与检索时基本遵循key-value数据库的以下要素:缓存数据之间相
    互独立;数据格式分为key和value部分,key作为缓存数据的索引,
    便于管理,且具有唯一性,value是实际缓存的数据;当缓存的数据
    已经占满缓存空间时,如果增加新的缓存数据,需要淘汰已有的缓
    存数据来腾出空间存放新的缓存数据。

    本发明实施例中,将以现有的http缓存格式进行缓存的数据,
    定义为实体缓存数据,实体缓存数据包括了网页资源的http应答数
    据的所有部分,也就是包括http应答数据的状态行、应答头部、以
    及应答正文。

    本发明实施例中,应答正文相同的不同网页资源定义为同值资
    源,以本发明实施例提供的新的缓存格式缓存的数据定义为同值缓
    存数据。因为需要实现多个同值资源在http缓存中可以使用同一份
    正文缓存数据,所以引入了两个新的缓存格式:头部缓存数据的预
    定缓存格式和正文缓存数据的预定缓存格式。

    本发明实施例中,头部缓存数据的键值(key)为网页资源的
    URI(UniformResourceIdentifier,统一资源标识符),URI用来唯一
    的标识一个网页资源。头部缓存数据的value包括序列化的状态行、
    应答头部及指向与其对应的正文缓存数据的第一键值,该第一键值
    是关联网页资源应答头部和正文缓存数据的索引。头部缓存数据中
    不包括应答正文(body)。

    本发明实施例中,正文缓存数据以第一键值作为key,value是
    对应网页资源的应答正文(body)。第一键值的格式包括:网页资源
    的类型名称、以及基于所述正文缓存数据的内容(也就是应答正文)
    计算出来的哈希值、经编码后生成的字符串。

    由于同值资源的正文缓存数据是相同的,因此,在写入同值缓
    存数据的正文缓存数据时,如果http缓存空间中已经存储有与该正
    文缓存数据相同的正文缓存数据,新写入的正文缓存数据会覆盖
    http缓存空间中原本存在的正文缓存数据,也就是说对于多个同值
    资源,会在http缓存空间保存各自的头部缓存数据,但是由于其正
    文缓存数据是相同的,因此http缓存空间中仅会保存一份相同的正
    文缓存数据,这样就可以实现减少缓存数据冗余。

    下面将结合本发明实施例中附图,对本发明实施例中的技术方
    案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一
    部分实施例,而不是全部的实施例。通常在此处附图中描述和示出
    的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,
    以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要
    求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于
    本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下
    所获得的所有其他实施例,都属于本发明保护的范围。

    第一实施例

    图3示出了本发明第一实施例提供的一种网页资源处理方法的
    流程图,请参阅图3,本实施例描述的是浏览器的处理流程,所述
    方法包括:

    步骤S110,接收由web服务器获取的网页资源;

    步骤S120,根据所述网页资源的信息,生成包括所述网页资源
    的应答头部的头部缓存数据和包括所述网页资源的应答正文的正文
    缓存数据,所述头部缓存数据中包括指向所述正文缓存数据的第一
    键值,相同的正文缓存数据具有相同的第一键值;

    所述第一键值包括:所述网页资源的类型名称、以及基于所述
    网页资源的应答正文计算出来的哈希值、经编码后生成的字符串。

    例如第一键值的格式可以是:网页资源的schema://body内容的
    md5值进行base64编码后生成的24个字节字符串。

    其中,网页资源的schema是网页资源的类型名称,例如可以
    是“Js”和”Css”(大小写敏感),当然也可以扩展容纳更多的资源类型。
    使用网页资源的schema,主要意图在于从key的层面可以区分资源
    类别。Js:指代该正文缓存数据是Javascript资源的应答正文(body)
    数据。Css:指代该正文缓存数据是CSS资源的应答正文(body)数据。

    第一键值中包含“body内容的md5值进行base64编码后生成
    的24个字节字符串”,主要的意图在于可以保证正文缓存数据存储
    的唯一性。因为md5值是基于数据内容(而不是数据大小)而计算出
    来的哈希值,已经在算法层面上保证了在极大的数据空间里,不同
    内容产生的哈希值肯定不同。

    步骤S130,分别对所述正文缓存数据和所述头部缓存数据进行
    缓存。

    对正文缓存数据和头部缓存数据进行缓存也就是将正文缓存数
    据和头部缓存数据分别写入http缓存空间,如果http缓存空间中已
    经存储有与该正文缓存数据相同的正文缓存数据,新写入的正文缓
    存数据就会覆盖http缓存空间中原本存在的正文缓存数据,也就是
    说对于多个同值资源,会在http缓存空间保存各自的头部缓存数据,
    但是由于其正文缓存数据是相同的,因此http缓存空间中仅会保存
    一份相同的正文缓存数据,这样就可以实现减少缓存数据冗余。

    进一步的,所述分别对所述正文缓存数据和所述头部缓存数据
    进行缓存之后,还可以包括:将所述正文缓存数据的过期时间设置
    为0。将正文缓存数据的过期时间设置为0,也就是将正文缓存数据
    设置为永不过期,可以最大程度的保证该正文缓存数据的持久性。

    由于http缓存空间是有限的,因此,当缓存的数据已经占满缓
    存空间时,如果增加新的缓存数据,还是需要淘汰已有的缓存数据
    来腾出空间来存放新的缓存数据,具体的淘汰策略,例如可以采用
    LRU算法(LastRecentlyUsed)进行数据淘汰。LRU算法可以在一定
    程度上保证访问频率高且有效的数据能够一致保留在缓存队列前
    部,而访问频率低或者已失效的数据会被推送到队列尾部便于淘汰。
    当然,也可以采用其他淘汰策略,本发明的具体实施并不以此为限。

    下面将通过具体的示例说明本实施例中的网页资源处理方法,
    以下是三个Jquery的Javacript类型的网页资源的地址及http应答报
    文的应答头部:

    网页资源一

    地址(URI):

    http://spuvvn.edu/bitrix/templates/sardar_patel/js/jquery-ui-1.8.16.
    custom.min.js

    应答头部:

    HTTP/1.0200OK

    Date:Wed,08Jul201506:43:45GMT

    Server:Apache/2.2.27(Unix)mod_ssl/2.2.27
    OpenSSL/1.0.1e-fipsDAV/2mod_jk/1.2.37mod_bwlimited/1.4
    PHP/5.3.28

    Last-Modified:Thu,16Feb201217:55:54GMT

    ETag:"31000b8-3361f-4b9188a179e80"

    Accept-Ranges:bytes

    Content-Length:210463

    Content-Type:application/javascript

    X-Cache:MISSfromdevy.ucweb.local

    X-Cache-Lookup:MISSfromdevy.ucweb.local:3128

    Via:1.0devy.ucweb.local:3128(squid/2.6.STABLE21)

    Proxy-Connection:close

    网页资源二

    地址(URI):

    http://m.sportzwiki.com/assets/js/jquery-ui-1.8.16.custom.min.js

    应答头部:

    HTTP/1.0200OK

    Date:Wed,08Jul201506:47:55GMT

    Content-Type:application/javascript

    Content-Length:210463

    Set-Cookie:

    __cfduid=d3d61c97334953c660457bbb5a0e183a51436338075;

    expires=Thu,07-Jul-1606:47:55GMT;path=/;
    domain=.sportzwiki.com;HttpOnly

    Last-Modified:Wed,18Mar201513:43:31GMT

    ETag:"94e599-3361f-5119044d006c0"

    CF-Cache-Status:HIT

    Expires:Mon,13Jul201506:47:55GMT

    Cache-Control:public,max-age=432000

    Accept-Ranges:bytes

    Server:cloudflare-nginx

    CF-RAY:2029d72c77d30bab-HKG

    X-Cache:MISSfromdevy.ucweb.local

    X-Cache-Lookup:MISSfromdevy.ucweb.local:3128

    Via:1.0devy.ucweb.local:3128(squid/2.6.STABLE21)

    Proxy-Connection:close

    网页资源三

    地址(URI):

    http://www.rcs-rds.ro/resources/jquery_ui/js/jquery-ui-1.8.16.custo
    m.min.js

    应答头部:

    HTTP/1.0200OK

    X-Varnish:1089339340

    Vary:Accept-Encoding

    X-Cache:MISS

    Content-Type:application/javascript

    Date:Wed,08Jul201506:50:54GMT

    Accept-Ranges:bytes

    Accept-Ranges:bytes

    ETag:"503dde-3361f-4aeb148764ec0"

    Last-Modified:Fri,07Oct201108:32:35GMT

    Age:0

    Content-Length:210463

    X-Cache:MISSfromdevy.ucweb.local

    X-Cache-Lookup:MISSfromdevy.ucweb.local:3128

    Via:1.1varnish,1.0devy.ucweb.local:3128
    (squid/2.6.STABLE21)

    Proxy-Connection:close

    可以看出,三个网页资源的URI不同且跨域(处于不同域名),
    但从三个网页资源的Content-Length字段值来看,应答正文(body)
    的大小都是210463字节(约210KB)。

    假设对三个网页资源的应答正文(body)的内容计算md5值再进
    行base64编码,得出的校验值都是
    “ZcfHB93eoMeGFxTfJQ1UxA==”,那么可以证明该三个网页资源的
    应答正文(body)的内容都是一样的。也就是说这三个网页资源就是
    本发明实施例所说的“同值资源”。

    存在“同值资源”的原因在于大多数站点可能采用了类似的站
    点模板进行建站,这样,由于模板相同或者类似,其所采用的前端
    技术可能都使用了一些比较主流且功能强大的Javascript类库或者
    CSS库,比如Jquery。即便使用不同的站点模板,由于需要实现某
    些前端功能特性,也会不约而同的使用主流的Javascript类库或者
    CSS库。所以对于不同站点的外联Javascript资源(或者Css资源),
    应该存在一定比例的同值资源。比如上述三个Jquery资源,其名称
    本身就相同。但也会存在名称不同但资源内容一致的场景,通常是
    站点方对名称进行了修改,不过通常资源名字会保留库名称的关键
    词,比如Jquery。

    前文所提及的三个Jquery资源的正文缓存数据的第一键值可以
    表示为:

    Js://ZcfHB93eoMeGFxTfJQ1UxA==

    由前述可知,使用同值缓存方式存储的网页资源,相比现有的
    http缓存方式,其实际存储了两个http缓存数据,一个是头部缓存
    数据,另一个是正文缓存数据。对于头部缓存数据,其value中可
    以通过在应答头部字段新增一个特殊字段“body-key:”来存放指
    向与其对应的正文缓存数据的第一键值,优选的,该字段放置在
    value中的第一行。

    下面以一个Jquery资源来说明其头部缓存数据和正文缓存数据
    的格式。

    头部缓存数据的预定缓存格式:

    Key:

    http://spuvvn.edu/bitrix/templates/sardar_patel/js/jquery-ui-1.8.16.
    custom.min.js

    Value:

    body-key:Js://ZcfHB93eoMeGFxTfJQ1UxA==\r\n

    HTTP/1.0200OK\r\n

    Date:Wed,08Jul201506:43:45GMT\r\n

    Server:Apache/2.2.27(Unix)mod_ssl/2.2.27
    OpenSSL/1.0.1e-fipsDAV/2mod_jk/1.2.37mod_bwlimited/1.4
    PHP/5.3.28\r\n

    Last-Modified:Thu,16Feb201217:55:54GMT\r\n

    ETag:"31000b8-3361f-4b9188a179e80"\r\n

    Accept-Ranges:bytes\r\n

    Content-Length:210463\r\n

    Content-Type:application/javascript\r\n

    X-Cache:MISSfromdevy.ucweb.local\r\n

    X-Cache-Lookup:MISSfromdevy.ucweb.local:3128\r\n

    Via:1.0devy.ucweb.local:3128(squid/2.6.STABLE21)\r\n

    Proxy-Connection:close\r\n

    正文缓存数据的预定缓存格式:

    key:

    Js://ZcfHB93eoMeGFxTfJQ1UxA==

    value:

    Body数据

    本实施例提供的网页资源处理方法可以减少缓存数据的冗余,
    使http缓存空间能够存储更多缓存数据。在一定程度上可以提高http
    缓存命中率,达到效益更大化,既减少了资源在网络侧加载产生的
    流量,也减少了web浏览的响应耗时。

    第二实施例

    图4示出了本发明第二实施例提供的一种网页资源处理方法的
    流程图。请参阅图4,本实施例描述的是浏览器处理缓存写入的流
    程,所述方法包括:

    步骤S210,接收由web服务器获取的网页资源;

    步骤S220,判断所述网页资源是否可缓存;

    对于网页资源是否可以进行http缓存,浏览器可以基于http应
    答头部和缓存相关字段或者是否需要校验进行判断,例如,如果与
    缓存相关的字段声明是可缓存的网页资源,或者是需要校验的网页
    资源,浏览器可以判定该网页资源可缓存。

    如果是,则执行步骤S230。否则,不进行缓存,也就是缓存写
    入流程结束。

    步骤S230,判断所述网页资源是否符合预定条件;

    如果符合所述预定条件,执行步骤S240,否则,执行步骤S260。

    由于本发明实施例提出的同值缓存对头部缓存数据和正文缓存
    数据要分别进行写入缓存,比现有的写入缓存增加了一次写入操作,
    响应的读取操作也增加一次(详见第三实施例),所以,为了提高效
    率,可以对使用同值缓存方法进行缓存的网页资源加以限制,也就
    是在进行同值缓存前,先对网页资源是否符合预定条件进行一个判
    断,如果符合预定条件就按照同值缓存的方式进行处理,否则,按
    照现有的缓存方式进行处理。

    于本实施例中,所述预定条件可以包括以下一种或几种的组合:

    所述网页资源的类型为预设类型;

    所述网页资源的大小大于预设阈值;以及

    所述网页资源的名称存在于预设关键词列表中。

    在各类网页资源中,可缓存的网页资源集中在外联的
    JavaScript(一种直译式脚本语言),CSS(一种样式设计语言)和图片资
    源。其中,JavaScript和CSS资源对于页面的解析和渲染速度有一
    定影响。而且对网页资源而言,JavaScript和CSS资源存在同值资
    源的可能性较大,而页面和图片存在同值资源的可能性较小,所以
    可以对网页资源的类型加以限制。于本实施例中,预设类型优选的
    为JavaScript类型或CSS类型,只要网页资源的类型为这两种预设
    类型之一即可。

    通过判断网页资源的大小是否大于预设阈值可以更有针对性的
    对同值资源进行同值缓存处理。于本实施例中,网页资源大小的预
    设阈值例如可以为50KB,当然,预设阈值的大小也可根据实际情
    况进行调整,并不作为对本发明实施方式的限定。

    网页资源的名称(文件名)是否存在于预设关键词列表,也就是
    指网页资源的名称是否能够匹配到关键词列表资源使用同值缓存策
    略。比如“jquery”就是其中一个关键词。

    这些判定条件可以由浏览器配置,通过后台下发机制来进行控
    制。也可以通过设置缓存控制开关来控制该功能的开启或关闭。假
    设设定需要同时满足以上三个条件,那么当某个网页资源同时满足
    上述三个条件时,触发同值缓存,也就是执行步骤S240。当然,也
    可以根据实际情况设定具体的判定条件。

    步骤S240,生成包括所述网页资源的应答头部的头部缓存数据
    和包括所述网页资源的应答正文的正文缓存数据;

    步骤S250,分别对所述正文缓存数据和所述头部缓存数据进行
    缓存。

    步骤S260,根据所网页资源的信息生成实体缓存数据,直接对
    所述实体缓存数据进行缓存。

    其中,所述实体缓存数据包括所述网页资源的所有http应答数
    据,也就是包括http应答数据的状态行、应答头部、以及应答正文。

    于一种具体实施方式中,浏览器内核进行页面加载处理,加载
    了某个由web服务器获取的网页资源,判断所述网页资源是否可缓
    存,如果可缓存则判断所述网页资源是否符合预定条件,如果不可
    缓存则结束写入缓存的流程。如果可缓存且网页资源符合预定条件,
    则浏览器内核根据所述网页资源的信息生成包括所述网页资源的应
    答头部的头部缓存数据和包括所述网页资源的应答正文的正文缓存
    数据。优选的,将所述正文缓存数据的过期时间设定为0。浏览器
    内核将所述头部缓存数据与正文缓存数据分别写入http缓存服务系
    统的缓存空间。如果可缓存但是网页资源不符合预定条件,则浏览
    器内核根据所网页资源的信息生成实体缓存数据,直接将所述实体
    缓存数据写入http缓存服务系统的缓存空间。

    需要说明的是,本具体实施方式中,浏览器中数据的缓存在浏
    览器内核和http缓存服务系统之间进行。缓存的逻辑可以由移动浏
    览器内核实现,http缓存服务系统保持不变。在其他具体实施方式
    中,也可以将存储逻辑都在http缓存服务系统上实现,而浏览器内
    核逻辑不变。优选的,缓存逻辑由浏览器内核实现,一方面可以保
    持http缓存服务系统中数据存储的纯粹性,不需要了解数据格式,
    另一方面在浏览器内核上实现更加灵活。

    第三实施例

    图5示出了本发明第三实施例提供的一种网页资源处理方法的
    流程图,请参阅图5,本实施例描述的是浏览器处理缓存读取的流
    程,所述方法包括:

    步骤S310,响应于网页资源加载请求,以待加载的网页资源的
    唯一资源标识符为键值,在本地查询对应的有效缓存数据;

    如果查询结果为不存在,则执行步骤S320,如果查询结果为存
    在,则执行步骤S330。

    步骤S320,向web服务器请求所述待加载的网页资源,接着执
    行步骤S210,进入缓存流程,也就是第二实施例中所描述的流程,
    这里不再赘述。

    步骤S330,解析查找到的有效缓存数据;

    步骤S340,判断所述有效缓存数据的格式是否符合头部缓存数
    据的预定缓存格式;

    如果所述有效缓存数据的格式符合头部缓存数据的预定缓存格
    式,也就是说,有效缓存数据是头部缓存数据,执行步骤S350。如
    果不是,则执行步骤S370。

    步骤S350,在所述有效缓存数据中获取第一键值,根据所获取
    的第一键值查询对应的目标正文缓存数据。

    如果存在且有效,则执行步骤S360,如果不存在所述目标正文
    缓存数据或者存在所述目标正文缓存数据但是已失效,则判定该待
    加载网页资源的http缓存不命中,执行步骤S320。

    步骤S360,基于所述有效缓存数据以及所述目标正文缓存数据
    获得所述待加载网页资源的信息。

    步骤S370,直接根据所述有效缓存数据获得所述待加载网页资
    源的信息。

    于一种具体实施方式中,浏览器内核进行页面加载处理,需要
    加载某个外联的网页资源,浏览器内核可以先以待加载的网页资源
    的唯一资源标识符(URI)为key向http缓存服务系统查询与该key对
    应的缓存数据。http缓存服务系统在缓存空间的数据队列中检索与
    该key对应的缓存数据(第一次get操作),如果不存在对应的缓存数
    据或者缓存数据已失效,浏览器内核判定该网页资源的http缓存不
    命中,向web服务器请求该待加载网页资源。如果查询结果为存在,
    则浏览器内核解析查找到的有效缓存数据的value值。如果发现是
    实体缓存数据,也就是是现有的缓存数据格式,则直接根据查找到
    的有效缓存数据获得待加载网页资源的信息。如果发现是头部缓存
    数据,则浏览器内核基于头部缓存格式,根据应答头部的“body-key”
    字段,解析出正文缓存数据的key值,也就是第一键值,并以该第
    一键值再次向http缓存系统发起查询(第二次get操作)。如果存在且
    有效,则http缓存系统将该正文缓存数据返回给浏览器内核,浏览
    器内核基于头部缓存数据和正文缓存数据,获得待加载网页资源的
    信息。如果不存在所述目标正文缓存数据或者存在所述目标正文缓
    存数据但是已失效,则判定该待加载网页资源的http缓存不命中,
    向web服务器请求该待加载网页资源。

    发明人基于多个用户在一段时间内的web浏览数据,统计了
    jquery相关的JS资源数据。共有1565个JS资源,其中有743个资
    源属于内容重复资源(同值资源);而在这743个同值资源中,通过
    按照内容重复排重后(比如A、B、C是同值资源,只保留A,而剔
    除B和C),剩余141个资源,平均的重复指数约为4.27(剔除的重
    复资源总数/排重后的资源总数)。由此,可以看出本实施例提供的
    网页资源处理方法可以减少缓存数据的冗余,使http缓存空间能够
    存储更多缓存数据。

    需要说明的是,本具体实施方式中,浏览器中数据的读取在浏
    览器内核和http缓存服务系统之间进行。读取的逻辑可以由移动浏
    览器内核实现,http缓存服务系统保持不变。在其他具体实施方式
    中,也可以将读取逻辑都在http缓存服务系统上实现,而浏览器内
    核逻辑不变。

    第四实施例

    图6示出了本发明第四实施例提供的一种网页资源处理装置的
    结构框图,请参阅图6,本实施例中的装置可运行于用户终端100
    的浏览器,本实施例中的装置40包括:

    网页资源接收模块41,用于接收由web服务器获取的网页资
    源;

    缓存数据生成模块42,用于根据所述网页资源的信息,生成包
    括所述网页资源的应答头部的头部缓存数据和包括所述网页资源的
    应答正文的正文缓存数据,所述头部缓存数据中包括指向所述正文
    缓存数据的第一键值,相同的正文缓存数据具有相同的第一键值;

    缓存模块43,用于分别对所述正文缓存数据和所述头部缓存数
    据进行缓存。

    进一步的,所述头部缓存数据还包括所述网页资源的http应答
    数据的状态行和应答头部,所述正文缓存数据包括所述网页资源的
    http应答数据的应答正文。

    进一步的,所述第一键值包括:所述网页资源的类型名称、以
    及基于所述网页资源的应答正文计算出来的哈希值、经编码后生成
    的字符串。

    进一步的,所述装置40还包括:

    判断模块44,用于判断所述网页资源是否符合预定条件;

    如果符合所述预定条件,所述缓存数据生成模块42生成包括所
    述网页资源的应答头部的头部缓存数据和包括所述网页资源的应答
    正文的正文缓存数据;

    否则,所述缓存数据生成模块42根据所网页资源的信息生成实
    体缓存数据,所述缓存模块43直接对所述实体缓存数据进行缓存,
    所述实体缓存数据包括所述网页资源的所有http应答数据。

    进一步的,所述预定条件包括以下一种或几种的组合:

    所述网页资源的类型为预设类型;

    所述网页资源的大小大于预设阈值;以及

    所述网页资源的名称存在于预设关键词列表中。

    进一步的,所述缓存模块43还用于在分别对所述正文缓存数据
    和所述头部缓存数据进行缓存之后,将所述正文缓存数据的过期时
    间设置为0。

    本实施例中的各单元可以是由软件代码实现,此时,上述的各
    单元可存储于用户终端100的存储器102内。以上各单元同样可以
    由硬件例如集成电路芯片实现。

    第五实施例

    图7示出了本发明五实施例提供的网页资源处理装置的结构框
    图,请参照图7,本实施例中的装置可运行于用户终端的浏览器,
    本实施例中的装置50包括:

    查询模块51,用于响应于网页资源加载请求,以待加载的网页
    资源的唯一资源标识符为键值,在本地查询对应的有效缓存数据;

    解析判断模块52,用于当查询到与所述键值对应的有效缓存数
    据时,解析查找到的所述有效缓存数据,判断所述有效缓存数据的
    格式是否符合头部缓存数据的预定缓存格式,其中,所述头部缓存
    数据的预定缓存格式中包括指向与其对应的所述正文缓存数据的第
    一键值,相同的正文缓存数据具有相同的第一键值;

    资源获取模块53,用于如果所述解析判断模块52的判断结果
    为是,在所述有效缓存数据中获取第一键值,根据所获取的第一键
    值查询对应的目标正文缓存数据,当查询到有效的目标正文缓存数
    据时,基于所述有效缓存数据以及所述目标正文缓存数据获得所述
    待加载网页资源的信息,如果所述解析判断模块52的判断结果为不
    是,则直接根据所述有效缓存数据获得所述待加载网页资源的信息。

    可以理解的是,在其他实施例中,网页资源处理装置可以同时
    包括第五实施例中的各模块以及第四实施例中的各模块。

    本实施例中的各单元可以是由软件代码实现,此时,上述的各
    单元可存储于用户终端100的存储器102内。以上各单元同样可以
    由硬件例如集成电路芯片实现。

    综上所述,本发明实施例提供的网页资源处理方法和装置根据
    由web服务器获取的网页资源的信息,生成包括所述网页资源的应
    答头部的头部缓存数据和包括所述网页资源的应答正文的正文缓存
    数据,头部缓存数据中包括指向该正文缓存数据的第一键值,并且
    相同的正文缓存数据具有相同的第一键值,从而可以实现让具有相
    同正文缓存数据的不同网页资源在http缓存中有各自的头部缓存数
    据,但都指向同一份正文缓存数据,从而减少缓存数据的冗余,使
    http缓存空间能够存储更多缓存数据,在一定程度上提高http缓存
    命中率。

    需要说明的是,本说明书中的各个实施例均采用递进的方式描
    述,每个实施例重点说明的都是与其他实施例的不同之处,各个实
    施例之间相同相似的部分互相参见即可。

    本发明实施例所提供的网页资源处理装置及系统,其实现原理
    及产生的技术效果和前述方法实施例相同,为简要描述,装置实施
    例部分未提及之处,可参考前述方法实施例中相应内容。

    另外,附图中的流程图和框图显示了根据本发明的多个实施例
    的系统、方法和计算机程序产品的可能实现的体系架构、功能和操
    作。在这点上,流程图或框图中的每个方框可以代表一个模块、程
    序段或代码的一部分,所述模块、程序段或代码的一部分包含一个
    或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有
    些作为替换的实现中,方框中所标注的功能也可以以不同于附图中
    所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地
    执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
    也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程
    图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬
    件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

    本发明实施例所提供的计算机程序产品,包括存储了程序代码
    的计算机可读存储介质,所述程序代码包括的指令可用于执行前面
    方法实施例中所述的方法,具体实现可参见方法实施例,在此不再
    赘述。

    所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,
    上述描述的系统、装置和单元的具体工作过程,可以参考前述方法
    实施例中的对应过程,在此不再赘述。

    在本申请所提供的几个实施例中,应该理解到,所揭露的系统、
    装置和方法,可以通过其它的方式实现。以上所描述的装置实施例
    仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划
    分,实际实现时可以有另外的划分方式,又例如,多个单元或组件
    可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不
    执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信
    连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,
    可以是电性,机械或其它的形式。

    所述作为分离部件说明的单元可以是或者也可以不是物理上分
    开的,作为单元显示的部件可以是或者也可以不是物理单元,即可
    以位于一个地方,或者也可以分布到多个网络单元上。可以根据实
    际的需要选择其中的部分或者全部单元来实现本实施例方案的目
    的。

    另外,在本发明各个实施例中的各功能单元可以集成在一个处
    理单元中,也可以是各个单元单独物理存在,也可以两个或两个以
    上单元集成在一个单元中。

    所述功能如果以软件功能单元的形式实现并作为独立的产品销
    售或使用时,可以存储在一个计算机可读取存储介质中。基于这样
    的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部
    分或者该技术方案的部分可以以软件产品的形式体现出来,该计算
    机软件产品存储在一个存储介质中,包括若干指令用以使得一台计
    算机设备(可以是个人计算机,服务器,或者网络设备等)执行本
    发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包
    括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、
    随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘
    等各种可以存储程序代码的介质。

    需要说明的是,在本文中,诸如第一和第二等之类的关系术语
    仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不
    一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或
    者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
    非排他性的包含,从而使得包括一系列要素的过程、方法、物品或
    者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,
    或者是还包括为这种过程、方法、物品或者设备所固有的要素。在
    没有更多限制的情况下,由语句“包括一个……”限定的要素,并不
    排除在包括所述要素的过程、方法、物品或者设备中还存在另外的
    相同要素。

    以上所述仅为本发明的优选实施例而已,并不用于限制本发明,
    对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在
    本发明的精神和原则之内,所作的任何修改、等同替换、改进等,
    均应包含在本发明的保护范围之内。应注意到:相似的标号和字母
    在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定
    义,则在随后的附图中不需要对其进行进一步定义和解释。

    关 键  词:
    网页 资源 处理 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:网页资源处理方法及装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6336770.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1