CN104796439B - 网页推送方法、客户端、服务器及系统 - Google Patents

网页推送方法、客户端、服务器及系统 Download PDF

Info

Publication number
CN104796439B
CN104796439B CN201410021149.8A CN201410021149A CN104796439B CN 104796439 B CN104796439 B CN 104796439B CN 201410021149 A CN201410021149 A CN 201410021149A CN 104796439 B CN104796439 B CN 104796439B
Authority
CN
China
Prior art keywords
client
server
child resource
homepage
change information
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
CN201410021149.8A
Other languages
English (en)
Other versions
CN104796439A (zh
Inventor
唐文
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.)
Shenzhen Yayue Technology Co ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410021149.8A priority Critical patent/CN104796439B/zh
Priority to PCT/CN2015/070746 priority patent/WO2015106692A1/en
Publication of CN104796439A publication Critical patent/CN104796439A/zh
Priority to US15/203,720 priority patent/US10798194B2/en
Application granted granted Critical
Publication of CN104796439B publication Critical patent/CN104796439B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (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)

Abstract

本发明涉及一种网页推送方法、客户端、服务器及系统,其方法包括:客户端向服务器发送页面加载请求,页面加载请求中携带有客户端的标识以及客户端的缓存变化信息;服务器根据页面加载请求获取主页面,解析主页面,获取主页面加载所需要的关键子资源;服务器向客户端返回主页面,并根据客户端的缓存变化信息计算获取主页面加载所需要的关键子资源中,客户端不存在的关键子资源,将客户端不存在的关键子资源推送给客户端。本发明可以避免服务器重复推送资源,既加快了客户端页面加载速度,也避免了不必要的流量开销。

Description

网页推送方法、客户端、服务器及系统
技术领域
本发明涉及互联网技术领域,尤其涉及一种网页推送方法、客户端、服务器及系统。
背景技术
客户端在加载网页时,通常发送请求给服务器拉取页面数据,或者服务器在接收客户端请求之前,提前将某些资源推送(Push)给客户端。
目前的SPDY协议支持Push功能,即服务器能针对客户端的一个请求,返回多个资源。这样服务器可以将页面显示需要的关键子资源提前Push给客户端,使之页面加载速度提升。
然而,现有方案中,虽然服务器能提前Push关键子资源以提升页面加载速度,但是,无法事先判断客户端是否已有该关键子资源的缓存。如果客户端之前已有了该关键子资源的缓存,服务器的Push不仅会增大客户端网络流量的开销,而且会占用带宽,导致客户端的其它资源获取速度降低,反而降低了客户端页面的加载速度。
发明内容
本发明实施例提供一种网页推送方法、客户端、服务器及系统,旨在提升网页的加载速度,避免不必要的流量开销。
本发明实施例提出一种网页推送方法,括:
客户端向服务器发送页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
所述服务器根据所述页面加载请求获取主页面,解析所述主页面,获取所述主页面加载所需要的关键子资源;
所述服务器向所述客户端返回所述主页面,并根据所述客户端的缓存变化信息计算获取所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源,将所述客户端不存在的关键子资源推送给所述客户端。
本发明实施例还提出一种网页推送方法,包括:
服务器接收客户端发送的页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
根据所述页面加载请求获取主页面,解析所述主页面,获取所述主页面加载所需要的关键子资源;
向所述客户端返回主页面,并根据所述客户端的缓存变化信息计算获取所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源,将所述客户端不存在的关键子资源推送给所述客户端。
本发明实施例还提出一种网页推送方法,包括:
客户端向服务器发送页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
接收所述服务器返回的主页面,以及所述服务器推送的所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源;所述客户端不存在的关键子资源由所述服务器根据所述客户端的缓存变化信息计算获取;
显示所述主页面,并在所述主页面中加载所述主页面所需要的关键子资源,所述主页面所需要的关键子资源包括所述客户端存在的关键子资源,以及所述服务器推送的所述客户端之前不存在的关键子资源。
本发明实施例还提出一种网页推送系统,包括:客户端及服务器,其中:
所述客户端,用于向服务器发送页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
所述服务器,用于根据所述页面加载请求获取主页面,解析所述主页面,获取所述主页面加载所需要的关键子资源;向所述客户端返回所述主页面,并根据所述客户端的缓存变化信息计算获取所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源;以及将所述客户端不存在的关键子资源推送给所述客户端。
本发明实施例还提出一种网页推送服务器,包括:
请求接收模块,用于接收客户端发送的页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
解析模块,用于根据所述页面加载请求获取主页面,解析所述主页面,获取所述主页面加载所需要的关键子资源;
推送模块,用于向所述客户端返回主页面,并根据所述客户端的缓存变化信息计算获取所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源,将所述客户端不存在的关键子资源推送给所述客户端。
本发明实施例还提出一种网页推送客户端,包括:
发送模块,用于向服务器发送页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
接收模块,用于接收所述服务器返回的主页面,以及所述服务器推送的所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源;所述客户端不存在的关键子资源由所述服务器根据所述客户端的缓存变化信息计算获取;
加载显示模块,用于显示所述主页面,并在所述主页面中加载所述主页面所需要的关键子资源,所述主页面所需要的关键子资源包括所述客户端存在的关键子资源,以及所述服务器推送的所述客户端之前不存在的关键子资源。
本发明实施例提出的一种网页推送方法、客户端、服务器及系统,客户端在请求页面加载时,将本地缓存变化信息一同发送给服务器,使服务器获取客户端已有的缓存记录,服务器在向客户端返回主页面时,根据客户端的缓存变化信息得到主页面加载所需要的关键子资源中客户端不存在的关键子资源,将客户端不存在的关键子资源推送给客户端,从而避免了重复推送资源,这种推送机制既加快了客户端页面加载速度,也避免了不必要的流量开销。
附图说明
图1是本发明网页推送方法第一实施例的流程示意图;
图2是本发明网页推送方法第二实施例的流程示意图;
图3是本发明网页推送方法第三实施例的流程示意图;
图4是本发明网页推送方法第四实施例的流程示意图;
图5是本发明网页推送方法第五实施例的流程示意图;
图6是本发明网页推送方法第六实施例的流程示意图;
图7是本发明网页推送方法第七实施例的流程示意图;
图8是本发明网页推送方法第八实施例的流程示意图;
图9是本发明网页推送方法第九实施例的流程示意图;
图10是本发明网页推送方法第十实施例的流程示意图;
图11a是本发明网页推送系统较佳实施例的结构示意图;
图11b本发明实施例网页推送系统中客户端与服务器的交互过程示意图;
图12是本发明网页推送服务器第一实施例的功能模块示意图;
图13是本发明网页推送服务器第二实施例的功能模块示意图;
图14是本发明网页推送服务器实施例中推送模块的结构示意图;
图15是本发明网页推送服务器第三实施例的功能模块示意图;
图16是本发明网页推送客户端第一实施例的功能模块示意图;
图17是本发明网页推送客户端第二实施例的功能模块示意图;
图18是本发明网页推送客户端第三实施例的功能模块示意图。
为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明第一实施例提出一种网页推送方法,包括:
步骤S101,客户端向服务器发送页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
本发明实施例方法运行环境涉及客户端及服务器,客户端可以为PC,或者为手机、平板电脑等可以显示网页的移动终端。客户端可以根据用户输入的网址或者网页点击操作指令显示不同的网页,其网页数据由客户端向服务器请求拉取,也可以由服务器主动推送给客户端。
为了提升客户端上网页加载速度,通常服务器可以针对客户端的一个请求,返回多个资源。这样服务器可以将页面显示需要的关键子资源提前推送给客户端,使之页面加载速度提升。
由于现有的推送方案中,服务器无法事先判断客户端是否已有该关键子资源的缓存,导致服务器将客户端之前已缓存的关键子资源也一同推送,由此增大了客户端网络流量的开销,而且会占用带宽,降低了客户端页面的加载速度。
本实施例通过Q-Push协议,服务器在推送资源给客户端时,可以根据客户端记录的缓存变化信息,保证服务器推送的是客户端不存在的关键子资源,以达到提升推送速度与减少客户端流量开销的效果。
具体地,首先,客户端在用户需要显示某一网页时,向服务器发送页面加载请求,该页面加载请求可以通过http请求的方式发送至服务器。
上述页面加载请求中携带有客户端请求显示的网页的URL地址等信息,同时,该页面加载请求中还携带有客户端的标识以及客户端记录的本地的缓存变化信息。
其中,客户端的标识可以是由服务器预先为客户端生成的一数字标识符,作为客户端的唯一标识,用来标记客户端。作为一种实施方式,该数字标识符可以是通过预定算法生成的二进制长度为128位的数字标识符。
当然,上述客户端标识也可以是由客户端与服务器约定并由客户端本地或者其他第三方服务器生成的唯一标识。
客户端会在本地保存其标识,后续客户端每次与服务器交互时,均在请求中携带上该标识。
上述客户端记录的本地缓存变化信息可以包括:客户端增加或减少一条URL对应的缓存数据。
客户端通过维持一个缓存记录器,记录每次客户端缓存的变化信息,将增加的URL或者URL对应的hash值记录到一个ADD(增加)队列中,将删除的URL或者URL对应的hash值记录到一个REMOVE(移除)队列中。
以http请求为例,客户端在发送http请求时,在http请求头中带上字段“GUID”和“Q-Push:”。GUID(Globally Unique Identifier,是一种由算法生成的二进制长度为128位的数字标识符,可用户标记客户端)为服务器下发的标识信息。Q-Push中记录着ADD和REMOVE队列对应的URL或者为URL对应的hash值。
步骤S102,所述服务器根据所述页面加载请求获取主页面,解析所述主页面,获取所述主页面加载所需要的关键子资源;
服务器在接收到客户端发送的页面加载请求后,根据该页面加载请求携带的URL地址,获取相应的页面数据,作为返回给客户端的主页面数据。
同时,服务器还会解析该主页面数据,获得主页面在客户端上加载所需要的关键子资源。
该关键子资源是指对一个HTML解析渲染起着关键作用的资源,一般是JS(客户端脚本语言)/CSS(级联样式表)资源等。
上述子资源是与主页面的主资源相对的资源。主资源是指一个完整的HTML页面,子资源是指HTML页面上外部引用的图片、动画、脚本等文件,与主资源相对。
通常服务器在向客户端返回主页面数据时,会根据客户端请求或者主动向客户端推送主页面加载所需要的关键子资源。
本实施例服务器可以根据客户端的缓存变化信息计算获取主页面加载所需要的关键子资源中客户端上不存在的关键子资源,并推送给客户端,以节省流量开销,提升客户端网页加载速度。
步骤S103,所述服务器向所述客户端返回所述主页面,并根据所述客户端的缓存变化信息计算获取所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源,将所述客户端不存在的关键子资源推送给所述客户端。
本实施例考虑到,主页面在客户端上加载所需要的关键子资源中,一部分关键子资源可能在客户端中已有缓存,因此,服务器可以仅将客户端不存在的关键子资源推送给所述客户端,以节省流量开销,提升客户端网页加载速度。
在具体操作时,服务器首先根据网页加载请中携带的客户端标识,从历史记录中获取客户端的缓存变化情况,并结合该客户端当前发送的缓存变化信息,计算得到主页面加载所需要的关键子资源中,客户端上已经存在的关键子资源,由此,可以依据客户端已经存在的关键子资源,获取主页面加载所需要的关键子资源中客户端不存在的关键子资源。
进而,服务器在向客户端返回主页面时,会将客户端不存在的关键子资源以SPDYPUSH的方式返回给客户端。SPDY是对HTTP协议增强的一个协议,该协议的功能包括数据流的多路复用、请求优先级,以及HTTP包头压缩。
在客户端侧,客户端会将服务器推送的关键子资源缓存。客户端在显示主页面时,会加载主页面显示所需要的关键子资源,其中,客户端加载的主页面所需要的关键子资源包括所述客户端之前存在的关键子资源,以及服务器推送的所述客户端之前不存在的关键子资源。
相比现有技术,客户端无需再次向服务器发送请求获取本地未缓存的关键子资源,而服务器也不会向客户端重复推送客户端已经存在的关键子资源,从而加快了关键子资源JS/CSS的传输速度,又不会有重传导致的流量问题,提升了客户端网页的加载速度。
如图2所示,本发明第二实施例提出一种网页推送方法,在上述步骤S101:客户端向服务器发送页面加载请求之后还包括:
步骤S104,服务器将所述客户端的缓存变化信息对应所述客户端的标识记录到所述服务器的缓存中。
本实施例与上述图1所示的第一实施例的区别在于,本实施例还包括服务器记录并缓存获取的客户端缓存变化信息的方案。
具体地,考虑到服务器会接收不同客户端的页面加载请求,为了提高页面推送效率,本实施例中,服务器在接收到客户端发送的页面加载请求后,从该页面加载请求中提取客户端缓存变化信息,并将客户端的缓存变化信息对应客户端的标识记录到所述服务器的缓存中。
在后续具体操作时,服务器首先根据网页加载请中携带的客户端标识,从所述服务器的缓存中查找所述客户端的缓存变化信息;然后,根据客户端的缓存变化信息,计算获取主页面加载所需要的关键子资源中所述客户端已经存在的关键子资源。
之后,依据客户端已经存在的关键子资源,获取主页面加载所需要的关键子资源中客户端不存在的关键子资源;将所述客户端不存在的关键子资源推送给所述客户端。
本实施例通过上述方案,客户端在请求页面加载时,将本地缓存变化信息一同发送给服务器,使服务器获取客户端已有的缓存记录,服务器在向客户端返回主页面时,根据客户端的缓存变化信息得到主页面加载所需要的关键子资源中客户端不存在的关键子资源,将客户端不存在的关键子资源推送给客户端,从而避免了重复推送资源,既加快了客户端页面加载速度,也避免了不必要的流量开销;此外,服务器在获取到客户端缓存变化信息后,会将客户端的缓存变化信息对应客户端的标识记录到所述服务器的缓存中,以方便计算,提高计算效率及页面数据推送效率。
如图3所示,本发明第三实施例提出一种网页推送方法,在上述步骤S101:客户端向服务器发送页面加载请求之前还包括:
步骤S90,所述服务器为客户端生成标识,并将所述标识下发给客户端。
步骤S100,客户端记录本地缓存的变化信息。
本实施例与上述图2所示的第二实施例的区别在于,本实施例还包括服务器为客户端生成标识以及客户端记录本地缓存的变化信息的方案。
具体地,服务器为客户端生成一数字标识符,作为客户端的唯一标识,用来标记客户端。作为一种实施方式,该数字标识符可以是通过预定算法生成的二进制长度为128位的数字标识符。服务器为客户端生成标识后,将此标识下发给客户端。
其中,本地缓存的变化信息包括:客户端增加或减少一条URL对应的缓存数据。
客户端记录本地缓存的变化信息的过程具体包括:
将客户端增加的URL或者URL对应的hash值记录到增加队列中,将客户端删除的URL或者URL对应的hash值记录到移除队列中。
其中,记录URL对应的hash值可以减少流量开销。其涉及的hash算法可以根据需要行定义。以下提供一种hash算法参考如下:
本实施例通过上述方案,服务器为客户端生成标识,并将所述标识下发给客户端,客户端记录本地缓存的变化信息,客户端在请求页面加载时,将本地缓存变化信息一同发送给服务器,使服务器获取客户端已有的缓存记录,服务器在向客户端返回主页面时,根据客户端的缓存变化信息得到主页面加载所需要的关键子资源中客户端不存在的关键子资源,将客户端不存在的关键子资源推送给客户端,从而避免了重复推送资源,既加快了客户端页面加载速度,也避免了不必要的流量开销;此外,服务器在获取到客户端缓存变化信息后,会将客户端的缓存变化信息对应客户端的标识记录到所述服务器的缓存中,以方便计算,提高计算效率及页面数据推送效率。
如图4所示,本发明第四实施例提出一种网页推送方法,在上述步骤S103:所述服务器向所述客户端返回所述主页面,并根据所述客户端的缓存变化信息计算获取所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源,将所述客户端不存在的关键子资源推送给所述客户端之后还包括:
步骤S105,客户端更新本地的缓存变化信息;具体包括:
所述客户端将所述服务器推送过的URL或者URL对应的hash值从所述增加队列或移除队列中移除。
本实施例与上述图3所示的第二实施例的区别在于,本实施例还包括客户端更新本地缓存变化信息的方案。
客户端在接收到服务器推送的关键子资源,完成页面加载显示后,将之前服务器通过Q-Push发送过的URL或对应的hash值从ADD和REMOVE队列中移除,一方面可以节省客户端缓存资源,另一方面也保证了客户端缓存变化信息的准确性,并进一步加快了客户端页面加载速度。
当下次客户端访问新的网页时,重复上述过程即可。
本实施例通过上述方案,服务器为客户端生成标识,并将所述标识下发给客户端,客户端记录本地缓存的变化信息,客户端在请求页面加载时,将本地缓存变化信息一同发送给服务器,使服务器获取客户端已有的缓存记录,服务器在向客户端返回主页面时,根据客户端的缓存变化信息得到主页面加载所需要的关键子资源中客户端不存在的关键子资源,将客户端不存在的关键子资源推送给客户端,从而避免了重复推送资源,既加快了客户端页面加载速度,也避免了不必要的流量开销;此外,服务器在获取到客户端缓存变化信息后,会将客户端的缓存变化信息对应客户端的标识记录到所述服务器的缓存中,以方便计算,提高计算效率及页面数据推送效率;客户端在接收到服务器推送的关键子资源,完成页面加载显示后,将之前服务器通过Q-Push发送过的URL或对应的hash值从ADD和REMOVE队列中移除,一方面可以节省客户端缓存资源,另一方面也保证了客户端缓存变化信息的准确性,并进一步加快了客户端页面加载速度。
如图5所示,本发明第五实施例提出一种网页推送方法,包括:
步骤S201,服务器接收客户端发送的页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
步骤S202,根据所述页面加载请求获取主页面,解析所述主页面,获取所述主页面加载所需要的关键子资源;
步骤S203,向所述客户端返回主页面,并根据所述客户端的缓存变化信息计算获取所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源,将所述客户端不存在的关键子资源推送给所述客户端。
本发明实施例方法运行环境涉及客户端及服务器,客户端可以为PC,或者为手机、平板电脑等可以显示网页的移动终端。客户端可以根据用户输入的网址或者网页点击操作指令显示不同的网页,其网页数据由客户端向服务器请求拉取,也可以由服务器主动推送给客户端。
为了提升客户端上网页加载速度,通常服务器可以针对客户端的一个请求,返回多个资源。这样服务器可以将页面显示需要的关键子资源提前推送给客户端,使之页面加载速度提升。由于现有的推送方案中,服务器无法事先判断客户端是否已有该关键子资源的缓存,导致服务器将客户端之前已缓存的关键子资源也一同推送,增大了客户端网络流量的开销,而且会占用带宽,降低了客户端页面的加载速度。
本实施例通过Q-Push协议,服务器在推送资源给客户端时,可以根据客户端记录的缓存变化信息,保证服务器推送的是客户端不存在的关键子资源,以达到提升推送速度与减少客户端流量占用的效果。
具体地,首先,客户端在用户需要显示某一网页时,向服务器发送页面加载请求,该页面加载请求可以通过http请求的方式发送至服务器。
上述页面加载请求中携带有客户端请求显示的网页的URL地址等信息,同时,该页面加载请求中还携带有客户端的标识以及客户端记录的本地的缓存变化信息。
其中,客户端的标识可以是由服务器预先为客户端生成的一数字标识符,作为客户端的唯一标识,用来标记客户端。作为一种实施方式,该数字标识符可以是通过预定算法生成的二进制长度为128位的数字标识符。
当然,上述客户端标识也可以是由客户端与服务器约定并由客户端本地或者其他第三方服务器生成的唯一标识。
客户端会在本地保存其标识,后续客户端每次与服务器交互时,均在请求中携带上该标识。
上述客户端记录的本地的缓存变化信息可以包括:客户端增加或减少一条URL对应的缓存数据。
客户端可以维持一个缓存记录器,记录每次客户端缓存的变化信息,将增加的URL或者URL对应的hash值记录到一个ADD(增加)队列中,将删除的URL或者URL对应的hash值记录到一个REMOVE(移除)队列中。
以http请求为例,客户端在发送http请求时,在http请求头中带上字段“GUID”和“Q-Push:”。GUID(Globally Unique Identifier,是一种由算法生成的二进制长度为128位的数字标识符,可用户标记客户端)为服务器下发的标识信息。Q-Push里面记录着ADD和REMOVE队列对应的URL或者为URL对应的hash值。
服务器在接收到客户端发送的页面加载请求后,根据该页面加载请求携带的URL地址,获取相应的页面数据,作为返回给客户端的主页面数据。
同时,服务器还会解析该主页面数据,获得主页面在客户端上加载所需要的关键子资源。
该关键子资源是指对一个HTML解析渲染起着关键作用的资源,一般是JS(客户端脚本语言)/CSS(级联样式表)资源等。
上述子资源是与主页面的主资源相对的资源。主资源是指一个完整的HTML页面,子资源是指HTML页面上外部引用的图片、动画、脚本等文件,与主资源相对。
通常服务器在向客户端返回主页面数据时,会根据客户端请求或者主动向客户端推送主页面加载所需要的关键子资源。
本实施例服务器可以根据客户端的缓存变化信息计算获取主页面加载所需要的关键子资源中客户端上不存在的关键子资源,并推送给客户端,以节省流量开销,提升客户端网页加载速度。
本实施例考虑到,主页面在客户端上加载所需要的关键子资源中,一部分关键子资源可能在客户端中已有缓存,因此,服务器可以仅将客户端不存在的关键子资源推送给所述客户端,以节省流量开销,提升客户端网页加载速度。
在具体操作时,服务器首先根据网页加载请中携带的客户端标识,从历史记录中获取客户端的缓存变化情况,并结合该客户端当前发送的缓存变化信息,计算得到主页面加载所需要的关键子资源中,客户端上已经存在的关键子资源,由此,可以依据客户端已经存在的关键子资源,获取主页面加载所需要的关键子资源中客户端不存在的关键子资源。
进而,服务器在向客户端返回主页面时,会将客户端不存在的关键子资源以SPDYPUSH的方式返回给客户端。SPDY是对HTTP协议增强的一个协议,该协议的功能包括数据流的多路复用、请求优先级,以及HTTP包头压缩。
在客户端侧,客户端会将服务器推送的关键子资源缓存。客户端在显示主页面时,会加载主页面显示所需要的关键子资源,其中,客户端加载的主页面所需要的关键子资源包括所述客户端之前存在的关键子资源,以及服务器推送的所述客户端之前不存在的关键子资源。
由此相比现有技术,客户端无需再次向服务器发送请求获取本地未缓存的关键子资源,而服务器也不会向客户端重复推送客户端已经存在的关键子资源,从而加快了关键子资源JS/CSS的传输速度,又不会有重传导致的流量问题,提升了客户端网页的加载速度。
如图6所示,本发明第六实施例提出一种网页推送方法,在上述图5所示的第五实施例的基础上,在上述步骤S201:服务器接收客户端发送的页面加载请求之后还包括:
步骤S204,服务器将所述客户端的缓存变化信息对应所述客户端的标识记录到所述服务器的缓存中。
本实施例与上述图5所示的第五实施例的区别在于,本实施例还包括服务器记录并缓存获取的客户端缓存变化信息的方案。
具体地,考虑到服务器会接收不同客户端的页面加载请求,为了提高页面推送效率,本实施例中,服务器在接收到客户端发送的页面加载请求后,从该页面加载请求中提取客户端缓存变化信息,并将客户端的缓存变化信息对应客户端的标识记录到所述服务器的缓存中。
在后续具体操作时,服务器首先根据网页加载请中携带的客户端标识,从所述服务器的缓存中查找所述客户端的缓存变化信息;然后,根据客户端的缓存变化信息,计算获取主页面加载所需要的关键子资源中所述客户端已经存在的关键子资源。
之后,依据客户端已经存在的关键子资源,获取主页面加载所需要的关键子资源中客户端不存在的关键子资源;将所述客户端不存在的关键子资源推送给所述客户端。
本实施例通过上述方案,客户端在请求页面加载时,将本地缓存变化信息一同发送给服务器,使服务器获取客户端已有的缓存记录,服务器在向客户端返回主页面时,根据客户端的缓存变化信息得到主页面加载所需要的关键子资源中客户端不存在的关键子资源,将客户端不存在的关键子资源推送给客户端,从而避免了重复推送资源,既加快了客户端页面加载速度,也避免了不必要的流量开销;此外,服务器在获取到客户端缓存变化信息后,会将客户端的缓存变化信息对应客户端的标识记录到所述服务器的缓存中,以方便计算,提高计算效率及页面数据推送效率。
如图7所示,本发明第七实施例提出一种网页推送方法,在上述图6所示的第六实施例的基础上,在上述步骤S201:服务器接收客户端发送的页面加载请求之前还包括:
步骤S200,服务器为客户端生成标识,并将所述标识下发给客户端。
本实施例与上述图6所示的第六实施例的区别在于,本实施例还包括服务器为客户端生成标识的方案。
具体地,服务器为客户端生成一数字标识符,作为客户端的唯一标识,用来标记客户端。作为一种实施方式,该数字标识符可以是通过预定算法生成的二进制长度为128位的数字标识符。服务器为客户端生成标识后,将此标识下发给客户端。由此通过上述方案,增加了客户端与服务器的交互灵活性,便于服务器依据不同客户端标识,向客户端推送相应的网络资源。
如图8所示,本发明第八实施例提出一种网页推送方法,包括:
步骤S301,客户端向服务器发送页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
步骤S302,接收所述服务器返回的主页面,以及所述服务器推送的所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源;所述客户端不存在的关键子资源由所述服务器根据所述客户端的缓存变化信息计算获取;
步骤S303,显示所述主页面,并在所述主页面中加载所述主页面所需要的关键子资源,所述主页面所需要的关键子资源包括所述客户端存在的关键子资源,以及所述服务器推送的所述客户端之前不存在的关键子资源。
本发明实施例方法运行环境涉及客户端及服务器,客户端可以为PC,或者为手机、平板电脑等可以显示网页的移动终端。客户端可以根据用户输入的网址或者网页点击操作指令显示不同的网页,其网页数据由客户端向服务器请求拉取,也可以由服务器主动推送给客户端。
为了提升客户端上网页加载速度,通常服务器可以针对客户端的一个请求,返回多个资源。这样服务器可以将页面显示需要的关键子资源提前推送给客户端,使之页面加载速度提升。由于现有的推送方案中,服务器无法事先判断客户端是否已有该关键子资源的缓存,导致服务器将客户端之前已缓存的关键子资源也一同推送,增大了客户端网络流量的开销,而且会占用带宽,降低了客户端页面的加载速度。
本实施例通过Q-Push协议,服务器在推送资源给客户端时,可以根据客户端记录的缓存变化信息,保证服务器推送的是客户端不存在的关键子资源,以达到提升推送速度与减少客户端流量占用的效果。
具体地,首先,客户端在用户需要显示某一网页时,向服务器发送页面加载请求,该页面加载请求可以通过http请求的方式发送至服务器。
上述页面加载请求中携带有客户端请求显示的网页的URL地址等信息,同时,该页面加载请求中还携带有客户端的标识以及客户端记录的本地的缓存变化信息。
其中,客户端的标识可以是由服务器预先为客户端生成的一数字标识符,作为客户端的唯一标识,用来标记客户端。作为一种实施方式,该数字标识符可以是通过预定算法生成的二进制长度为128位的数字标识符。
当然,上述客户端标识也可以是由客户端与服务器约定并由客户端本地或者其他第三方服务器生成的唯一标识。
客户端会在本地保存其标识,后续客户端每次与服务器交互时,均在请求中携带上该标识。
上述客户端记录的本地的缓存变化信息可以包括:客户端增加或减少一条URL对应的缓存数据。
客户端可以维持一个缓存记录器,记录每次客户端缓存的变化信息,将增加的URL或者URL对应的hash值记录到一个ADD(增加)队列中,将删除的URL或者URL对应的hash值记录到一个REMOVE(移除)队列中。
以http请求为例,客户端在发送http请求时,在http请求头中带上字段“GUID”和“Q-Push:”。GUID(Globally Unique Identifier,是一种由算法生成的二进制长度为128位的数字标识符,可用户标记客户端)为服务器下发的标识信息。Q-Push里面记录着ADD和REMOVE队列对应的URL或者为URL对应的hash值。
服务器在接收到客户端发送的页面加载请求后,根据该页面加载请求携带的URL地址,获取相应的页面数据,作为返回给客户端的主页面数据。
同时,服务器还会解析该主页面数据,获得主页面在客户端上加载所需要的关键子资源。
该关键子资源是指对一个HTML解析渲染起着关键作用的资源,一般是JS(客户端脚本语言)/CSS(级联样式表)资源等。
上述子资源是与主页面的主资源相对的资源。主资源是指一个完整的HTML页面,子资源是指HTML页面上外部引用的图片、动画、脚本等文件,与主资源相对。
通常服务器在向客户端返回主页面数据时,会根据客户端请求或者主动向客户端推送主页面加载所需要的关键子资源。
本实施例服务器可以根据客户端的缓存变化信息计算获取主页面加载所需要的关键子资源中客户端上不存在的关键子资源,并推送给客户端,以节省流量开销,提升客户端网页加载速度。
本实施例考虑到,主页面在客户端上加载所需要的关键子资源中,一部分关键子资源可能在客户端中已有缓存,因此,服务器可以仅将客户端不存在的关键子资源推送给所述客户端,以节省流量开销,提升客户端网页加载速度。
在具体操作时,服务器首先根据网页加载请中携带的客户端标识,从历史记录中获取客户端的缓存变化情况,并结合该客户端当前发送的缓存变化信息,计算得到主页面加载所需要的关键子资源中,客户端上已经存在的关键子资源,由此,可以依据客户端已经存在的关键子资源,获取主页面加载所需要的关键子资源中客户端不存在的关键子资源。
进而,服务器在向客户端返回主页面时,会将客户端不存在的关键子资源以SPDYPUSH的方式返回给客户端。SPDY是对HTTP协议增强的一个协议,该协议的功能包括数据流的多路复用、请求优先级,以及HTTP包头压缩。
在客户端侧,客户端会将服务器推送的关键子资源缓存。客户端在显示主页面时,会加载主页面显示所需要的关键子资源,其中,客户端加载的主页面所需要的关键子资源包括所述客户端之前存在的关键子资源,以及服务器推送的所述客户端之前不存在的关键子资源。
由此相比现有技术,客户端无需再次向服务器发送请求获取本地未缓存的关键子资源,而服务器也不会向客户端重复推送客户端已经存在的关键子资源,从而加快了关键子资源JS/CSS的传输速度,又不会有重传导致的流量问题,提升了客户端网页的加载速度。
如图9所示,本发明第九实施例提出一种网页推送方法,在上述图8所示的第八实施例的基础上,在上述步骤S301:客户端向服务器发送页面加载请求之前还包括:
步骤S300,客户端记录本地缓存的变化信息,所述本地缓存的变化信息包括:客户端增加或减少一条URL对应的缓存数据。
本实施例与上述图8所示的第八实施例的区别在于,本实施例还包括客户端记录本地缓存的变化信息的方案。
具体地,其中,本地缓存的变化信息包括:客户端增加或减少一条URL对应的缓存数据。
客户端记录本地缓存的变化信息的过程具体包括:
将客户端增加的URL或者URL对应的hash值记录到增加队列中,将客户端删除的URL或者URL对应的hash值记录到移除队列中。
其中,记录URL对应的hash值可以减少流量开销。其涉及的hash算法可以根据需要行定义。以下提供一种hash算法参考如下:
本实施例通过上述方案,客户端记录本地缓存的变化信息,客户端在请求页面加载时,将本地缓存变化信息一同发送给服务器,使服务器获取客户端已有的缓存记录,服务器在向客户端返回主页面时,根据客户端的缓存变化信息得到主页面加载所需要的关键子资源中客户端不存在的关键子资源,将客户端不存在的关键子资源推送给客户端,从而避免了重复推送资源,既加快了客户端页面加载速度,也避免了不必要的流量开销;此外,服务器在获取到客户端缓存变化信息后,会将客户端的缓存变化信息对应客户端的标识记录到所述服务器的缓存中,以方便计算,提高计算效率及页面数据推送效率。
如图10所示,本发明第十实施例提出一种网页推送方法,在上述图9所示的第九实施例的基础上,在上述步骤S303:显示所述主页面,并在所述主页面中加载所述主页面所需要的关键子资源,所述主页面所需要的关键子资源包括所述客户端存在的关键子资源,以及所述服务器推送的所述客户端之前不存在的关键子资源之后还包括:
步骤S304,客户端更新本地的缓存变化信息;
本实施例与上述图9所示的第九实施例的区别在于,本实施例还包括客户端更新本地缓存变化信息的方案。
客户端在接收到服务器推送的关键子资源,完成页面加载显示后,将之前服务器通过Q-Push发送过的URL或对应的hash值从ADD和REMOVE队列中移除,一方面可以节省客户端缓存资源,另一方面也保证了客户端缓存变化信息的准确性,并进一步加快了客户端页面加载速度。
当下次客户端访问新的网页时,重复上述过程即可。
本实施例通过上述方案,服务器为客户端生成标识,并将所述标识下发给客户端,客户端记录本地缓存的变化信息,客户端在请求页面加载时,将本地缓存变化信息一同发送给服务器,使服务器获取客户端已有的缓存记录,服务器在向客户端返回主页面时,根据客户端的缓存变化信息得到主页面加载所需要的关键子资源中客户端不存在的关键子资源,将客户端不存在的关键子资源推送给客户端,从而避免了重复推送资源,既加快了客户端页面加载速度,也避免了不必要的流量开销;此外,服务器在获取到客户端缓存变化信息后,会将客户端的缓存变化信息对应客户端的标识记录到所述服务器的缓存中,以方便计算,提高计算效率及页面数据推送效率;客户端在接收到服务器推送的关键子资源,完成页面加载显示后,将之前服务器通过Q-Push发送过的URL或对应的hash值从ADD和REMOVE队列中移除,一方面可以节省客户端缓存资源,另一方面也保证了客户端缓存变化信息的准确性,并进一步加快了客户端页面加载速度。
如图11a所示,本发明较佳实施例提出一种网页推送系统,包括:客户端501及服务器502,其中:
所述客户端501,用于向服务器502发送页面加载请求,所述页面加载请求中携带有所述客户端501的标识以及所述客户端501的缓存变化信息;
所述服务器502,用于根据所述页面加载请求获取主页面,解析所述主页面,获取所述主页面加载所需要的关键子资源;向所述客户端501返回所述主页面,并根据所述客户端501的缓存变化信息计算获取所述主页面加载所需要的关键子资源中,所述客户端501不存在的关键子资源;以及将所述客户端501不存在的关键子资源推送给所述客户端501。
本实施例方案涉及客户端501及服务器502,客户端501可以为PC,或者为手机、平板电脑等可以显示网页的移动终端。客户端501可以根据用户输入的网址或者网页点击操作指令显示不同的网页,其网页数据由客户端501向服务器502请求拉取,也可以由服务器502主动推送给客户端501。
为了提升客户端501上网页加载速度,通常服务器502可以针对客户端501的一个请求,返回多个资源。这样服务器502可以将页面显示需要的关键子资源提前推送给客户端501,使之页面加载速度提升。由于现有的推送方案中,服务器502无法事先判断客户端501是否已有该关键子资源的缓存,导致服务器502将客户端501之前已缓存的关键子资源也一同推送,增大了客户端501网络流量的开销,而且会占用带宽,降低了客户端501页面的加载速度。
本实施例通过Q-Push协议,服务器502在推送资源给客户端501时,可以根据客户端501记录的缓存变化信息,保证服务器502推送的是客户端501不存在的关键子资源,以达到提升推送速度与减少客户端501流量占用的效果。
具体地,首先,客户端501在用户需要显示某一网页时,向服务器502发送页面加载请求,该页面加载请求可以通过http请求的方式发送至服务器502。
上述页面加载请求中携带有客户端501请求显示的网页的URL地址等信息,同时,该页面加载请求中还携带有客户端501的标识以及客户端501记录的本地的缓存变化信息。
其中,客户端501的标识可以是由服务器502预先为客户端501生成的一数字标识符,作为客户端501的唯一标识,用来标记客户端501。作为一种实施方式,该数字标识符可以是通过预定算法生成的二进制长度为128位的数字标识符。
当然,上述客户端501标识也可以是由客户端501与服务器502约定并由客户端501本地或者其他第三方服务器502生成的唯一标识。
客户端501会在本地保存其标识,后续客户端501每次与服务器502交互时,均在请求中携带上该标识。
上述客户端501记录的本地的缓存变化信息可以包括:客户端501增加或减少一条URL对应的缓存数据。
客户端501可以维持一个缓存记录器,记录每次客户端501缓存的变化信息,将增加的URL或者URL对应的hash值记录到一个ADD(增加)队列中,将删除的URL或者URL对应的hash值记录到一个REMOVE(移除)队列中。
其中,记录URL对应的hash值可以减少流量开销。其涉及的hash算法可以根据需要行定义。以下提供一种hash算法参考如下:
以http请求为例,客户端501在发送http请求时,在http请求头中带上字段“GUID”和“Q-Push:”。GUID(Globally Unique Identifier,是一种由算法生成的二进制长度为128位的数字标识符,可用户标记客户端501)为服务器502下发的标识信息。Q-Push里面记录着ADD和REMOVE队列对应的URL或者为URL对应的hash值。
服务器502在接收到客户端501发送的页面加载请求后,根据该页面加载请求携带的URL地址,获取相应的页面数据,作为返回给客户端501的主页面数据。
同时,服务器502还会解析该主页面数据,获得主页面在客户端501上加载所需要的关键子资源。
该关键子资源是指对一个HTML解析渲染起着关键作用的资源,一般是JS(客户端501脚本语言)/CSS(级联样式表)资源等。
上述子资源是与主页面的主资源相对的资源。主资源是指一个完整的HTML页面,子资源是指HTML页面上外部引用的图片、动画、脚本等文件,与主资源相对。
通常服务器502在向客户端501返回主页面数据时,会根据客户端501请求或者主动向客户端501推送主页面加载所需要的关键子资源。
本实施例服务器502可以根据客户端501的缓存变化信息计算获取主页面加载所需要的关键子资源中客户端501上不存在的关键子资源,并推送给客户端501,以节省流量开销,提升客户端501网页加载速度。
本实施例考虑到,主页面在客户端501上加载所需要的关键子资源中,一部分关键子资源可能在客户端501中已有缓存,因此,服务器502可以仅将客户端501不存在的关键子资源推送给所述客户端501,以节省流量开销,提升客户端501网页加载速度。
在具体操作时,服务器502首先根据网页加载请中携带的客户端501标识,从历史记录中获取客户端501的缓存变化情况,并结合该客户端501当前发送的缓存变化信息,计算得到主页面加载所需要的关键子资源中,客户端501上已经存在的关键子资源,由此,可以依据客户端501已经存在的关键子资源,获取主页面加载所需要的关键子资源中客户端501不存在的关键子资源。
进而,服务器502在向客户端501返回主页面时,会将客户端501不存在的关键子资源以SPDY PUSH的方式返回给客户端501。SPDY是对HTTP协议增强的一个协议,该协议的功能包括数据流的多路复用、请求优先级,以及HTTP包头压缩。
在客户端501侧,客户端501会将服务器502推送的关键子资源缓存。客户端501在显示主页面时,会加载主页面显示所需要的关键子资源,其中,客户端501加载的主页面所需要的关键子资源包括所述客户端501之前存在的关键子资源,以及服务器502推送的所述客户端501之前不存在的关键子资源。
由此相比现有技术,客户端501无需再次向服务器502发送请求获取本地未缓存的关键子资源,而服务器502也不会向客户端501重复推送客户端501已经存在的关键子资源,从而加快了关键子资源JS/CSS的传输速度,又不会有重传导致的流量问题,提升了客户端501网页的加载速度。
进一步地,所述客户端501,还用于更新本地的缓存变化信息,具体用于将所述服务器502推送过的URL或者URL对应的hash值从所述增加队列或移除队列中移除。
具体地,客户端501在接收到服务器502推送的关键子资源,完成页面加载显示后,将之前服务器502通过Q-Push发送过的URL或对应的hash值从ADD和REMOVE队列中移除,一方面可以节省客户端501缓存资源,另一方面也保证了客户端501缓存变化信息的准确性,并进一步加快了客户端501页面加载速度。
当下次客户端501访问新的网页时,重复上述过程即可。
以下结合图11b对本实施例方案进行详细阐述:
图11b是本发明实施例网页推送系统中客户端501与服务器502的交互过程示意图。
如图11b所示,本发明实施例网页推送系统中客户端501与服务器502的交互过程如下:
步骤1:服务器502为客户端501生成一个GUID,作为该客户端501的一个唯一标识。下发给客户端501。客户端501保存起来,之后每次与服务器502交互时,带上这个字段。
步骤2:在客户端501维持一个缓存记录器,记录每次客户端501缓存(CDC,下同)的变化。CDC的变化主要是指增加或减少一条URL对应的缓存数据。将增加的URL记录到一个ADD队列中,将删除的URL记录到一个REMOVE队列中。
步骤3:发送页面请求到服务器502。在HTTP请求头中带上字段“GUID”和“Q-Push:”。GUID为服务器502下发的GUID信息;Q-Push里面记录着ADD和REMOVE队列对应的URL或者为URL对应的hash值。
通过该步骤3,能保证服务器502知道CDC的变化,即可以获取客户端501当前缓存的状态。
步骤4:服务器502将每个客户端501的CDC变化记录到服务器502缓存(SDC)中。
步骤5:服务器502向客户端501返回主页面,同时通过GUID从SDC中查找对应客户端501的CDC,得到客户端501已经存在的关键子资源(JS/CSS)。将客户端501不存在的关键子资源通过SPDY PUSH的方式,返回给客户端501。
步骤6:客户端501收到数据之后,更新CDC,同时将CDC的变化记录到ADD和REMOVE队列中,将之前通过Q-Push发送过的URL或对应的hash值从ADD和REMOVE队列中移除。
通过上述步骤5、6,能保证服务器502不会传输重复的关键子资源给客户端501,这样既加快了关键子资源JS/CSS的传输速度(能加快页面加载),又不会有重传导致的流量问题。
客户端501下一次访问新的页面时,重复步骤2-6。
由此,通过上述方案,客户端501无需再次向服务器502发送请求获取本地未缓存的关键子资源,而服务器502也不会向客户端501重复推送客户端501已经存在的关键子资源,从而加快了关键子资源JS/CSS的传输速度,又不会有重传导致的流量问题,提升了客户端501网页的加载速度。
如图12所示,本发明第一实施例提出一种网页推送服务器,包括:请求接收模块401、解析模块402以及推送模块403,其中:
请求接收模块401,用于接收客户端发送的页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
解析模块402,用于根据所述页面加载请求获取主页面,解析所述主页面,获取所述主页面加载所需要的关键子资源;
推送模块403,用于向所述客户端返回主页面,并根据所述客户端的缓存变化信息计算获取所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源,将所述客户端不存在的关键子资源推送给所述客户端。
本实施例方案涉及客户端及服务器,客户端可以为PC,或者为手机、平板电脑等可以显示网页的移动终端。客户端可以根据用户输入的网址或者网页点击操作指令显示不同的网页,其网页数据由客户端向服务器请求拉取,也可以由服务器主动推送给客户端。
为了提升客户端上网页加载速度,通常服务器可以针对客户端的一个请求,返回多个资源。这样服务器可以将页面显示需要的关键子资源提前推送给客户端,使之页面加载速度提升。由于现有的推送方案中,服务器无法事先判断客户端是否已有该关键子资源的缓存,导致服务器将客户端之前已缓存的关键子资源也一同推送,增大了客户端网络流量的开销,而且会占用带宽,降低了客户端页面的加载速度。
本实施例通过Q-Push协议,服务器在推送资源给客户端时,可以根据客户端记录的缓存变化信息,保证服务器推送的是客户端不存在的关键子资源,以达到提升推送速度与减少客户端流量占用的效果。
具体地,首先,客户端在用户需要显示某一网页时,向服务器发送页面加载请求,该页面加载请求可以通过http请求的方式发送至服务器。
上述页面加载请求中携带有客户端请求显示的网页的URL地址等信息,同时,该页面加载请求中还携带有客户端的标识以及客户端记录的本地的缓存变化信息。
其中,客户端的标识可以是由服务器预先为客户端生成的一数字标识符,作为客户端的唯一标识,用来标记客户端。作为一种实施方式,该数字标识符可以是通过预定算法生成的二进制长度为128位的数字标识符。
当然,上述客户端标识也可以是由客户端与服务器约定并由客户端本地或者其他第三方服务器生成的唯一标识。
客户端会在本地保存其标识,后续客户端每次与服务器交互时,均在请求中携带上该标识。
上述客户端记录的本地的缓存变化信息可以包括:客户端增加或减少一条URL对应的缓存数据。
客户端可以维持一个缓存记录器,记录每次客户端缓存的变化信息,将增加的URL或者URL对应的hash值记录到一个ADD(增加)队列中,将删除的URL或者URL对应的hash值记录到一个REMOVE(移除)队列中。
以http请求为例,客户端在发送http请求时,在http请求头中带上字段“GUID”和“Q-Push:”。GUID(Globally Unique Identifier,是一种由算法生成的二进制长度为128位的数字标识符,可用户标记客户端)为服务器下发的标识信息。Q-Push里面记录着ADD和REMOVE队列对应的URL或者为URL对应的hash值。
服务器在接收到客户端发送的页面加载请求后,根据该页面加载请求携带的URL地址,获取相应的页面数据,作为返回给客户端的主页面数据。
同时,服务器还会解析该主页面数据,获得主页面在客户端上加载所需要的关键子资源。
该关键子资源是指对一个HTML解析渲染起着关键作用的资源,一般是JS(客户端脚本语言)/CSS(级联样式表)资源等。
上述子资源是与主页面的主资源相对的资源。主资源是指一个完整的HTML页面,子资源是指HTML页面上外部引用的图片、动画、脚本等文件,与主资源相对。
通常服务器在向客户端返回主页面数据时,会根据客户端请求或者主动向客户端推送主页面加载所需要的关键子资源。
本实施例服务器可以根据客户端的缓存变化信息计算获取主页面加载所需要的关键子资源中客户端上不存在的关键子资源,并推送给客户端,以节省流量开销,提升客户端网页加载速度。
本实施例考虑到,主页面在客户端上加载所需要的关键子资源中,一部分关键子资源可能在客户端中已有缓存,因此,服务器可以仅将客户端不存在的关键子资源推送给所述客户端,以节省流量开销,提升客户端网页加载速度。
在具体操作时,服务器首先根据网页加载请中携带的客户端标识,从历史记录中获取客户端的缓存变化情况,并结合该客户端当前发送的缓存变化信息,计算得到主页面加载所需要的关键子资源中,客户端上已经存在的关键子资源,由此,可以依据客户端已经存在的关键子资源,获取主页面加载所需要的关键子资源中客户端不存在的关键子资源。
进而,服务器在向客户端返回主页面时,会将客户端不存在的关键子资源以SPDYPUSH的方式返回给客户端。SPDY是对HTTP协议增强的一个协议,该协议的功能包括数据流的多路复用、请求优先级,以及HTTP包头压缩。
在客户端侧,客户端会将服务器推送的关键子资源缓存。客户端在显示主页面时,会加载主页面显示所需要的关键子资源,其中,客户端加载的主页面所需要的关键子资源包括所述客户端之前存在的关键子资源,以及服务器推送的所述客户端之前不存在的关键子资源。
由此相比现有技术,客户端无需再次向服务器发送请求获取本地未缓存的关键子资源,而服务器也不会向客户端重复推送客户端已经存在的关键子资源,从而加快了关键子资源JS/CSS的传输速度,又不会有重传导致的流量问题,提升了客户端网页的加载速度。
如图13所示,本发明第二实施例提出一种网页推送服务器,在上述图12所示的第一实施例的基础上,还包括:
存储模块404,用于将所述客户端的缓存变化信息对应所述客户端的标识记录到所述服务器的缓存中。
本实施例与上述图12所示的第一实施例的区别在于,本实施例还包括服务器记录并缓存获取的客户端缓存变化信息的方案。
具体地,考虑到服务器会接收不同客户端的页面加载请求,为了提高页面推送效率,本实施例中,服务器在接收到客户端发送的页面加载请求后,从该页面加载请求中提取客户端缓存变化信息,并将客户端的缓存变化信息对应客户端的标识记录到所述服务器的缓存中。
在后续具体操作时,服务器首先根据网页加载请中携带的客户端标识,从所述服务器的缓存中查找所述客户端的缓存变化信息;然后,根据客户端的缓存变化信息,计算获取主页面加载所需要的关键子资源中所述客户端已经存在的关键子资源。
之后,依据客户端已经存在的关键子资源,获取主页面加载所需要的关键子资源中客户端不存在的关键子资源;将所述客户端不存在的关键子资源推送给所述客户端。
更为具体地,如图14所示,所述推送模块403包括:查找单元4031、计算获取单元4032以及推送单元4033,其中:
查找单元4031,用于根据所述客户端的标识,从所述服务器的缓存中查找所述客户端的缓存变化信息;
计算获取单元4032,用于根据所述客户端的缓存变化信息,计算获取主页面加载所需要的关键子资源中所述客户端已经存在的关键子资源;依据所述客户端已经存在的关键子资源,获取所述主页面加载所需要的关键子资源中客户端不存在的关键子资源;
推送单元4033,用于将所述客户端不存在的关键子资源推送给所述客户端。
本实施例通过上述方案,客户端在请求页面加载时,将本地缓存变化信息一同发送给服务器,使服务器获取客户端已有的缓存记录,服务器在向客户端返回主页面时,根据客户端的缓存变化信息得到主页面加载所需要的关键子资源中客户端不存在的关键子资源,将客户端不存在的关键子资源推送给客户端,从而避免了重复推送资源,既加快了客户端页面加载速度,也避免了不必要的流量开销;此外,服务器在获取到客户端缓存变化信息后,会将客户端的缓存变化信息对应客户端的标识记录到所述服务器的缓存中,以方便计算,提高计算效率及页面数据推送效率。
如图15所示,本发明第三实施例提出一种网页推送服务器,在上述图13所示的第二实施例的基础上,还包括:
生成发送模块400,用于为客户端生成标识,并将所述标识下发给客户端。
本实施例与上述图13所示的第二实施例的区别在于,本实施例还包括服务器为客户端生成标识的方案。
具体地,服务器为客户端生成一数字标识符,作为客户端的唯一标识,用来标记客户端。作为一种实施方式,该数字标识符可以是通过预定算法生成的二进制长度为128位的数字标识符。服务器为客户端生成标识后,将此标识下发给客户端。由此通过上述方案,增加了客户端与服务器的交互灵活性,便于服务器依据不同客户端标识,向客户端推送相应的网络资源。
如图16所示,本发明第一实施例提出一种网页推送客户端,包括:发送模块601、接收模块602以及加载显示模块603,其中:
发送模块601,用于向服务器发送页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
接收模块602,用于接收所述服务器返回的主页面,以及所述服务器推送的所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源;所述客户端不存在的关键子资源由所述服务器根据所述客户端的缓存变化信息计算获取;
加载显示模块603,用于显示所述主页面,并在所述主页面中加载所述主页面所需要的关键子资源,所述主页面所需要的关键子资源包括所述客户端存在的关键子资源,以及所述服务器推送的所述客户端之前不存在的关键子资源。
本实施例方案涉及客户端及服务器,客户端可以为PC,或者为手机、平板电脑等可以显示网页的移动终端。客户端可以根据用户输入的网址或者网页点击操作指令显示不同的网页,其网页数据由客户端向服务器请求拉取,也可以由服务器主动推送给客户端。
为了提升客户端上网页加载速度,通常服务器可以针对客户端的一个请求,返回多个资源。这样服务器可以将页面显示需要的关键子资源提前推送给客户端,使之页面加载速度提升。由于现有的推送方案中,服务器无法事先判断客户端是否已有该关键子资源的缓存,导致服务器将客户端之前已缓存的关键子资源也一同推送,增大了客户端网络流量的开销,而且会占用带宽,降低了客户端页面的加载速度。
本实施例通过Q-Push协议,服务器在推送资源给客户端时,可以根据客户端记录的缓存变化信息,保证服务器推送的是客户端不存在的关键子资源,以达到提升推送速度与减少客户端流量占用的效果。
具体地,首先,客户端在用户需要显示某一网页时,向服务器发送页面加载请求,该页面加载请求可以通过http请求的方式发送至服务器。
上述页面加载请求中携带有客户端请求显示的网页的URL地址等信息,同时,该页面加载请求中还携带有客户端的标识以及客户端记录的本地的缓存变化信息。
其中,客户端的标识可以是由服务器预先为客户端生成的一数字标识符,作为客户端的唯一标识,用来标记客户端。作为一种实施方式,该数字标识符可以是通过预定算法生成的二进制长度为128位的数字标识符。
当然,上述客户端标识也可以是由客户端与服务器约定并由客户端本地或者其他第三方服务器生成的唯一标识。
客户端会在本地保存其标识,后续客户端每次与服务器交互时,均在请求中携带上该标识。
上述客户端记录的本地的缓存变化信息可以包括:客户端增加或减少一条URL对应的缓存数据。
客户端可以维持一个缓存记录器,记录每次客户端缓存的变化信息,将增加的URL或者URL对应的hash值记录到一个ADD(增加)队列中,将删除的URL或者URL对应的hash值记录到一个REMOVE(移除)队列中。
以http请求为例,客户端在发送http请求时,在http请求头中带上字段“GUID”和“Q-Push:”。GUID(Globally Unique Identifier,是一种由算法生成的二进制长度为128位的数字标识符,可用户标记客户端)为服务器下发的标识信息。Q-Push里面记录着ADD和REMOVE队列对应的URL或者为URL对应的hash值。
服务器在接收到客户端发送的页面加载请求后,根据该页面加载请求携带的URL地址,获取相应的页面数据,作为返回给客户端的主页面数据。
同时,服务器还会解析该主页面数据,获得主页面在客户端上加载所需要的关键子资源。
该关键子资源是指对一个HTML解析渲染起着关键作用的资源,一般是JS(客户端脚本语言)/CSS(级联样式表)资源等。
上述子资源是与主页面的主资源相对的资源。主资源是指一个完整的HTML页面,子资源是指HTML页面上外部引用的图片、动画、脚本等文件,与主资源相对。
通常服务器在向客户端返回主页面数据时,会根据客户端请求或者主动向客户端推送主页面加载所需要的关键子资源。
本实施例服务器可以根据客户端的缓存变化信息计算获取主页面加载所需要的关键子资源中客户端上不存在的关键子资源,并推送给客户端,以节省流量开销,提升客户端网页加载速度。
本实施例考虑到,主页面在客户端上加载所需要的关键子资源中,一部分关键子资源可能在客户端中已有缓存,因此,服务器可以仅将客户端不存在的关键子资源推送给所述客户端,以节省流量开销,提升客户端网页加载速度。
在具体操作时,服务器首先根据网页加载请中携带的客户端标识,从历史记录中获取客户端的缓存变化情况,并结合该客户端当前发送的缓存变化信息,计算得到主页面加载所需要的关键子资源中,客户端上已经存在的关键子资源,由此,可以依据客户端已经存在的关键子资源,获取主页面加载所需要的关键子资源中客户端不存在的关键子资源。
进而,服务器在向客户端返回主页面时,会将客户端不存在的关键子资源以SPDYPUSH的方式返回给客户端。SPDY是对HTTP协议增强的一个协议,该协议的功能包括数据流的多路复用、请求优先级,以及HTTP包头压缩。
在客户端侧,客户端会将服务器推送的关键子资源缓存。客户端在显示主页面时,会加载主页面显示所需要的关键子资源,其中,客户端加载的主页面所需要的关键子资源包括所述客户端之前存在的关键子资源,以及服务器推送的所述客户端之前不存在的关键子资源。
由此相比现有技术,客户端无需再次向服务器发送请求获取本地未缓存的关键子资源,而服务器也不会向客户端重复推送客户端已经存在的关键子资源,从而加快了关键子资源JS/CSS的传输速度,又不会有重传导致的流量问题,提升了客户端网页的加载速度。
如图17所示,本发明第二实施例提出一种网页推送客户端,在上述图16所示的第一实施例的基础上,还包括:
记录模块600,用于记录本地缓存的变化信息,所述本地缓存的变化信息包括:客户端增加或减少一条URL对应的缓存数据。
本实施例与上述图16所示的第一实施例的区别在于,本实施例还包括客户端记录本地缓存的变化信息的方案。
具体地,其中,本地缓存的变化信息包括:客户端增加或减少一条URL对应的缓存数据。
客户端记录本地缓存的变化信息的过程具体包括:
将客户端增加的URL或者URL对应的hash值记录到增加队列中,将客户端删除的URL或者URL对应的hash值记录到移除队列中。
其中,记录URL对应的hash值可以减少流量开销。其涉及的hash算法可以根据需要行定义。以下提供一种hash算法参考如下:
本实施例通过上述方案,客户端记录本地缓存的变化信息,客户端在请求页面加载时,将本地缓存变化信息一同发送给服务器,使服务器获取客户端已有的缓存记录,服务器在向客户端返回主页面时,根据客户端的缓存变化信息得到主页面加载所需要的关键子资源中客户端不存在的关键子资源,将客户端不存在的关键子资源推送给客户端,从而避免了重复推送资源,既加快了客户端页面加载速度,也避免了不必要的流量开销;此外,服务器在获取到客户端缓存变化信息后,会将客户端的缓存变化信息对应客户端的标识记录到所述服务器的缓存中,以方便计算,提高计算效率及页面数据推送效率。
如图18所示,本发明第三实施例提出一种网页推送客户端,在上述图17所示的第二实施例的基础上,还包括:
更新模块604,用于更新本地的缓存变化信息,具体用于将所述服务器推送过的URL或者URL对应的hash值从所述增加队列或移除队列中移除。
本实施例与上述图17所示的第二实施例的区别在于,本实施例还包括客户端更新本地缓存变化信息的方案。
客户端在接收到服务器推送的关键子资源,完成页面加载显示后,将之前服务器通过Q-Push发送过的URL或对应的hash值从ADD和REMOVE队列中移除,一方面可以节省客户端缓存资源,另一方面也保证了客户端缓存变化信息的准确性,并进一步加快了客户端页面加载速度。
当下次客户端访问新的网页时,重复上述过程即可。
本实施例通过上述方案,服务器为客户端生成标识,并将所述标识下发给客户端,客户端记录本地缓存的变化信息,客户端在请求页面加载时,将本地缓存变化信息一同发送给服务器,使服务器获取客户端已有的缓存记录,服务器在向客户端返回主页面时,根据客户端的缓存变化信息得到主页面加载所需要的关键子资源中客户端不存在的关键子资源,将客户端不存在的关键子资源推送给客户端,从而避免了重复推送资源,既加快了客户端页面加载速度,也避免了不必要的流量开销;此外,服务器在获取到客户端缓存变化信息后,会将客户端的缓存变化信息对应客户端的标识记录到所述服务器的缓存中,以方便计算,提高计算效率及页面数据推送效率;客户端在接收到服务器推送的关键子资源,完成页面加载显示后,将之前服务器通过Q-Push发送过的URL或对应的hash值从ADD和REMOVE队列中移除,一方面可以节省客户端缓存资源,另一方面也保证了客户端缓存变化信息的准确性,并进一步加快了客户端页面加载速度。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (20)

1.一种网页推送方法,其特征在于,包括:
客户端向服务器发送页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
所述服务器根据所述页面加载请求获取主页面,解析所述主页面,获取所述主页面加载所需要的关键子资源;
所述服务器向所述客户端返回所述主页面,并根据所述客户端的缓存变化信息计算获取所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源,将所述客户端不存在的关键子资源推送给所述客户端;
其中,所述客户端向服务器发送页面加载请求的步骤之后还包括:
所述服务器将所述客户端的缓存变化信息对应所述客户端的标识记录到所述服务器的缓存中;
所述客户端向服务器发送页面加载请求的步骤之前还包括:
所述客户端记录本地缓存的变化信息,所述本地缓存的变化信息包括:客户端增加或减少一条URL对应的缓存数据。
2.根据权利要求1所述的方法,其特征在于,所述服务器根据所述客户端的缓存变化信息计算获取主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源,将所述客户端不存在的关键子资源推送给所述客户端的步骤包括:
所述服务器根据所述客户端的标识,从所述服务器的缓存中查找所述客户端的缓存变化信息;
根据所述客户端的缓存变化信息,计算获取主页面加载所需要的关键子资源中所述客户端已经存在的关键子资源;
依据所述客户端已经存在的关键子资源,获取所述主页面加载所需要的关键子资源中客户端不存在的关键子资源;
将所述客户端不存在的关键子资源推送给所述客户端。
3.根据权利要求1所述的方法,其特征在于,所述客户端记录本地缓存的变化信息的步骤包括:
将客户端增加的URL或者URL对应的hash值记录到增加队列中,将客户端删除的URL或者URL对应的hash值记录到移除队列中。
4.根据权利要求3所述的方法,其特征在于,还包括:
所述客户端更新本地的缓存变化信息,具体包括:
所述客户端将所述服务器推送过的URL或者URL对应的hash值从所述增加队列或移除队列中移除。
5.根据权利要求1或2所述的方法,其特征在于,所述客户端向服务器发送页面加载请求的步骤之前还包括:
所述服务器为客户端生成标识,并将所述标识下发给客户端。
6.一种网页推送方法,其特征在于,包括:
服务器接收客户端发送的页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
根据所述页面加载请求获取主页面,解析所述主页面,获取所述主页面加载所需要的关键子资源;
向所述客户端返回主页面,并根据所述客户端的缓存变化信息计算获取所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源,将所述客户端不存在的关键子资源推送给所述客户端;
其中,所述服务器接收客户端发送的页面加载请求的步骤之后还包括:
所述服务器将所述客户端的缓存变化信息对应所述客户端的标识记录到所述服务器的缓存中。
7.根据权利要求6所述的方法,其特征在于,所述服务器根据所述客户端的缓存变化信息计算获取主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源,将所述客户端不存在的关键子资源推送给所述客户端的步骤包括:
所述服务器根据所述客户端的标识,从所述服务器的缓存中查找所述客户端的缓存变化信息;
根据所述客户端的缓存变化信息,计算获取主页面加载所需要的关键子资源中所述客户端已经存在的关键子资源;
依据所述客户端已经存在的关键子资源,获取所述主页面加载所需要的关键子资源中客户端不存在的关键子资源;
将所述客户端不存在的关键子资源推送给所述客户端。
8.根据权利要求6或7所述的方法,其特征在于,所述服务器接收客户端发送的页面加载请求的步骤之前还包括:
所述服务器为客户端生成标识,并将所述标识下发给客户端。
9.一种网页推送方法,其特征在于,包括:
客户端向服务器发送页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
接收所述服务器返回的主页面,以及所述服务器推送的所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源;所述客户端不存在的关键子资源由所述服务器根据所述客户端的缓存变化信息计算获取;
显示所述主页面,并在所述主页面中加载所述主页面所需要的关键子资源,所述主页面所需要的关键子资源包括所述客户端存在的关键子资源,以及所述服务器推送的所述客户端之前不存在的关键子资源;
其中,所述客户端向服务器发送页面加载请求的步骤之前还包括:
所述客户端记录本地缓存的变化信息,所述本地缓存的变化信息包括:客户端增加或减少一条URL对应的缓存数据。
10.根据权利要求9所述的方法,其特征在于,所述客户端记录本地缓存的变化信息的步骤包括:
将客户端增加的URL或者URL对应的hash值记录到增加队列中,将客户端删除的URL或者URL对应的hash值记录到移除队列中。
11.根据权利要求10所述的方法,其特征在于,还包括:
所述客户端更新本地的缓存变化信息,具体包括:
所述客户端将所述服务器推送过的URL或者URL对应的hash值从所述增加队列或移除队列中移除。
12.根据权利要求11所述的方法,其特征在于,所述客户端向服务器发送页面加载请求的步骤之前还包括:
所述客户端接收所述服务器为客户端生成并下发的标识。
13.一种网页推送系统,其特征在于,包括:客户端及服务器,其中:
所述客户端,用于向服务器发送页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
所述服务器,用于根据所述页面加载请求获取主页面,解析所述主页面,获取所述主页面加载所需要的关键子资源;向所述客户端返回所述主页面,并根据所述客户端的缓存变化信息计算获取所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源;以及将所述客户端不存在的关键子资源推送给所述客户端;
其中,所述服务器,还用于将所述客户端的缓存变化信息对应所述客户端的标识记录到所述服务器的缓存中;
所述客户端,还用于记录本地缓存的变化信息,所述本地缓存的变化信息包括:客户端增加或减少一条URL对应的缓存数据。
14.根据权利要求13所述的系统,其特征在于,
所述服务器,还用于根据所述客户端的标识,从所述服务器的缓存中查找所述客户端的缓存变化信息;根据所述客户端的缓存变化信息,计算获取主页面加载所需要的关键子资源中所述客户端已经存在的关键子资源;依据所述客户端已经存在的关键子资源,获取所述主页面加载所需要的关键子资源中客户端不存在的关键子资源;将所述客户端不存在的关键子资源推送给所述客户端。
15.根据权利要求13所述的系统,其特征在于,
所述客户端,还用于将客户端增加的URL或者URL对应的hash值记录到增加队列中,将客户端删除的URL或者URL对应的hash值记录到移除队列中;
以及还用于更新本地的缓存变化信息,具体用于将所述服务器推送过的URL或者URL对应的hash值从所述增加队列或移除队列中移除;
所述服务器,还用于为客户端生成标识,并将所述标识下发给客户端。
16.一种网页推送服务器,其特征在于,包括:
请求接收模块,用于接收客户端发送的页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
解析模块,用于根据所述页面加载请求获取主页面,解析所述主页面,获取所述主页面加载所需要的关键子资源;
推送模块,用于向所述客户端返回主页面,并根据所述客户端的缓存变化信息计算获取所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源,将所述客户端不存在的关键子资源推送给所述客户端;
其中,所述网页推送服务器还包括:存储模块,用于将所述客户端的缓存变化信息对应所述客户端的标识记录到所述服务器的缓存中。
17.根据权利要求16所述的服务器,其特征在于,还包括:
生成发送模块,用于为客户端生成标识,并将所述标识下发给客户端。
18.根据权利要求17所述的服务器,其特征在于,所述推送模块包括:
查找单元,用于根据所述客户端的标识,从所述服务器的缓存中查找所述客户端的缓存变化信息;
计算获取单元,用于根据所述客户端的缓存变化信息,计算获取主页面加载所需要的关键子资源中所述客户端已经存在的关键子资源;依据所述客户端已经存在的关键子资源,获取所述主页面加载所需要的关键子资源中客户端不存在的关键子资源;
推送单元,用于将所述客户端不存在的关键子资源推送给所述客户端。
19.一种网页推送客户端,其特征在于,包括:
发送模块,用于向服务器发送页面加载请求,所述页面加载请求中携带有所述客户端的标识以及所述客户端的缓存变化信息;
接收模块,用于接收所述服务器返回的主页面,以及所述服务器推送的所述主页面加载所需要的关键子资源中,所述客户端不存在的关键子资源;所述客户端不存在的关键子资源由所述服务器根据所述客户端的缓存变化信息计算获取;
加载显示模块,用于显示所述主页面,并在所述主页面中加载所述主页面所需要的关键子资源,所述主页面所需要的关键子资源包括所述客户端存在的关键子资源,以及所述服务器推送的所述客户端之前不存在的关键子资源;
其中,所述网页推送客户端还包括:记录模块,用于记录本地缓存的变化信息,所述本地缓存的变化信息包括:客户端增加或减少一条URL对应的缓存数据。
20.根据权利要求19所述的客户端,其特征在于,还包括:
记录模块,还用于将客户端增加的URL或者URL对应的hash值记录到增加队列中,将客户端删除的URL或者URL对应的hash值记录到移除队列中;
更新模块,用于更新本地的缓存变化信息,具体用于将所述服务器推送过的URL或者URL对应的hash值从所述增加队列或移除队列中移除;
所述接收模块,还用于接收所述服务器为客户端生成并下发的标识。
CN201410021149.8A 2014-01-16 2014-01-16 网页推送方法、客户端、服务器及系统 Active CN104796439B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410021149.8A CN104796439B (zh) 2014-01-16 2014-01-16 网页推送方法、客户端、服务器及系统
PCT/CN2015/070746 WO2015106692A1 (en) 2014-01-16 2015-01-15 Webpage pushing method, client, server, and system
US15/203,720 US10798194B2 (en) 2014-01-16 2016-07-06 Webpage pushing method, client, server, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410021149.8A CN104796439B (zh) 2014-01-16 2014-01-16 网页推送方法、客户端、服务器及系统

Publications (2)

Publication Number Publication Date
CN104796439A CN104796439A (zh) 2015-07-22
CN104796439B true CN104796439B (zh) 2018-07-06

Family

ID=53542413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410021149.8A Active CN104796439B (zh) 2014-01-16 2014-01-16 网页推送方法、客户端、服务器及系统

Country Status (3)

Country Link
US (1) US10798194B2 (zh)
CN (1) CN104796439B (zh)
WO (1) WO2015106692A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3371961A1 (en) * 2016-01-13 2018-09-12 Samsung Electronics Co., Ltd. Method and system to decrease page load time by leveraging network latency
CN107220260B (zh) * 2016-03-22 2020-07-24 阿里巴巴集团控股有限公司 一种页面显示的方法及装置
CN107402938B (zh) * 2016-05-22 2021-07-13 阿里巴巴(中国)有限公司 页面展示方法、装置和客户端设备
CN108280111B (zh) * 2017-06-13 2020-11-24 阿里巴巴(中国)有限公司 页面处理方法、装置、用户终端以及存储介质
CN108665235B (zh) * 2018-04-27 2023-04-18 平安科技(深圳)有限公司 资源处理节点的运行方法、终端设备及介质
CN108959405B (zh) * 2018-06-06 2021-08-17 深圳市远行科技股份有限公司 数据的强一致性读取方法及终端设备
CN109190072A (zh) * 2018-09-18 2019-01-11 网宿科技股份有限公司 一种发送网页资源的方法和装置
CN111382344B (zh) * 2018-12-27 2023-04-28 阿里巴巴集团控股有限公司 为对象提供页面加载服务的方法、装置及客户端
CN110059277A (zh) * 2019-03-12 2019-07-26 平安普惠企业管理有限公司 首页加载优化方法、服务器及计算机可读存储介质
CN111061974A (zh) * 2019-11-26 2020-04-24 贝壳技术有限公司 客户端页面的加载方法及装置、页面加载方法及系统
CN112286946B (zh) * 2020-09-25 2024-01-12 长沙市到家悠享网络科技有限公司 数据处理方法、服务器和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030227A (zh) * 2007-03-13 2007-09-05 博思天地(北京)科技有限公司 一种利用记忆性缓存器显示门户主页的方法
CN101201827A (zh) * 2006-12-14 2008-06-18 阿里巴巴公司 一种网页显示的方法和系统
CN101431525A (zh) * 2007-11-06 2009-05-13 陈明杰 网络内容加载的加速方法、系统及其服务器和终端
CN102456035A (zh) * 2010-10-28 2012-05-16 金蝶软件(中国)有限公司 一种网页资源缓存控制方法、装置及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7987246B2 (en) * 2002-05-23 2011-07-26 Jpmorgan Chase Bank Method and system for client browser update
US20040103199A1 (en) * 2002-11-22 2004-05-27 Anthony Chao Method and system for client browser update from a lite cache
US7937361B2 (en) * 2006-04-28 2011-05-03 Research In Motion Limited Method of reflecting on another device a change to a browser cache on a handheld electronic device, and associated device
US8065275B2 (en) * 2007-02-15 2011-11-22 Google Inc. Systems and methods for cache optimization
US8701010B2 (en) * 2007-03-12 2014-04-15 Citrix Systems, Inc. Systems and methods of using the refresh button to determine freshness policy
US9077681B2 (en) * 2010-10-05 2015-07-07 Microsoft Technology Licensing, Llc Page loading optimization using page-maintained cache
US20120210243A1 (en) * 2011-02-11 2012-08-16 Gavin Andrew Ross Uhma Web co-navigation
CN102185923A (zh) * 2011-05-16 2011-09-14 广州市动景计算机科技有限公司 一种移动通讯设备终端网页浏览方法
US9015269B2 (en) * 2012-06-19 2015-04-21 Canon Kabushiki Kaisha Methods and systems for notifying a server with cache information and for serving resources based on it
CN103440276A (zh) * 2013-08-08 2013-12-11 星云融创(北京)信息技术有限公司 一种提高网页显示速度的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101201827A (zh) * 2006-12-14 2008-06-18 阿里巴巴公司 一种网页显示的方法和系统
CN101030227A (zh) * 2007-03-13 2007-09-05 博思天地(北京)科技有限公司 一种利用记忆性缓存器显示门户主页的方法
CN101431525A (zh) * 2007-11-06 2009-05-13 陈明杰 网络内容加载的加速方法、系统及其服务器和终端
CN102456035A (zh) * 2010-10-28 2012-05-16 金蝶软件(中国)有限公司 一种网页资源缓存控制方法、装置及系统

Also Published As

Publication number Publication date
US20160316035A1 (en) 2016-10-27
US10798194B2 (en) 2020-10-06
CN104796439A (zh) 2015-07-22
WO2015106692A1 (en) 2015-07-23

Similar Documents

Publication Publication Date Title
CN104796439B (zh) 网页推送方法、客户端、服务器及系统
US9563929B1 (en) Caching of content page layers
US10296653B2 (en) Systems and methods for accelerating web page loading
KR102294326B1 (ko) 연결 해제의 기간을 위한 애플리케이션 데이터의 프리페치
Zhang et al. New agent-based proactive migration method and system for big data environment (BDE)
US9948709B2 (en) Using resource timing data for server push in multiple web page transactions
CN108494860B (zh) Web访问系统、用于客户端的web访问方法和装置
US9563928B1 (en) Bandwidth reduction through delivery of hardware-independent graphics commands for portions of content pages
US8910132B2 (en) Client-side script bundle management system
US8990429B2 (en) HTTP-based synchronization method and apparatus
CN108280125A (zh) 页面显示的方法、装置、存储介质和电子装置
CN103092626B (zh) 基于Flex和web3D技术的富互联网应用方法
CN105210352A (zh) 基于指纹的智能内容预取
CN104798071A (zh) 在雾计算架构中使用边缘服务器改善网站性能
US20160344832A1 (en) Dynamic bundling of web components for asynchronous delivery
CN102904903B (zh) 通信系统和通信方法
US10616356B2 (en) Optimization of asynchronous pushing of web resources
US20150229733A1 (en) Web caching method and system for content distribution network
CN104714965A (zh) 静态资源去重方法、静态资源管理方法及装置
CN107197359A (zh) 视频文件缓存方法及装置
CN102567339A (zh) 一种获取起始页的方法、装置和系统
CN104077296A (zh) 处理信息的方法和服务器
US20140006918A1 (en) Method and system for web page rearrangement
CN103412898B (zh) 一种网页优化的方法及装置
CN103139252A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20221207

Address after: 1402, Floor 14, Block A, Haina Baichuan Headquarters Building, No. 6, Baoxing Road, Haibin Community, Xin'an Street, Bao'an District, Shenzhen, Guangdong 518100

Patentee after: Shenzhen Yayue Technology Co.,Ltd.

Address before: 2, 518044, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

TR01 Transfer of patent right