CN106534243A - 基于http协议的缓存、请求、响应方法及相应装置 - Google Patents

基于http协议的缓存、请求、响应方法及相应装置 Download PDF

Info

Publication number
CN106534243A
CN106534243A CN201510583636.8A CN201510583636A CN106534243A CN 106534243 A CN106534243 A CN 106534243A CN 201510583636 A CN201510583636 A CN 201510583636A CN 106534243 A CN106534243 A CN 106534243A
Authority
CN
China
Prior art keywords
message
cache
content
time
http
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.)
Granted
Application number
CN201510583636.8A
Other languages
English (en)
Other versions
CN106534243B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510583636.8A priority Critical patent/CN106534243B/zh
Priority to PCT/CN2016/097998 priority patent/WO2017045538A1/zh
Publication of CN106534243A publication Critical patent/CN106534243A/zh
Application granted granted Critical
Publication of CN106534243B publication Critical patent/CN106534243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • 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]
    • 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/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了基于HTTP协议的缓存方法、请求方法、响应方法及相应装置。其中,所述缓存方法包括:获取HTTP报文,所述HTTP报文携带有内容类型字段;所述内容类型字段的对应取值用于描述所述HTTP报文中报文内容的数据类别;解析所述HTTP报文,获取该报文中所述内容类型字段的对应取值;根据所述内容类型字段的对应取值差异化设置所述HTTP报文专属的本地缓存参数;基于所述本地缓存参数对所述HTTP报文进行相应的缓存处理。

Description

基于HTTP协议的缓存、请求、响应方法及相应装置
技术领域
本申请涉及互联网领域,尤其涉及一种基于HTTP协议的缓存方法、请求方法、响应方法、缓存装置、请求装置、响应装置,以及网页访问系统。
背景技术
近年来,由于互联网技术发展迅猛,用户通过互联网进行交互的内容从以文字、图像、文件此类数据量较小的数据为主,发展为越来越多的涉及到在线视频和音频此类数据量较大的数据;另外,由于互联网用户规模急剧增长,使网络中数据流量进一步激增,给网络的带宽带来巨大的压力。为了缓解网络带宽的巨大压力,通常会在客户端和源服务器之间靠近客户端的一侧,部署代理服务器,从而通过在代理服务器上设置缓存服务对源服务器上的网络内容进行缓存,使用户就近获取网络内容。通常用户获取的网络内容是基于HTTP(超文本传输协议,Hyper Text Transfer Protocol)协议传输的,相应的,在代理服务器上设置的是基于HTTP协议的缓存服务。
HTTP协议是超文本传输协议(Hyper Text Transfer Protocol)的缩写,是互联网上应用最为广泛的一种网络协议,用于提供客户端和服务器端之间进行请求和应答的标准。HTTP协议提供一套标准的缓存机制,该缓存机制通过对基于HTTP协议的报文的指定字段进行设置实现。标准HTTP协议中,涉及缓存的指定字段有:缓存控制字段(Cache-Control字段)、缓存编译控制字段(Pragma字段)和缓存过期控制字段(Expires字段)。其中,缓存控制字段是由源服务器设置,用于指定浏览器以及代理服务器是否可以缓存该内容,同时用于指定缓存时间的值;缓存控制字段也可以由客户端设置,用于指定客户端发起的请求不使用缓存内容,而是直接获取源服务器上最新的内容;缓存编译控制字段由客户端设置,用于指定客户端发起的请求不使用缓存内容,而是直接获取源服务器上最新的内容,其优先级低于缓存控制字段对应的相同设置;缓存过期控制字段由源服务器设置,用于指定缓存时间的值,其优先级低于缓存控制字段所设置的缓存时间。HTTP协议所提供的如上所述的标准缓存机制有如下问题:
1.代理服务器无法主动设置内容的缓存时间,只能遵循源服务器的设置。例如,如果源服务器没有对内容设置缓存时间,内容将无法在代理服务器缓存,用户所需访问的内容仍旧需要源服务器返回,从而导致代理缓存命中率低、用户访问速度慢以及回源流量大等问题。
2.代理服务器不能及时更新已缓存内容,对于源服务器已经更新但尚未过期的内容,需要源服务器主动刷新代理缓存或者客户端强制刷新,否则客户端访问就会拿到过期的数据,影响内容时效性和用户体验。
发明内容
本申请提供一种基于HTTP协议的缓存方法、请求方法、响应方法、缓存装置、请求装置、响应装置及网页访问系统,以解决基于现有的HTTP协议所提供的标准缓存机制下的缓存方法不能由代理服务器主动设置缓存时间,不能由代理服务器及时更新已缓存内容的问题。
为解决上述技术问题,本申请提供的基于HTTP协议的缓存方法,包括:
获取HTTP报文,所述HTTP报文携带有内容类型字段;所述内容类型字段的对应取值用于描述所述HTTP报文中报文内容的数据类别;
解析所述HTTP报文,获取该报文中所述内容类型字段的对应取值;
根据所述内容类型字段的对应取值差异化设置所述HTTP报文专属的本地缓存参数;
基于所述本地缓存参数对所述HTTP报文进行相应的缓存处理。
优选的,在所述根据所述内容类型字段的对应取值差异化设置所述HTTP报文专属的本地缓存参数的步骤中,所述本地缓存参数包括内容二次更新概率和本地缓存时间,所述差异化设置的步骤包括:
根据所述内容类型字段的对应取值差异化设置所述内容二次更新概率,所述内容二次更新概率用于反映所述HTTP报文在源服务器被更新频率的高低;
以所述内容二次更新概率为参数,计算所述本地缓存时间,使所述本地缓存时间的长短与所述被更新频率的高低相一致。
优选的,所述根据所述内容类型字段的对应取值差异化设置所述内容二次更新概率,是指所述内容类型字段的对应取值所描述的所述HTTP报文中报文内容的数据类别能反映所述HTTP报文在原服务器被更新频率的高低,以此频率高低为依据差异化设置该HTTP报文对应的所述内容二次更新概率的取值范围,具体包括:
若所述内容类型字段的对应取值表示所述报文内容为文本消息的类型、或表示所述报文内容用于包装一个电子邮件消息的类型、或表示所述报文内容用于连接消息体的多个部分构成一个消息的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率较高,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近100%的某个区间;
若所述内容类型字段的对应取值表示所述报文内容用于传输音频及声音数据的类型时,或表示所述报文内容用于传输动态影像数据的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率较低,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近0%的某个区间;
若所述内容类型字段的对应取值表示所述报文内容用于传输静态图片数据的类型,或表示所述报文内容用于传输应用程序数据及二进制数据的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率中等,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为介于如下边界之间的某一区间:
所述取值范围的上限值设置为低于所述内容类型字段的对应取值表示文本消息类型、或表示用于包装一个电子邮件消息的类型、或表示用于连接消息体的多个部分构成一个消息的类型时所设置的所述内容二次更新概率的取值范围的最低值;
所述取值范围的下限值设置为高于所述内容类型字段的对应取值表示用于传输音频及声音数据的类型时,或表示用于传输动态影像数据的类型时所设置的所述内容二次更新概率的取值范围的最高值。
可选的,所述该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近100%的某个区间,具体是设置为>50%且≤99%的区间;
所述该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近0%的某个区间,具体是设置为<50%且≥1%的区间;
所述该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为介于如下边界之间的某一区间,具体是将所述内容二次更新概率的取值设置为50%。
可选的,执行所述以所述内容二次更新概率为参数,计算所述本地缓存时间的步骤前,执行以下步骤:
为所述本地缓存时间设置最大值,所述最大值的具体数值为60秒;
为所述本地缓存时间设置最小值,所述最小值的具体数值为1秒。
优选的,所述以所述内容二次更新概率为参数,计算所述本地缓存时间,包括:
获取所述HTTP报文所携带的用于制定缓存机制的缓存控制字段或者缓存编译控制字段或者缓存过期控制字段的对应取值;
判断所述缓存控制字段或者所述缓存过期控制字段的对应取值是否包含有效的缓存时间;
若包含,则所述本地缓存时间的计算方法是:
force_ttl=(1–A)cache_time,其中,force_ttl是所述本地缓存时间,A是所述内容二次更新概率,cache_time是由所述缓存控制字段或者所述缓存过期控制字段的对应取值所包含的所述有效的缓存时间所对应的相对时间;
若不包含,则所述本地缓存时间的计算方法是:
force_ttl=(1–A)max_default_cache_time,其中,force_ttl是所述本地缓存时间,A是所述内容二次更新概率,max_default_cache_time是为所述本地缓存时间预先设置的所述最大值。
可选的,所述基于所述本地缓存参数对所述HTTP报文进行相应的缓存处理,包括:
基于HTTP协议标准缓存机制的缓存优先级规则,设置所述本地缓存参数的优先级高于所述HTTP协议标准缓存机制的可缓存或使用缓存设置参数,且低于所述HTTP协议标准缓存机制的不可缓存或不使用缓存设置参数;
根据所述本地缓存参数设置缓存指令,并进行相应的缓存操作。
为解决上述技术问题,本申请提供的基于HTTP协议的请求方法,包括:
代理服务器接收客户端发来的HTTP请求报文,所述HTTP请求报文携带URL;
所述代理服务器根据所述URL判断本地缓存是否命中,
若未命中,则基于HTTP协议的标准缓存机制进行相应处理;
若命中,则获取已命中的缓存内容,并基于预先设置的本地代理缓存参数判断已命中的所述缓存内容是否过期,
若过期,则向源服务器发送过期回源校验指令,
若未过期,则将所述缓存内容返回给所述客户端。
可选的,所述预先设置的本地代理缓存参数,包括所述代理服务器上已缓存的HTTP报文的响应头中预设的本地代理缓存时间,所述本地代理缓存时间通过以下步骤获取:
根据所述已缓存的HTTP报文的内容类型字段的对应取值差异化设置所述HTTP报文专属的内容二次更新概率,所述内容二次更新概率用于反映其所属的HTTP报文在源服务器被更新频率的高低;
以所述内容二次更新概率为参数,计算所述本地代理缓存时间,使所述本地代理缓存时间的长短与所述被更新频率的高低相一致;
将所述本地代理缓存时间写入所述HTTP报文的响应头中的指定字段中;
将所述HTTP报文被缓存的时间作为当前缓存时间写入所述HTTP报文的响应头中的指定字段中,所述当前缓存时间格式为绝对时间。
可选的,所述基于预先设置的本地代理缓存参数判断已命中的所述缓存内容是否过期,包括:
根据已命中的所述缓存内容对应的HTTP报文的响应头,提取所述本地代理缓存时间,以及提取所述缓存内容被缓存时的所述当前缓存时间;
将所述本地代理缓存时间的格式由相对时间转换为绝对时间:force_ttl=force_ttl+proxy-save-time,其中,所述force_ttl为所述本地代理缓存时间,所述proxy-save-time为所述当前缓存时间;
判断格式转换后的所述本地代理缓存时间是否小于所述HTTP请求报文到来的时间;
若小于,则过期;
若不小于,则未过期。
为解决上述技术问题,本申请提供的基于HTTP协议的响应方法,包括:
代理服务器接收来自源服务器的HTTP响应报文;
解析所述响应报文,判断所述响应报文是否包含内容类型字段;
若不包含,则按HTTP协议的标准缓存机制进行相应的缓存处理,并结束本次响应处理;
若包含,则进入以下步骤;
获取所述内容类型字段的对应取值;
根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数;
基于所述本地代理缓存参数对所述响应报文进行相应的缓存处理,并执行相应的返回指令。
可选的,所述若不包含,则按HTTP协议的标准缓存机制进行相应的缓存处理,包括:
获取所述响应报文的缓存控制字段、缓存编译控制字段和缓存过期控制字段的对应取值;
判断所述缓存控制字段、缓存编译控制字段和缓存过期控制字段的对应取值是否包括不可缓存设置或没有设置有效的缓存时间;所述有效的缓存时间为HTTP协议标准缓存机制的缓存时间参数;
若判断结果为是,则将所述响应报文的内容返回给所述客户端,结束本次响应处理;
若判断结果为否,则缓存所述响应报文,并执行将所述响应报文对应的本地缓存报文的内容返回给所述客户端的返回指令,结束本次响应处理。
优选的,在所述根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数的步骤中,所述本地代理缓存参数包括内容二次更新概率和本地代理缓存时间,所述差异化设置的步骤包括:
根据所述内容类型字段的对应取值所描述的所述响应报文中报文内容的数据类别差异化设置所述内容二次更新概率,所述内容二次更新概率用于反映所述响应报文在源服务器被更新频率的高低;
以所述内容二次更新概率为参数,计算所述本地代理缓存时间,使所述本地代理缓存时间的长短与所述被更新频率的高低相一致。
优选的,所述根据所述内容类型字段的对应取值所描述的所述响应报文中报文内容的数据类别差异化设置所述内容二次更新概率,是指所述内容类型字段的对应取值所描述的所述响应报文中报文内容的数据类别能反映所述响应报文在原服务器被更新频率的高低,以此频率高低为依据差异化设置该响应报文对应的所述内容二次更新概率的取值范围,具体包括:
若所述内容类型字段的对应取值表示所述报文内容为文本消息的类型、或表示所述报文内容用于包装一个电子邮件消息的类型、或所述报文内容用于连接消息体的多个部分构成一个消息的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率较高,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近100%的某个区间;
若所述内容类型字段的对应取值表示所述报文内容用于传输音频及声音数据的类型时,或表示所述报文内容用于传输动态影像数据的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率较低,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近0%的某个区间;
若所述内容类型字段的对应取值表示所述报文内容用于传输静态图片数据的类型,或表示所述报文内容用于传输应用程序数据及二进制数据的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率中等,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为介于如下边界之间的某一区间:
所述取值范围的上限值设置为低于所述内容类型字段的对应取值表示文本消息类型、或表示用于包装一个电子邮件消息的类型、或表示用于连接消息体的多个部分构成一个消息的类型时所设置的所述内容二次更新概率的取值范围的最低值;
所述取值范围的下限值设置为高于所述内容类型字段的对应取值表示用于传输音频及声音数据的类型时,或表示用于传输动态影像数据的类型时所设置的所述内容二次更新概率的取值范围的最高值。
可选的,所述该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近100%的某个区间,具体是设置为>50%且≤99%的区间;
所述该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近0%的某个区间,具体是设置为<50%且≥1%的区间;
所述该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为介于如下边界之间的某一区间,具体是将所述内容二次更新概率的取值设置为50%。
可选的,执行所述以所述内容二次更新概率为参数,计算所述本地代理缓存时间的步骤前,执行以下步骤:
为所述本地代理缓存时间设置最大值,所述最大值具体数值为60秒;
为所述本地代理缓存时间设置最小值,所述最小值具体数值为1秒。
优选的,所述以所述内容二次更新概率为参数,计算所述本地代理缓存时间,包括:
获取所述响应报文所携带的用于制定缓存机制的缓存控制字段或者缓存编译控制字段或者缓存过期控制字段的对应取值;
判断所述缓存控制字段或者所述缓存过期控制字段的对应取值是否包含有效的缓存时间;
若包含,则所述本地代理缓存时间的计算方法是:
force_ttl=(1–A)cache_time,其中,force_ttl是所述本地代理缓存时间,A是所述内容二次更新概率,cache_time是由所述缓存控制字段或者所述缓存过期控制字段的对应取值所包含的所述有效的缓存时间所对应的相对时间;
若不包含,则所述本地代理缓存时间的计算方法是:
force_ttl=(1–A)max_default_cache_time,其中,force_ttl是所述本地代理缓存时间,A是所述内容二次更新概率,max_default_cache_time是为所述本地代理缓存时间预先设置的所述最大值。
可选的,所述基于所述本地代理缓存参数对所述响应报文进行相应的缓存处理,并执行相应的返回指令,包括:
将所述本地代理缓存时间写入所述响应报文的响应头中的指定字段中;
将所述响应报文被缓存的时间作为当前缓存时间写入所述响应报文的响应头中的指定字段中,所述当前缓存时间格式为绝对时间;
缓存所述响应报文;
执行所述将所述响应报文对应的本地缓存报文的内容返回给所述客户端的返回指令,结束本次响应处理。
可选的,在执行所述判断所述响应报文是否包含内容类型字段的步骤前,执行以下步骤:
获取所述响应报文携带的响应状态码;
判断所述响应状态码的类别,
若所述响应状态码是304,则执行以下步骤:
执行所述将所述响应报文对应的本地缓存报文的内容返回给所述客户端的返回指令;获取所述代理服务器接收的当前响应报文对应的新的缓存过期时间;执行更新缓存过期时间的缓存指令;结束本次响应处理;
若所述响应状态码是200,则继续执行所述判断所述响应报文是否包含内容类型字段的步骤。
可选的,所述获取所述代理服务器接收的当前响应报文对应的新的缓存过期时间,包括:
判断所述响应报文是否包含内容类型字段;
若包含,则执行所述根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数的步骤,进而获取所述本地代理缓存时间参数;
若不包含,则基于HTTP协议的标准缓存机制从所述响应报文的缓存控制字段、缓存编译控制字段或缓存过期控制字段中获取所述HTTP协议标准缓存机制的缓存时间参数;
相应的,所述执行更新缓存过期时间的缓存指令,是指更新所述响应报文对应的缓存报文的响应头中的所述本地代理缓存时间、或者更新所述响应报文对应的缓存报文的储存有所述HTTP协议标准缓存机制的缓存时间参数的相应字段,以及将接收所述响应报文的当前时间作为所述当前缓存时间更新到存储所述当前缓存时间的指定字段中。
相应的,本申请提供的基于HTTP协议的缓存装置,包括:
HTTP报文获取单元,用于获取HTTP报文,所述HTTP报文携带有内容类型字段;所述内容类型字段的对应取值用于描述所述HTTP报文中报文内容的数据类别;
HTTP报文解析单元,用于解析所述HTTP报文,获取该报文中所述内容类型字段的对应取值;
本地缓存参数设置单元,用于根据所述内容类型字段的对应取值差异化设置所述HTTP报文专属的本地缓存参数;
缓存处理单元,用于基于所述本地缓存参数对所述HTTP报文进行相应的缓存处理。
优选的,所述本地缓存参数设置单元包括:
内容二次更新概率设置子单元,用于根据所述内容类型字段的对应取值差异化设置所述内容二次更新概率,所述内容二次更新概率用于反映所述HTTP报文在源服务器被更新频率的高低;
本地缓存时间设置子单元,用于以所述内容二次更新概率为参数,计算所述本地缓存时间,使所述本地缓存时间的长短与所述被更新频率的高低相一致。
相应的,本申请提供的基于HTTP协议的请求装置,包括:
HTTP请求报文接收单元,用于代理服务器接收客户端发来的HTTP请求报文,所述HTTP请求报文携带URL;
缓存命中判断单元,用于所述代理服务器根据所述URL判断本地缓存是否命中;
缓存处理单元,用于在未命中时,基于HTTP协议的标准缓存机制进行相应处理;在命中时,获取已命中的缓存内容,并基于预先设置的本地代理缓存参数判断已命中的所述缓存内容是否过期,若过期,则向源服务器发送过期回源校验指令,若未过期,则将所述缓存内容返回给所述客户端。
相应的,本申请提供的基于HTTP协议的响应装置,包括:
响应报文接收单元,用于代理服务器接收来自源服务器的HTTP响应报文;
响应报文解析单元,用于解析所述响应报文,判断所述响应报文是否包含内容类型字段;
HTTP协议的标准缓存机制处理单元,用于若所述响应报文解析单元判断所述响应报文不包含内容类型字段,则按HTTP协议的标准缓存机制进行相应的缓存处理,并结束本次响应处理;
本地缓存规则处理单元,用于若所述响应报文解析单元判断所述响应报文包含内容类型字段,则获取所述内容类型字段的对应取值;根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数;基于所述本地代理缓存参数对所述响应报文进行相应的缓存处理,并执行相应的返回指令。
可选的,所述本地缓存规则处理单元包括:
内容类型字段解析子单元,用于获取所述内容类型字段的对应取值;
本地代理缓存参数设置子单元,用于根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数;
缓存及返回指令处理子单元,用于基于所述本地代理缓存参数对所述响应报文进行相应的缓存处理,并执行相应的返回指令。
优选的,其特征在于,所述本地代理缓存参数设置子单元包括:
内容二次更新概率设置子单元,用于根据所述内容类型字段的对应取值所描述的所述响应报文中报文内容的数据类别差异化设置所述内容二次更新概率,所述内容二次更新概率用于反映所述响应报文在源服务器被更新频率的高低;
本地代理缓存时间设置子单元,用于以所述内容二次更新概率为参数,计算所述本地代理缓存时间,使所述本地代理缓存时间的长短与所述被更新频率的高低相一致。
为解决上述技术问题,本申请提供的基于HTTP协议的网页访问系统,包括上述技术方案所述的请求装置和上述技术方案的任一所述的响应装置。
为解决上述技术问题,本申请提供的一种电子设备,包括:
显示器;
处理器;以及
存储器,所述存储器被配置成存储基于HTTP协议的缓存装置、基于HTTP协议的请求装置、基于HTTP协议的响应装置中的至少一种装置,
所述基于HTTP协议的缓存装置被所述处理器执行时,执行如下步骤:
获取HTTP报文,所述HTTP报文携带有内容类型字段;所述内容类型字段的对应取值用于描述所述HTTP报文中报文内容的数据类别;
解析所述HTTP报文,获取该报文中所述内容类型字段的对应取值;
根据所述内容类型字段的对应取值差异化设置所述HTTP报文专属的本地缓存参数;
基于所述本地缓存参数对所述HTTP报文进行相应的缓存处理;
所述基于HTTP协议的请求装置,被所述处理器执行时,执行如下步骤:
代理服务器接收客户端发来的HTTP请求报文,所述HTTP请求报文携带URL;
所述代理服务器根据所述URL判断本地缓存是否命中,
若未命中,则基于HTTP协议的标准缓存机制进行相应处理;
若命中,则获取已命中的缓存内容,并基于预先设置的本地代理缓存参数判断已命中的所述缓存内容是否过期,
若过期,则向源服务器发送过期回源校验指令,
若未过期,则将所述缓存内容返回给所述客户端;
所述基于HTTP协议的响应装置,被所述处理器执行时,执行如下步骤:
代理服务器接收来自源服务器的HTTP响应报文;
解析所述响应报文,判断所述响应报文是否包含内容类型字段;
若不包含,则按HTTP协议的标准缓存机制进行相应的缓存处理,并结束本次响应处理;
若包含,则进入以下步骤;
获取所述内容类型字段的对应取值;
根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数;
基于所述本地代理缓存参数对所述响应报文进行相应的缓存处理,并执行相应的返回指令。
本申请提供的基于HTTP协议的缓存方法、请求方法、响应方法均基于HTTP协议,并对HTTP协议所提供的标准缓存机制进行了改进,其中缓存方法的具体改进为:获取HTTP报文,通过解析所述HTTP报文获取该报文中内容类型字段(Content-Type字段)的对应取值,继而根据所述内容类型字段的对应取值差异化设置所述HTTP报文专属的本地缓存参数,并基于所述本地缓存参数对所述HTTP报文进行相应的缓存处理。所述内容类型字段由源服务器设置,用于描述HTTP报文中报文内容的数据类别,从而在待进行缓存的代理服务器或其它设备上实现了基于报文内容进行差异化设置缓存的缓存方法,相比传统基于HTTP协议的标准缓存机制的缓存方法,本申请的其中一个方面有如下优点:
1、由于标准的HTTP报文都包括内容类型字段,该字段不涉及HTTP协议的标准缓存机制,本申请所述的缓存方法仅是在遵循标准HTTP协议的基础之上进行的改进,因此本申请所述的缓存方法在遵循HTTP协议的标准缓存机制的基础上增加了由代理服务器主动设置本地缓存的方法,从而提升代理缓存的命中率,改善用户访问速度。另外,由于本申请所述的缓存方法是在遵循标准HTTP协议的基础之上进行的改进,因此本申请所述的缓存方法不仅适用于由代理服务器主动设置本地缓存的场景,还适用于HTTP协议的标准缓存机制对应的所有应用场景。
2、在本申请所述的缓存方法中,是根据内容类型字段的对应取值差异化设置其所属的HTTP报文专属的本地缓存参数,该本地缓存参数包括内容二次更新概率和本地缓存时间。由于内容类型字段的对应取值用于描述其所述的HTTP报文中报文内容的数据类别,能够反映该HTTP报文在源服务器被更新频率的高低,因此本申请所述的缓存方法所设置的本地缓存时间能够合理的控制回源校验的频度,进而确保已缓存内容及时更新,同时也控制了回源带宽成本。
附图说明
图1是本申请第一实施例提供的基于HTTP协议的缓存方法的流程示意图。
图2是第一实施例中差异化设置的步骤的具体实施方式的流程图。
图3是本申请第二实施例提供的基于HTTP协议的请求方法的流程图。
图4是本申请第三实施例提供的基于HTTP协议的响应方法的流程图。
图5是第三实施例中响应状态码识别处理的具体实施方式的流程图。
图6是第三实施例中差异化设置本地代理缓存时间的具体实施方式的流程图。
图7是本申请第四实施例提供的基于HTTP协议的缓存装置的示意图。
图8是本申请第五实施例提供的基于HTTP协议的请求装置的示意图。
图9是本申请第六实施例提供的基于HTTP协议的响应装置的示意图。
图10是本申请第七实施例提供的基于HTTP协议的网页访问系统的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请中,分别提供了一种基于HTTP协议的缓存方法、请求方法、响应方法,和相应的缓存装置、请求装置、响应装置,以及网页访问方法,在下面的实施例中逐一进行详细说明。
请参看图1,其为本申请第一实施例提供的基于HTTP协议的缓存方法的流程示意图。
所述缓存方法包括如下步骤:
步骤101:获取HTTP报文,所述HTTP报文携带有内容类型字段;所述内容类型字段的对应取值用于描述所述HTTP报文中报文内容的数据类别。
一个标准的HTTP报文,通常由一个或多个头部和可选的消息体组成。HTTP头部通常包括通用头、请求头、响应头和实体头四个部分,消息体即为储存报文内容的字段。在本实施例中获取的HTTP报文至少包括实体头及实体信息,其中,实体头包括内容类型字段(Content-Type字段),实体信息储存有该HTTP报文的报文内容。内容类型字段的对应取值用于描述所述HTTP报文中报文内容的数据类别,进而指示客户端使用合适的方式来展现或处理内容。
步骤102:解析所述HTTP报文,获取该报文中所述内容类型字段的对应取值。
在HTTP协议中,内容类型字段格式为:Content-Type:type/subtype,其中“type”的值可以分为7大类:
文本消息类型(text类型),用于标准化地表示的文本信息,文本信息可以是多种字符集和或者多种格式的;在给内容类型字段具体赋值时,以text表示具体的值;
用于连接消息体的多个部分构成一个消息的类型(multipart类型),用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;在给内容类型字段具体赋值时,以multipart表示具体的值;
用于包装一个电子邮件消息的类型(message类型),用于包装一个电子邮件(E-mail)消息,在给内容类型字段具体赋值时,以message表示具体的值;
用于传输静态图片数据的类型(image类型),用于传输静态图片数据,在给内容类型字段具体赋值时,以image表示具体的值;
用于传输应用程序数据及二进制数据的类型(application类型),用于传输应用程序数据或者二进制数据,在给内容类型字段具体赋值时,以application表示具体的值;
用于传输音频及声音数据的类型(audio类型),用于传输音频或者音声数据,在给内容类型字段具体赋值时,以audio表示具体的值;
用于传输动态影像数据的类型(video类型),用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式,在给内容类型字段具体赋值时,以video表示具体的值。
在本实施例中,通过解析内容类型字段的“type”的值获取HTTP报文中报文内容的数据类别。
步骤103:根据所述内容类型字段的对应取值差异化设置所述HTTP报文专属的本地缓存参数。
上述本地缓存参数包括内容二次更新概率和本地缓存时间。
图2是第一实施例中差异化设置的步骤的具体实施方式的流程图。在本实施例中,差异化设置的步骤包括:
步骤201:根据所述内容类型字段的对应取值差异化设置所述内容二次更新概率,所述内容二次更新概率用于反映所述HTTP报文在源服务器被更新频率的高低。
如步骤101所述,内容类型字段的“type”取值用于描述的所述HTTP报文中报文内容的数据类别,而不同数据类别的报文内容被源服务器更新的频率高低是不同的。通常,文本消息类型、用于包装一个电子邮件消息的类型和用于连接消息体的多个部分构成一个消息的类型对应的报文内容是发布文字或消息内容使用的类型,而文字和消息是最容易被源服务器更新的;用于传输静态图片数据的类型和用于传输应用程序数据及二进制数据的类型是发布图像和可执行程序使用的类型,图像和可执行程序被源服务器更新的可能性相对于文字和消息低很多;用于传输音频及声音数据的类型和用于传输动态影像数据的类型是发布音频和视频使用的类型,音频和视频内容被源服务器更新的可能性最低。因此,内容类型字段的“type”取值能反映所述HTTP报文的报文内容在原服务器被更新频率的高低。所谓差异化设置是指以此频率高低为依据差异化设置该HTTP报文对应的所述内容二次更新概率的取值范围,从而使上述二次更新概率能够反映所述HTTP报文在源服务器被更新频率的高低。本实施例差异化设置上述内容二次更新概率的具体步骤如下:
201-1)若所述内容类型字段的对应取值表示所述报文内容为文本消息的类型、或表示所述报文内容用于包装一个电子邮件消息的类型、或表示所述报文内容用于连接消息体的多个部分构成一个消息的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率较高,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近100%的某个区间。
在本实施例中,具体设置为>50%且≤99%的区间。
201-2)若所述内容类型字段的对应取值表示所述报文内容用于传输音频及声音数据的类型时,或表示所述报文内容用于传输动态影像数据的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率较低,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近0%的某个区间。
在本实施例中,具体设置为<50%且≥1%的区间。
201-3)若所述内容类型字段的对应取值表示所述报文内容用于传输静态图片数据的类型,或表示所述报文内容用于传输应用程序数据及二进制数据的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率中等,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为介于如下边界之间的某一区间:所述取值范围的上限值设置为低于所述内容类型字段的对应取值表示文本消息类型、或表示用于包装一个电子邮件消息的类型、或表示用于连接消息体的多个部分构成一个消息的类型时所设置的所述内容二次更新概率的取值范围的最低值;所述取值范围的下限值设置为高于所述内容类型字段的对应取值表示用于传输音频及声音数据的类型时,或表示用于传输动态影像数据的类型时所设置的所述内容二次更新概率的取值范围的最高值。
在本实施例中,具体是将所述内容二次更新概率的取值设置为50%。
步骤202:以所述内容二次更新概率为参数,计算所述本地缓存时间,使所述本地缓存时间的长短与所述被更新频率的高低相一致。
在说明具体计算方法前,先对HTTP协议的标准缓存机制进行说明。
HTTP协议提供一套标准的缓存机制,该缓存机制通过对基于HTTP协议的报文的指定字段进行设置实现。标准HTTP协议中,涉及缓存的指定字段有:缓存控制字段(Cache-Control字段)、缓存编译控制字段(Pragma字段)和缓存过期控制字段(Expires字段)。其中,缓存控制字段是由源服务器设置,用于指定浏览器以及代理服务器是否可以缓存该内容,同时用于指定缓存时间的值;缓存控制字段也可以由客户端设置,用于指定客户端发起的请求不使用缓存内容,而是直接获取源服务器上最新的内容;缓存编译控制字段由客户端设置,用于指定客户端发起的请求不使用缓存内容,而是直接获取源服务器上最新的内容,其优先级低于缓存控制字段对应的相同设置;缓存过期控制字段由源服务器设置,用于指定缓存时间的值,其优先级低于缓存控制字段所设置的缓存时间。
结合上述说明可知,缓存控制字段、缓存编译控制字段和缓存过期控制字段都是由源服务器或客户端进行设置的,由代理服务器或其它缓存装置根据所获取的HTTP报文的这些字段取值来进行相应的缓存处理,其中,由该些字段获取的缓存时间是进行缓存处理的关键参数。本申请所述的缓存方法,是在遵循HTTP协议标准缓存机制的基础上实现在代理服务器或其它缓存装置本地进行缓存设置的方法,关键之处就在于如何由代理服务器或其它缓存装置主动计算缓存时间参数,本实施例采用以下步骤进行计算:
202-1)获取所述HTTP报文所携带的用于制定缓存机制的缓存控制字段或者缓存编译控制字段或者缓存过期控制字段的对应取值。
在本实施例中,包括获取缓存控制字段下是否可以缓存该内容、设置缓存时间这两个取值;获取缓存编译控制字段下是否可以缓存该内容的取值;获取缓存过期控制字段下的过期时间(HTTP-date)的取值。
202-2)判断所述缓存控制字段或者所述缓存过期控制字段的对应取值是否包含有效的缓存时间。
在本实施例中,基于HTTP协议的标准缓存机制的优先级规则对在上述步骤202-1)里获取的字段取值判断是否有不可缓存该内容的设置,继而判断缓存控制字段或者缓存过期控制字段的对应取值是否包含有效的缓存时间,若包含,则获取该有效的缓存时间,其中缓存控制字段指定的缓存时间优先级高于缓存过期控制字段指定的缓存时间。
202-3)若上述步骤202-2)判断结果为包含,则所述本地缓存时间的计算方法是:
force_ttl=(1–A)cache_time,其中,force_ttl是所述本地缓存时间,A是所述内容二次更新概率,cache_time是由所述缓存控制字段或者缓存过期控制字段的对应取值所包含的所述有效的缓存时间所对应的相对时间。
上述缓存过期控制字段的对应取值所包含的所述有效的缓存时间是绝对时间格式,在计算时,需将该缓存时间转换为相对时间再进行计算。
202-4)若上述步骤202-2)判断结果为不包含,则所述本地缓存时间的计算方法是:
force_ttl=(1–A)max_default_cache_time,其中,force_ttl是所述本地缓存时间,A是所述内容二次更新概率,max_default_cache_time是为所述本地缓存时间预先设置的所述最大值。在本实施例中,该最大值设置为互联网应用通常建议的60秒。
互联网应用通常对缓存时间有一个建议的最小值,由于上述计算步骤所使用的参数A的取值范围是1%至99%,使得通过上述两个计算本地缓存时间,即force_ttl的公式得到的force_ttl可能会小于该建议的最小值,因此还需预先设置一个本地缓存时间的最小值min_default_cache_time来进行限制。在本实施例中,该最小值配置为互联网应用通常建议的1秒,当从上述两个计算force_ttl的公式得到的本地缓存时间小于该最小值时,则取该最小值为本地缓存时间。同样,若从上述两个计算force_ttl的公式得到的本地缓存时间大于本实施例所配置的上述最大值时,则取该最大值为本地缓存时间。
通过上述计算步骤,在源服务器没有设置缓存时间的情况下,代理服务器或缓存装置也可以主动设置本地缓存时间,从而不需要频繁的向源服务器获取请求内容,同时又保证缓存装置以一个合理的频度更新缓存内容,即能够合理的控制回源校验的频度。
步骤104:基于所述本地缓存参数对所述HTTP报文进行相应的缓存处理。
步骤104是缓存处理的具体步骤,包括以下两步:
104-1)基于HTTP协议标准缓存机制的缓存优先级规则,设置所述本地缓存参数的优先级高于所述HTTP协议标准缓存机制的可缓存或使用缓存设置参数,且低于所述HTTP协议标准缓存机制的不可缓存或不使用缓存设置参数。
如步骤103中对HTTP协议标准缓存机制的说明可知,有多个字段涉及缓存设置,该标准缓存机制还包括相应的缓存优先级规则。对于本申请所述的缓存方法得到的本地缓存时间,将其优先级设置为高于所述HTTP协议标准缓存机制的可缓存或使用缓存设置参数,且低于所述HTTP协议标准缓存机制的不可缓存或不使用缓存设置参数,即本地缓存时间优先级高于HTTP报文头部里缓存控制字段或者缓存过期控制字段所设置的缓存时间,其它操作则遵循HTTP协议标准缓存机制。
104-2)根据所述本地缓存参数设置缓存指令,并进行相应的缓存操作。
以本申请所述的缓存方法在上述步骤104-1)规定的缓存优先级规则下,遵循HTTP协议标准缓存机制进行相应的缓存指令设置和相应的缓存操作。
在上述的实施例中,提供了一种基于HTTP协议的缓存方法。该缓存方法在实际应用中,涉及到与客户端方向的交互,以及与源服务器的交互,相应的本申请还提供一种基于HTTP协议的请求方法。
请参看图3,其为本申请第二实施例提供的基于HTTP协议的请求方法的流程图。本实施例假定用于在客户端和源服务器之间部署代理服务器,并在代理服务器上设置缓存服务的场景,但不排除将本申请所述的请求方法应用于HTTP协议的标准缓存机制所对应的其他场景。
所述请求方法是指代理服务器对来自客户端的请求进行处理的方法,包括如下步骤:
步骤301:代理服务器接收客户端发来的HTTP请求报文,所述HTTP请求报文携带URL。
代理服务器按控制方分类,可分为正向代理和反向代理。其中,正向代理方式源服务器不感知客户端的存在,但客户端可强制绕过代理服务器的缓存内容,从源服务器获取其请求的内容;反向代理方式客户端不感知源服务器的存在,而是由代理服务器作为源服务器的客户端,并由源服务器控制代理服务器的缓存代理服务。相应的,若代理服务器以正向代理方式接收到的客户端发来的HTTP请求报文,该HTTP请求报文携带的URL(统一资源定位符,UniformResource Locator)是以源服务器为主机地址的源服务器上相应请求内容的URL;若代理服务器以反向代理方式接收到的客户端发来的HTTP请求报文,该HTTP请求报文携带的URL是以代理服务器为主机地址的代理服务器上缓存的相应内容的URL。
步骤302:所述代理服务器根据所述URL判断本地缓存是否命中。
本步骤的具体实施,应基于HTTP协议标准缓存机制,在判断本地缓存是否命中之前,先行判断HTTP请求报文的缓存控制字段、缓存编译控制字段和缓存过期控制字段的取值是否包含不使用缓存的设置,若包含则应基于HTTP协议的标准缓存机制进行相应处理,若不包含则执行上述根据所述URL判断本地缓存是否命中的步骤。这样使得代理服务器在本地进行缓存设置的优先级高于HTTP协议标准缓存机制的使用缓存设置参数,且低于HTTP协议标准缓存机制的不使用缓存设置参数。例如,请求报文头部的缓存控制字段和缓存编译控制字段均不包括不缓存(no-cache)或不使用缓存(no-store)设置,则执行本步骤所述的根据所述URL判断本地缓存是否命中。
步骤303:若步骤302判断结果为未命中,则基于HTTP协议的标准缓存机制进行相应处理。
基于HTTP协议的标准缓存机制进行相应处理具体是指以HTTP请求报文的缓存控制字段、缓存编译控制字段和缓存过期控制字段,及HTTP协议标准缓存机制涉及的其它字段或涉及的相关规则进行相应的处理。例如,对于正向代理而言,进一步判断HTTP请求报文的缓存控制字段、缓存编译控制字段或缓存过期控制字段的相应取值是否包含不使用缓存配置,进而进行相应的处理。
步骤304:若步骤302判断结果为命中,则基于预先设置的本地缓存参数进行相应处理,具体包括以下步骤:
304-1)获取已命中的缓存内容,并基于预先设置的本地代理缓存参数判断已命中的所述缓存内容是否过期。
上述预先设置的本地代理缓存参数包括所述代理服务器上已缓存的HTTP报文的响应头中预设的本地代理缓存时间,该本地代理缓存时间通过以下步骤获取:
1)根据所述已缓存的HTTP报文的内容类型字段的对应取值差异化设置所述HTTP报文专属的内容二次更新概率,所述内容二次更新概率用于反映其所属的HTTP报文在源服务器被更新频率的高低。
如本申请的第一实施例所述,内容类型字段的“type”取值用于描述的所述HTTP报文中报文内容的数据类别,而不同数据类别的报文内容被源服务器更新的频率高低是不同的,所谓差异化设置是指以此频率高低为依据差异化设置该HTTP报文对应的所述内容二次更新概率的取值范围,从而使上述二次更新概率能够反映所述HTTP报文在源服务器被更新频率的高低。
2)以所述内容二次更新概率为参数,计算所述本地代理缓存时间,使所述本地代理缓存时间的长短与所述被更新频率的高低相一致。
3)将所述本地代理缓存时间写入所述HTTP报文的响应头中的指定字段中。
4)将所述HTTP报文被缓存的时间作为当前缓存时间写入所述HTTP报文的响应头中的指定字段中,所述当前缓存时间格式为绝对时间。
上述基于预先设置的本地代理缓存参数判断已命中的所述缓存内容是否过期的步骤具体执行如下:
1)根据已命中的所述缓存内容对应的HTTP报文的响应头,提取所述本地代理缓存时间,以及提取所述缓存内容被缓存时的所述当前缓存时间。
解析已命中的所述缓存内容,获取其对应的HTTP报文的响应头的指定字段取值,从而提取上述以所述内容二次更新概率为参数计算得到的本地代理缓存时间,以及提取该缓存内容被缓存时所记录的当前缓存时间。
2)将所述本地代理缓存时间的格式由相对时间转换为绝对时间:force_ttl=force_ttl+proxy-save-time,其中,所述force_ttl为所述本地代理缓存时间,所述proxy-save-time为所述当前缓存时间。
3)判断格式转换后的所述本地代理缓存时间是否小于所述HTTP请求报文到来的时间。
4)若上述判断结果为小于,则过期。
5)若上述判断结果为不小于,则未过期。
另外,为兼容HTTP协议的标准缓存机制,在执行步骤304-1)之前,执行判断已命中的所述缓存内容对应的报文响应头是否包含内容类型字段,若没有包含则基于HTTP协议的标准缓存机制进行相应处理,并结束请求处理流程;若包含则开始执行步骤304-1)。
304-2)若步骤304-1)判断结果为过期,则向源服务器发送过期回源校验指令。
304-3)若步骤304-1)判断结果为未过期,则将所述缓存内容返回给所述客户端。
在上述的实施例中,提供了一种基于HTTP协议的请求方法,在该请求方法中,客户端不感知代理服务器上对缓存设置及处理的具体细节,返回给客户端的报文不包括响应头中的本地代理缓存参数。与该请求方法相对应,本申请还提供一种基于HTTP协议的响应方法。
请参看图4,其为本申请第三实施例提供的基于HTTP协议的响应方法的流程图。本实施例假定用于在客户端和源服务器之间部署代理服务器,在代理服务器上设置缓存服务的场景,但不排除将本申请所述的响应方法应用于HTTP协议的标准缓存机制对应的其他场景。
所述响应方法是指代理服务器对来自源服务器的响应报文进行处理的方法,包括如下步骤:
步骤401:代理服务器接收来自源服务器的HTTP响应报文。
如本申请的请求方法可知,代理服务器在接收客户端HTTP请求报文后,经过处理,会以两种形式继续向源站发送消息,一种是缓存未命中进一步向源站请求获取内容,另一种是缓存命中但过期需进行回源校验。与此相对应,源服务器返回的也有不同形式的消息,具体是哪种消息由接收的HTTP响应报文所携带的响应状态码来区分。图5是第三实施例中响应状态码识别处理的具体实施方式的流程图,具体步骤如下:
步骤501:获取所述响应报文携带的响应状态码。
步骤502:判断所述响应状态码的类别。
步骤503:若所述响应状态码是304,则说明源服务器判断内容没有改变,可以继续使用代理服务器中的缓存内容,具体包括以下步骤:执行所述将所述响应报文对应的本地缓存报文的内容返回给所述客户端的返回指令;获取所述代理服务器接收的当前响应报文对应的新的缓存过期时间;执行更新缓存过期时间的缓存指令;结束本次响应处理。
步骤504:若所述响应状态码是200,则说明该内容是第一次被代理服务器获取,或说明源服务器判断内容已更新,需要代理服务器重新缓存该内容。这种情况需要继续执行下述缓存该内容的步骤。
步骤402:解析所述响应报文,判断所述响应报文是否包含内容类型字段。
标准HTTP协议中,涉及缓存的指定字段有:缓存控制字段(Cache-Control字段)、缓存编译控制字段(Pragma字段)和缓存过期控制字段(Expires字段)。
在对上述响应状态码进行识别处理步骤后,且在上述判断所述响应报文是否包含内容类型字段步骤前,应当先行判断HTTP响应报文的缓存控制字段、缓存编译控制字段和缓存过期控制字段的取值是否包含不缓存的设置,若包含则应基于HTTP协议的标准缓存机制进行相应处理,若不包含则执行上述判断所述响应报文是否包含内容类型字段的步骤。这样使得代理服务器在本地进行缓存设置的优先级高于HTTP协议标准缓存机制的可缓存设置参数,且低于HTTP协议标准缓存机制的不可缓存设置参数。例如,响应报文头部的缓存控制字段或缓存编译控制字段均不包括不缓存(no-cache)或不使用缓存(no-store)设置,则执行本步骤所述的判断所述响应报文是否包含内容类型字段。
步骤403:若步骤402判断结果为不包含,则按HTTP协议的标准缓存机制进行相应的缓存处理,并结束本次响应处理。
所述按HTTP协议的标准缓存机制进行相应的缓存处理,具体实施方式如下:
403-1)获取所述响应报文的缓存控制字段、缓存编译控制字段和缓存过期控制字段的对应取值。
403-2)判断所述缓存控制字段、缓存编译控制字段和缓存过期控制字段的对应取值是否包括不可缓存设置或没有设置有效的缓存时间;所述有效的缓存时间为HTTP协议标准缓存机制的缓存时间参数。
403-3)若判断结果为是,则将所述响应报文的内容返回给所述客户端,结束本次响应处理。
403-4)若判断结果为否,则缓存所述响应报文,并执行将所述响应报文对应的本地缓存报文的内容返回给所述客户端的返回指令,结束本次响应处理。
步骤404:若步骤402判断结果为包含,则执行下述缓存设置的步骤;
步骤405:获取所述内容类型字段的对应取值。
步骤406:根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数。
所述本地代理缓存参数包括内容二次更新概率和本地代理缓存时间,
图6是第三实施例中差异化设置本地代理缓存时间的具体实施方式的流程图。
差异化设置本地代理缓存时间的具体步骤如下:
步骤601:根据所述内容类型字段的对应取值所描述的所述响应报文中报文内容的数据类别差异化设置所述内容二次更新概率,所述内容二次更新概率用于反映所述响应报文在源服务器被更新频率的高低。
如本申请的第一实施例所述,内容类型字段的“type”取值用于描述的所述HTTP报文中报文内容的数据类别,而不同数据类别的报文内容被源服务器更新的频率高低是不同的,“type”取值的具体含义参见第一实施例的描述。所谓差异化设置是指以此频率高低为依据差异化设置该HTTP报文对应的所述内容二次更新概率的取值范围,从而使上述二次更新概率能够反映所述HTTP报文在源服务器被更新频率的高低。具体步骤执行如下:
601-1)若所述内容类型字段的对应取值表示所述报文内容为文本消息的类型、或表示所述报文内容用于包装一个电子邮件消息的类型、或所述报文内容用于连接消息体的多个部分构成一个消息的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率较高,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近100%的某个区间。
在本实施例中,具体设置为>50%且≤99%的区间。
601-2)若所述内容类型字段的对应取值表示所述报文内容用于传输音频及声音数据的类型时,或表示所述报文内容用于传输动态影像数据的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率较低,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近0%的某个区间。
在本实施例中,具体设置为<50%且≥1%的区间。
601-3)若所述内容类型字段的对应取值表示所述报文内容用于传输静态图片数据的类型,或表示所述报文内容用于传输应用程序数据及二进制数据的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率中等,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为介于如下边界之间的某一区间:所述取值范围的上限值设置为低于所述内容类型字段的对应取值表示文本消息类型、或表示用于包装一个电子邮件消息的类型、或表示用于连接消息体的多个部分构成一个消息的类型时所设置的所述内容二次更新概率的取值范围的最低值;所述取值范围的下限值设置为高于所述内容类型字段的对应取值表示用于传输音频及声音数据的类型时,或表示用于传输动态影像数据的类型时所设置的所述内容二次更新概率的取值范围的最高值。
在本实施例中,具体是将所述内容二次更新概率的取值设置为50%。
步骤602:以所述内容二次更新概率为参数,计算所述本地代理缓存时间,使所述本地代理缓存时间的长短与所述被更新频率的高低相一致。以下是本地代理缓存时间的具体计算步骤:
602-1)获取所述响应报文所携带的用于制定缓存机制的缓存控制字段或者缓存编译控制字段或者缓存过期控制字段的对应取值。
在本实施例中,包括获取缓存控制字段下是否可以缓存该内容、设置缓存时间这两个取值;获取缓存编译控制字段下是否可以缓存该内容的取值;获取缓存过期控制字段下的过期时间(HTTP-date)取值。
602-2)判断所述缓存控制字段或者所述缓存过期控制字段的对应取值是否包含有效的缓存时间。
在本实施例中,基于HTTP协议的标准缓存机制的优先级规则对在上述步骤602-1)里获取的字段取值判断是否有不可缓存该内容的设置,继而判断缓存控制字段或者缓存过期控制字段的对应取值是否包含有效的缓存时间,若包含,则获取该有效的缓存时间,其中缓存控制字段指定的缓存时间优先级高于缓存过期控制字段指定的缓存时间。
602-3)若上述步骤602-2)判断结果为包含,则所述本地代理缓存时间的计算方法是:
force_ttl=(1–A)cache_time,其中,force_ttl是所述本地代理缓存时间,A是所述内容二次更新概率,cache_time是由所述缓存控制字段或者缓存过期控制字段的对应取值所包含的所述有效的缓存时间所对应的相对时间。
上述缓存过期控制字段的对应取值所包含的所述有效的缓存时间是绝对时间格式,在计算时,需将该缓存时间转换为相对时间再进行计算。
602-4)若上述步骤602-2)判断结果为不包含,则所述本地代理缓存时间的计算方法是:
force_ttl=(1–A)max_default_cache_time,其中,force_ttl是所述本地代理缓存时间,A是所述内容二次更新概率,max_default_cache_time是为所述本地代理缓存时间预先设置的所述最大值。在本实施例中,该最大值配置为互联网应用通常建议的60秒。
互联网应用通常对缓存时间有一个建议的最小值,由于上述计算步骤所使用的参数A的取值范围是1%至99%,因此通过上述两个计算本地代理缓存时间,即force_ttl的公式得到的force_ttl可能会小于该建议的最小值,因此还需预先设置一个本地代理缓存时间的最小值min_default_cache_time。在本实施例中,该最小值配置为互联网应用通常建议的1秒,当从上述两个计算force_ttl的公式得到的force_ttl小于该最小值时,则取该最小值为本地代理缓存时间。同样,若从上述两个计算force_ttl的公式得到的本地代理缓存时间大于本实施例所设置的上述最大值时,则取该最大值为本地代理缓存时间。
通过上述计算步骤,在源服务器没有设置缓存时间的情况下,代理服务器或缓存装置也可以主动设置本地代理缓存时间,从而不需要频繁的向源服务器获取请求内容,同时又保证代理服务器或缓存装置以一个合理的频度更新缓存内容,即能够合理的控制回源校验的频度。
步骤407:基于所述本地代理缓存参数对所述响应报文进行相应的缓存处理,并执行相应的返回指令。具体由以下步骤实现:
407-1)将所述本地代理缓存时间写入所述响应报文的响应头中的指定字段中。
407-2)将所述响应报文被缓存的时间作为当前缓存时间写入所述响应报文的响应头中的指定字段中,所述当前缓存时间格式为绝对时间。
407-3)缓存所述响应报文。
407-4)执行所述将所述响应报文对应的本地缓存报文的内容返回给所述客户端的返回指令,结束本次响应处理。
如上所述响应方法的具体实施中,通过步骤402对是否包含内容类型字段的判断,既保证了上述本地代理缓存时间参数的优先级高于HTTP协议标准缓存机制设置的相应参数,又兼容了HTTP协议的标准缓存机制的固有缓存处理。
在上述步骤503中,获取所述代理服务器接收的当前响应报文对应的新的缓存过期时间,以及执行更新缓存过期时间的缓存指令的步骤,具体包括以下步骤:
503-1)判断所述响应报文是否包含内容类型字段。
503-2)若包含,则执行所述根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数的步骤,进而获取所述本地代理缓存时间参数。
本步骤差异化设置所述本地代理缓存参数的方法同步骤601至步骤602所述的步骤,详细步骤请参考步骤601至步骤602,此处不再赘述。
503-3)若不包含,则基于HTTP协议的标准缓存机制从所述响应报文的缓存控制、缓存编译控制或缓存过期控制字段中获取所述HTTP协议标准缓存机制的缓存时间参数。
503-4)相应的,所述执行更新缓存过期时间的缓存指令,是指更新所述响应报文对应的缓存报文的响应头中的所述本地代理缓存时间、或者更新所述响应报文对应的缓存报文的储存有所述HTTP协议标准缓存机制的缓存时间参数的相应字段,以及将接收所述响应报文的当前时间作为所述当前缓存时间更新到存储所述当前缓存时间的指定字段中。
以上提供了一种基于HTTP协议的缓存方法、请求方法和响应方法,相应的,本申请还提供一种基于HTTP协议的缓存装置、请求装置和响应装置,下面进行一一描述。由于装置实施例基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
请参看图7,其为本申请第四实施例提供的基于HTTP协议的缓存装置的示意图。
本实施例的一种基于HTTP协议的缓存装置,包括:HTTP报文获取单元7-1、HTTP报文解析单元7-2、本地缓存参数设置单元7-3,以及缓存处理单元7-4。
所述HTTP报文获取单元7-1,用于获取HTTP报文,所述HTTP报文携带有内容类型字段;所述内容类型字段的对应取值用于描述所述HTTP报文中报文内容的数据类别。
所述HTTP报文解析单元7-2,用于解析所述HTTP报文,获取该报文中所述内容类型字段的对应取值。
所述本地缓存参数设置单元7-3,用于根据所述内容类型字段的对应取值差异化设置所述HTTP报文专属的本地缓存参数。
所述本地缓存参数设置单元7-3包括内容二次更新概率设置子单元7-3-1和本地缓存时间设置子单元7-3-2。
所述内容二次更新概率设置子单元7-3-1,用于根据所述内容类型字段的对应取值差异化设置所述内容二次更新概率,所述内容二次更新概率用于反映所述HTTP报文在源服务器被更新频率的高低。
所述本地缓存时间设置子单元7-3-2,用于以所述内容二次更新概率为参数,计算所述本地缓存时间,使所述本地缓存时间的长短与所述被更新频率的高低相一致。
所述缓存处理单元7-4,用于基于所述本地缓存参数对所述HTTP报文进行相应的缓存处理。
请参看图8,其为本申请第五实施例提供的基于HTTP协议的请求装置的示意图。
本实施例的一种基于HTTP协议的请求装置,包括:HTTP请求报文接收单元8-1、缓存命中判断单元8-2、缓存处理单元8-3。
所述HTTP请求报文接收单元8-1,用于代理服务器接收客户端发来的HTTP请求报文,所述HTTP请求报文携带URL。
所述缓存命中判断单元8-2,用于所述代理服务器根据所述URL判断本地缓存是否命中。
所述缓存处理单元8-3,用于在未命中时,基于HTTP协议的标准缓存机制进行相应处理;在命中时,获取已命中的缓存内容,并基于预先设置的本地代理缓存参数判断已命中的所述缓存内容是否过期,若过期,则向源服务器发送过期回源校验指令,若未过期,则将所述缓存内容返回给所述客户端。
请参看图9,其为本申请第六实施例提供的基于HTTP协议的响应装置的示意图。
本实施例的一种基于HTTP协议的响应装置,包括:响应报文接收单元9-1、响应报文解析单元9-2、HTTP协议的标准缓存机制处理单元9-3、本地缓存规则处理单元9-4。
所述响应报文接收单元9-1,用于代理服务器接收来自源服务器的HTTP响应报文。
所述响应报文解析单元9-2,用于解析所述响应报文,判断所述响应报文是否包含内容类型字段。
所述HTTP协议的标准缓存机制处理单元9-3,用于若所述响应报文解析单元判断所述响应报文不包含内容类型字段,则按HTTP协议的标准缓存机制进行相应的缓存处理,并结束本次响应处理。
所述本地缓存规则处理单元9-4,用于若所述响应报文解析单元判断所述响应报文包含内容类型字段,则获取所述内容类型字段的对应取值;根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数;基于所述本地代理缓存参数对所述响应报文进行相应的缓存处理,并执行相应的返回指令。
所述本地缓存规则处理单元9-4,包括:内容类型字段解析子单元9-4-1、本地代理缓存参数设置子单元9-4-2、缓存及返回指令处理子单元9-4-3。
所述内容类型字段解析子单元9-4-1,用于获取所述内容类型字段的对应取值。
所述本地代理缓存参数设置子单元9-4-2,用于根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数。
所述本地代理缓存参数设置子单元9-4-2,包括:内容二次更新概率设置子单元9-4-2-1和本地代理缓存时间设置子单元9-4-2-2。
所述内容二次更新概率设置子单元9-4-2-1,用于根据所述内容类型字段的对应取值所描述的所述响应报文中报文内容的数据类别差异化设置所述内容二次更新概率,所述内容二次更新概率用于反映所述响应报文在源服务器被更新频率的高低。
所述本地代理缓存时间设置子单元9-4-2-2,用于以所述内容二次更新概率为参数,计算所述本地代理缓存时间,使所述本地代理缓存时间的长短与所述被更新频率的高低相一致。
所述缓存及返回指令处理子单元9-4-3,用于基于所述本地代理缓存参数对所述响应报文进行相应的缓存处理,并执行相应的返回指令。
请参看图10,图10是本申请第七实施例提供的基于HTTP协议的网页访问系统的结构示意图。
在本实施例中,所述基于HTTP协议的网页访问系统包括:客户端1001、代理服务器1002、源服务器1003。客户端1001向代理服务器1002发起请求报文,该报文携带有一个URL,以期获取与该URL对应的内容;代理服务器1002接收到该请求报文后,对请求报文进行处理,如果本地已缓存的内容中包含与该请求相应的内容且缓存内容未过期,则将本地缓存的与该请求相应的内容返回给客户端,如果本地已缓存的内容中不包含与该请求相应的内容或缓存内容过期,则向源服务器1003继续发起请求;源服务器1003接收到代理服务器1002发来的请求后,返回给代理服务器1002一个相应的响应报文;代理服务器1002接收到该响应报文后,对响应报文进行处理,并将与客户端请求相应的内容返回给客户端。
其中,在本实施例中,代理服务器1002进一步包括本申请中所述的请求装置和响应装置,由请求装置完成上述对请求报文的处理,由响应装置完成上述对响应报文的处理。
上述分别提供了一种基于HTTP协议的缓存方法、请求方法、响应方法,及缓存装置、请求装置、响应装置、的实施例,响应的,本申请还提供一种电子设备,该电子设备包括:
显示器;
处理器;以及
存储器,所述存储器被配置成存储基于HTTP协议的缓存装置、基于HTTP协议的请求装置、基于HTTP协议的响应装置中的至少一种装置,
所述基于HTTP协议的缓存装置被所述处理器执行时,执行如下步骤:
获取HTTP报文,所述HTTP报文携带有内容类型字段;所述内容类型字段的对应取值用于描述所述HTTP报文中报文内容的数据类别;
解析所述HTTP报文,获取该报文中所述内容类型字段的对应取值;
根据所述内容类型字段的对应取值差异化设置所述HTTP报文专属的本地缓存参数;
基于所述本地缓存参数对所述HTTP报文进行相应的缓存处理;
所述基于HTTP协议的请求装置,被所述处理器执行时,执行如下步骤:
代理服务器接收客户端发来的HTTP请求报文,所述HTTP请求报文携带URL;
所述代理服务器根据所述URL判断本地缓存是否命中,
若未命中,则基于HTTP协议的标准缓存机制进行相应处理;
若命中,则获取已命中的缓存内容,并基于预先设置的本地代理缓存参数判断已命中的所述缓存内容是否过期,
若过期,则向源服务器发送过期回源校验指令,
若未过期,则将所述缓存内容返回给所述客户端;
所述基于HTTP协议的响应装置,被所述处理器执行时,执行如下步骤:
代理服务器接收来自源服务器的HTTP响应报文;
解析所述响应报文,判断所述响应报文是否包含内容类型字段;
若不包含,则按HTTP协议的标准缓存机制进行相应的缓存处理,并结束本次响应处理;
若包含,则进入以下步骤;
获取所述内容类型字段的对应取值;
根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数;
基于所述本地代理缓存参数对所述响应报文进行相应的缓存处理,并执行相应的返回指令。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (28)

1.一种基于HTTP协议的缓存方法,其特征在于,包括:
获取HTTP报文,所述HTTP报文携带有内容类型字段;所述内容类型字段的对应取值用于描述所述HTTP报文中报文内容的数据类别;
解析所述HTTP报文,获取该报文中所述内容类型字段的对应取值;
根据所述内容类型字段的对应取值差异化设置所述HTTP报文专属的本地缓存参数;
基于所述本地缓存参数对所述HTTP报文进行相应的缓存处理。
2.根据权利要求1所述的缓存方法,其特征在于,在所述根据所述内容类型字段的对应取值差异化设置所述HTTP报文专属的本地缓存参数的步骤中,所述本地缓存参数包括内容二次更新概率和本地缓存时间,所述差异化设置的步骤包括:
根据所述内容类型字段的对应取值差异化设置所述内容二次更新概率,所述内容二次更新概率用于反映所述HTTP报文在源服务器被更新频率的高低;
以所述内容二次更新概率为参数,计算所述本地缓存时间,使所述本地缓存时间的长短与所述被更新频率的高低相一致。
3.根据权利要求2所述的缓存方法,其特征在于,所述根据所述内容类型字段的对应取值差异化设置所述内容二次更新概率,是指所述内容类型字段的对应取值所描述的所述HTTP报文中报文内容的数据类别能反映所述HTTP报文在原服务器被更新频率的高低,以此频率高低为依据差异化设置该HTTP报文对应的所述内容二次更新概率的取值范围,具体包括:
若所述内容类型字段的对应取值表示所述报文内容为文本消息的类型、或表示所述报文内容用于包装一个电子邮件消息的类型、或表示所述报文内容用于连接消息体的多个部分构成一个消息的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率较高,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近100%的某个区间;
若所述内容类型字段的对应取值表示所述报文内容用于传输音频及声音数据的类型时,或表示所述报文内容用于传输动态影像数据的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率较低,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近0%的某个区间;
若所述内容类型字段的对应取值表示所述报文内容用于传输静态图片数据的类型,或表示所述报文内容用于传输应用程序数据及二进制数据的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率中等,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为介于如下边界之间的某一区间:
所述取值范围的上限值设置为低于所述内容类型字段的对应取值表示文本消息类型、或表示用于包装一个电子邮件消息的类型、或表示用于连接消息体的多个部分构成一个消息的类型时所设置的所述内容二次更新概率的取值范围的最低值;
所述取值范围的下限值设置为高于所述内容类型字段的对应取值表示用于传输音频及声音数据的类型时,或表示用于传输动态影像数据的类型时所设置的所述内容二次更新概率的取值范围的最高值。
4.根据权利要求3所述的缓存方法,其特征在于,包括:
所述该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近100%的某个区间,具体是设置为>50%且≤99%的区间;
所述该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近0%的某个区间,具体是设置为<50%且≥1%的区间;
所述该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为介于如下边界之间的某一区间,具体是将所述内容二次更新概率的取值设置为50%。
5.根据权利要求2所述的缓存方法,其特征在于,执行所述以所述内容二次更新概率为参数,计算所述本地缓存时间的步骤前,执行以下步骤:
为所述本地缓存时间设置最大值,所述最大值的具体数值为60秒;
为所述本地缓存时间设置最小值,所述最小值的具体数值为1秒。
6.根据权利要求5所述的缓存方法,其特征在于,所述以所述内容二次更新概率为参数,计算所述本地缓存时间,包括:
获取所述HTTP报文所携带的用于制定缓存机制的缓存控制字段或者缓存编译控制字段或者缓存过期控制字段的对应取值;
判断所述缓存控制字段或者所述缓存过期控制字段的对应取值是否包含有效的缓存时间;
若包含,则所述本地缓存时间的计算方法是:
force_ttl=(1–A)cache_time,其中,force_ttl是所述本地缓存时间,A是所述内容二次更新概率,cache_time是由所述缓存控制字段或者所述缓存过期控制字段的对应取值所包含的所述有效的缓存时间所对应的相对时间;
若不包含,则所述本地缓存时间的计算方法是:
force_ttl=(1–A)max_default_cache_time,其中,force_ttl是所述本地缓存时间,A是所述内容二次更新概率,max_default_cache_time是为所述本地缓存时间预先设置的所述最大值。
7.根据权利要求1所述的缓存方法,其特征在于,所述基于所述本地缓存参数对所述HTTP报文进行相应的缓存处理,包括:
基于HTTP协议标准缓存机制的缓存优先级规则,设置所述本地缓存参数的优先级高于所述HTTP协议标准缓存机制的可缓存或使用缓存设置参数,且低于所述HTTP协议标准缓存机制的不可缓存或不使用缓存设置参数;
根据所述本地缓存参数设置缓存指令,并进行相应的缓存操作。
8.一种基于HTTP协议的请求方法,其特征在于,包括:
代理服务器接收客户端发来的HTTP请求报文,所述HTTP请求报文携带URL;
所述代理服务器根据所述URL判断本地缓存是否命中,
若未命中,则基于HTTP协议的标准缓存机制进行相应处理;
若命中,则获取已命中的缓存内容,并基于预先设置的本地代理缓存参数判断已命中的所述缓存内容是否过期,
若过期,则向源服务器发送过期回源校验指令,
若未过期,则将所述缓存内容返回给所述客户端。
9.根据权利要求8所述的请求方法,其特征在于,所述预先设置的本地代理缓存参数,包括所述代理服务器上已缓存的HTTP报文的响应头中预设的本地代理缓存时间,所述本地代理缓存时间通过以下步骤获取:
根据所述已缓存的HTTP报文的内容类型字段的对应取值差异化设置所述HTTP报文专属的内容二次更新概率,所述内容二次更新概率用于反映其所属的HTTP报文在源服务器被更新频率的高低;
以所述内容二次更新概率为参数,计算所述本地代理缓存时间,使所述本地代理缓存时间的长短与所述被更新频率的高低相一致;
将所述本地代理缓存时间写入所述HTTP报文的响应头中的指定字段中;
将所述HTTP报文被缓存的时间作为当前缓存时间写入所述HTTP报文的响应头中的指定字段中,所述当前缓存时间格式为绝对时间。
10.根据权利要求9所述的请求方法,其特征在于,所述基于预先设置的本地代理缓存参数判断已命中的所述缓存内容是否过期,包括:
根据已命中的所述缓存内容对应的HTTP报文的响应头,提取所述本地代理缓存时间,以及提取所述缓存内容被缓存时的所述当前缓存时间;
将所述本地代理缓存时间的格式由相对时间转换为绝对时间:force_ttl=force_ttl+proxy-save-time,其中,所述force_ttl为所述本地代理缓存时间,所述proxy-save-time为所述当前缓存时间;
判断格式转换后的所述本地代理缓存时间是否小于所述HTTP请求报文到来的时间;
若小于,则过期;
若不小于,则未过期。
11.一种基于HTTP协议的响应方法,其特征在于,包括:
代理服务器接收来自源服务器的HTTP响应报文;
解析所述响应报文,判断所述响应报文是否包含内容类型字段;
若不包含,则按HTTP协议的标准缓存机制进行相应的缓存处理,并结束本次响应处理;
若包含,则进入以下步骤;
获取所述内容类型字段的对应取值;
根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数;
基于所述本地代理缓存参数对所述响应报文进行相应的缓存处理,并执行相应的返回指令。
12.根据权利要求11所述的响应方法,其特征在于,所述若不包含,则按HTTP协议的标准缓存机制进行相应的缓存处理,包括:
获取所述响应报文的缓存控制字段、缓存编译控制字段和缓存过期控制字段的对应取值;
判断所述缓存控制字段、缓存编译控制字段和缓存过期控制字段的对应取值是否包括不可缓存设置或没有设置有效的缓存时间;所述有效的缓存时间为HTTP协议标准缓存机制的缓存时间参数;
若判断结果为是,则将所述响应报文的内容返回给所述客户端,结束本次响应处理;
若判断结果为否,则缓存所述响应报文,并执行将所述响应报文对应的本地缓存报文的内容返回给所述客户端的返回指令,结束本次响应处理。
13.根据权利要求11所述的响应方法,其特征在于,在所述根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数的步骤中,所述本地代理缓存参数包括内容二次更新概率和本地代理缓存时间,所述差异化设置的步骤包括:
根据所述内容类型字段的对应取值所描述的所述响应报文中报文内容的数据类别差异化设置所述内容二次更新概率,所述内容二次更新概率用于反映所述响应报文在源服务器被更新频率的高低;
以所述内容二次更新概率为参数,计算所述本地代理缓存时间,使所述本地代理缓存时间的长短与所述被更新频率的高低相一致。
14.根据权利要求13所述的响应方法,其特征在于,所述根据所述内容类型字段的对应取值所描述的所述响应报文中报文内容的数据类别差异化设置所述内容二次更新概率,是指所述内容类型字段的对应取值所描述的所述响应报文中报文内容的数据类别能反映所述响应报文在原服务器被更新频率的高低,以此频率高低为依据差异化设置该响应报文对应的所述内容二次更新概率的取值范围,具体包括:
若所述内容类型字段的对应取值表示所述报文内容为文本消息的类型、或表示所述报文内容用于包装一个电子邮件消息的类型、或所述报文内容用于连接消息体的多个部分构成一个消息的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率较高,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近100%的某个区间;
若所述内容类型字段的对应取值表示所述报文内容用于传输音频及声音数据的类型时,或表示所述报文内容用于传输动态影像数据的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率较低,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近0%的某个区间;
若所述内容类型字段的对应取值表示所述报文内容用于传输静态图片数据的类型,或表示所述报文内容用于传输应用程序数据及二进制数据的类型时,该些取值所标识的相应种类的报文在原服务器被更新的频率中等,则该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为介于如下边界之间的某一区间:
所述取值范围的上限值设置为低于所述内容类型字段的对应取值表示文本消息类型、或表示用于包装一个电子邮件消息的类型、或表示用于连接消息体的多个部分构成一个消息的类型时所设置的所述内容二次更新概率的取值范围的最低值;
所述取值范围的下限值设置为高于所述内容类型字段的对应取值表示用于传输音频及声音数据的类型时,或表示用于传输动态影像数据的类型时所设置的所述内容二次更新概率的取值范围的最高值。
15.根据权利要求14所述的响应方法,其特征在于,包括:
所述该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近100%的某个区间,具体是设置为>50%且≤99%的区间;
所述该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为靠近0%的某个区间,具体是设置为<50%且≥1%的区间;
所述该些种类的报文对应的所述内容二次更新概率的取值范围分别设置为介于如下边界之间的某一区间,具体是将所述内容二次更新概率的取值设置为50%。
16.根据权利要求13所述的响应方法,其特征在于,执行所述以所述内容二次更新概率为参数,计算所述本地代理缓存时间的步骤前,执行以下步骤:
为所述本地代理缓存时间设置最大值,所述最大值具体数值为60秒;
为所述本地代理缓存时间设置最小值,所述最小值具体数值为1秒。
17.根据权利要求16所述的响应方法,其特征在于,所述以所述内容二次更新概率为参数,计算所述本地代理缓存时间,包括:
获取所述响应报文所携带的用于制定缓存机制的缓存控制字段或者缓存编译控制字段或者缓存过期控制字段的对应取值;
判断所述缓存控制字段或者所述缓存过期控制字段的对应取值是否包含有效的缓存时间;
若包含,则所述本地代理缓存时间的计算方法是:
force_ttl=(1–A)cache_time,其中,force_ttl是所述本地代理缓存时间,A是所述内容二次更新概率,cache_time是由所述缓存控制字段或者所述缓存过期控制字段的对应取值所包含的所述有效的缓存时间所对应的相对时间;
若不包含,则所述本地代理缓存时间的计算方法是:
force_ttl=(1–A)max_default_cache_time,其中,force_ttl是所述本地代理缓存时间,A是所述内容二次更新概率,max_default_cache_time是为所述本地代理缓存时间预先设置的所述最大值。
18.根据权利要求13所述的响应方法,其特征在于,所述基于所述本地代理缓存参数对所述响应报文进行相应的缓存处理,并执行相应的返回指令,包括:
将所述本地代理缓存时间写入所述响应报文的响应头中的指定字段中;
将所述响应报文被缓存的时间作为当前缓存时间写入所述响应报文的响应头中的指定字段中,所述当前缓存时间格式为绝对时间;
缓存所述响应报文;
执行所述将所述响应报文对应的本地缓存报文的内容返回给所述客户端的返回指令,结束本次响应处理。
19.根据权利要求12或权利要求18所述的响应方法,其特征在于,在执行所述判断所述响应报文是否包含内容类型字段的步骤前,执行以下步骤:
获取所述响应报文携带的响应状态码;
判断所述响应状态码的类别,
若所述响应状态码是304,则执行以下步骤:
执行所述将所述响应报文对应的本地缓存报文的内容返回给所述客户端的返回指令;获取所述代理服务器接收的当前响应报文对应的新的缓存过期时间;执行更新缓存过期时间的缓存指令;结束本次响应处理;
若所述响应状态码是200,则继续执行所述判断所述响应报文是否包含内容类型字段的步骤。
20.根据权利要求书19所述的响应方法,其特征在于,所述获取所述代理服务器接收的当前响应报文对应的新的缓存过期时间,包括:
判断所述响应报文是否包含内容类型字段;
若包含,则执行所述根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数的步骤,进而获取所述本地代理缓存时间参数;
若不包含,则基于HTTP协议的标准缓存机制从所述响应报文的缓存控制字段、缓存编译控制字段或缓存过期控制字段中获取所述HTTP协议标准缓存机制的缓存时间参数;
相应的,所述执行更新缓存过期时间的缓存指令,是指更新所述响应报文对应的缓存报文的响应头中的所述本地代理缓存时间、或者更新所述响应报文对应的缓存报文的储存有所述HTTP协议标准缓存机制的缓存时间参数的相应字段,以及将接收所述响应报文的当前时间作为所述当前缓存时间更新到存储所述当前缓存时间的指定字段中。
21.一种基于HTTP协议的缓存装置,其特征在于,包括:
HTTP报文获取单元,用于获取HTTP报文,所述HTTP报文携带有内容类型字段;所述内容类型字段的对应取值用于描述所述HTTP报文中报文内容的数据类别;
HTTP报文解析单元,用于解析所述HTTP报文,获取该报文中所述内容类型字段的对应取值;
本地缓存参数设置单元,用于根据所述内容类型字段的对应取值差异化设置所述HTTP报文专属的本地缓存参数;
缓存处理单元,用于基于所述本地缓存参数对所述HTTP报文进行相应的缓存处理。
22.根据权利要求21所述的缓存装置,其特征在于,所述本地缓存参数设置单元包括:
内容二次更新概率设置子单元,用于根据所述内容类型字段的对应取值差异化设置所述内容二次更新概率,所述内容二次更新概率用于反映所述HTTP报文在源服务器被更新频率的高低;
本地缓存时间设置子单元,用于以所述内容二次更新概率为参数,计算所述本地缓存时间,使所述本地缓存时间的长短与所述被更新频率的高低相一致。
23.一种基于HTTP协议的请求装置,其特征在于,包括:
HTTP请求报文接收单元,用于代理服务器接收客户端发来的HTTP请求报文,所述HTTP请求报文携带URL;
缓存命中判断单元,用于所述代理服务器根据所述URL判断本地缓存是否命中;
缓存处理单元,用于在未命中时,基于HTTP协议的标准缓存机制进行相应处理;在命中时,获取已命中的缓存内容,并基于预先设置的本地代理缓存参数判断已命中的所述缓存内容是否过期,若过期,则向源服务器发送过期回源校验指令,若未过期,则将所述缓存内容返回给所述客户端。
24.一种基于HTTP协议的响应装置,其特征在于,包括:
响应报文接收单元,用于代理服务器接收来自源服务器的HTTP响应报文;
响应报文解析单元,用于解析所述响应报文,判断所述响应报文是否包含内容类型字段;
HTTP协议的标准缓存机制处理单元,用于若所述响应报文解析单元判断所述响应报文不包含内容类型字段,则按HTTP协议的标准缓存机制进行相应的缓存处理,并结束本次响应处理;
本地缓存规则处理单元,用于若所述响应报文解析单元判断所述响应报文包含内容类型字段,则获取所述内容类型字段的对应取值;根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数;基于所述本地代理缓存参数对所述响应报文进行相应的缓存处理,并执行相应的返回指令。
25.根据权利要求24所述的响应装置,其特征在于,所述本地缓存规则处理单元包括:
内容类型字段解析子单元,用于获取所述内容类型字段的对应取值;
本地代理缓存参数设置子单元,用于根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数;
缓存及返回指令处理子单元,用于基于所述本地代理缓存参数对所述响应报文进行相应的缓存处理,并执行相应的返回指令。
26.根据权利要求25所述的响应装置,其特征在于,所述本地代理缓存参数设置子单元包括:
内容二次更新概率设置子单元,用于根据所述内容类型字段的对应取值所描述的所述响应报文中报文内容的数据类别差异化设置所述内容二次更新概率,所述内容二次更新概率用于反映所述响应报文在源服务器被更新频率的高低;
本地代理缓存时间设置子单元,用于以所述内容二次更新概率为参数,计算所述本地代理缓存时间,使所述本地代理缓存时间的长短与所述被更新频率的高低相一致。
27.一种基于HTTP协议的网页访问系统,其特征在于,包括权利要求23所述的请求装置和权利要求24至26任一所述的响应装置。
28.一种电子设备,其特征在于,包括:
显示器;
处理器;以及
存储器,所述存储器被配置成存储基于HTTP协议的缓存装置、基于HTTP协议的请求装置、基于HTTP协议的响应装置中的至少一种装置,
所述基于HTTP协议的缓存装置被所述处理器执行时,执行如下步骤:
获取HTTP报文,所述HTTP报文携带有内容类型字段;所述内容类型字段的对应取值用于描述所述HTTP报文中报文内容的数据类别;
解析所述HTTP报文,获取该报文中所述内容类型字段的对应取值;
根据所述内容类型字段的对应取值差异化设置所述HTTP报文专属的本地缓存参数;
基于所述本地缓存参数对所述HTTP报文进行相应的缓存处理;
所述基于HTTP协议的请求装置,被所述处理器执行时,执行如下步骤:
代理服务器接收客户端发来的HTTP请求报文,所述HTTP请求报文携带URL;
所述代理服务器根据所述URL判断本地缓存是否命中,
若未命中,则基于HTTP协议的标准缓存机制进行相应处理;
若命中,则获取已命中的缓存内容,并基于预先设置的本地代理缓存参数判断已命中的所述缓存内容是否过期,
若过期,则向源服务器发送过期回源校验指令,
若未过期,则将所述缓存内容返回给所述客户端;
所述基于HTTP协议的响应装置,被所述处理器执行时,执行如下步骤:
代理服务器接收来自源服务器的HTTP响应报文;
解析所述响应报文,判断所述响应报文是否包含内容类型字段;
若不包含,则按HTTP协议的标准缓存机制进行相应的缓存处理,并结束本次响应处理;
若包含,则进入以下步骤;
获取所述内容类型字段的对应取值;
根据所述内容类型字段的对应取值差异化设置所述响应报文专属的本地代理缓存参数;
基于所述本地代理缓存参数对所述响应报文进行相应的缓存处理,并执行相应的返回指令。
CN201510583636.8A 2015-09-14 2015-09-14 基于http协议的缓存、请求、响应方法及相应装置 Active CN106534243B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510583636.8A CN106534243B (zh) 2015-09-14 2015-09-14 基于http协议的缓存、请求、响应方法及相应装置
PCT/CN2016/097998 WO2017045538A1 (zh) 2015-09-14 2016-09-05 基于http协议的缓存、请求、响应方法及相应装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510583636.8A CN106534243B (zh) 2015-09-14 2015-09-14 基于http协议的缓存、请求、响应方法及相应装置

Publications (2)

Publication Number Publication Date
CN106534243A true CN106534243A (zh) 2017-03-22
CN106534243B CN106534243B (zh) 2020-02-18

Family

ID=58288596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510583636.8A Active CN106534243B (zh) 2015-09-14 2015-09-14 基于http协议的缓存、请求、响应方法及相应装置

Country Status (2)

Country Link
CN (1) CN106534243B (zh)
WO (1) WO2017045538A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108280111A (zh) * 2017-06-13 2018-07-13 广州市动景计算机科技有限公司 页面处理方法、装置、用户终端以及存储介质
CN108282510A (zh) * 2017-06-13 2018-07-13 广州市动景计算机科技有限公司 缓存资源处理方法、装置、用户终端以及存储介质
CN109218395A (zh) * 2018-08-01 2019-01-15 阿里巴巴集团控股有限公司 缓存页面的分类、获取方法及装置和电子设备
CN109547421A (zh) * 2018-11-08 2019-03-29 锐捷网络股份有限公司 一种审计url的方法及装置
CN109600403A (zh) * 2017-09-30 2019-04-09 北京国双科技有限公司 一种发送信息的方法及装置
CN110472169A (zh) * 2019-07-12 2019-11-19 平安普惠企业管理有限公司 缓存配置方法、装置、计算机设备和存储介质
CN112055020A (zh) * 2020-09-04 2020-12-08 北京明朝万达科技股份有限公司 报文筛选方法、装置及数据传输系统
CN112995291A (zh) * 2021-02-05 2021-06-18 厦门市美亚柏科信息股份有限公司 一种基于代理的http报文采集方法、终端设备及存储介质
US20220407840A1 (en) * 2021-06-17 2022-12-22 Prosimo Inc Protocol Switching For Connections To Zero-Trust Proxy
CN117555822A (zh) * 2024-01-10 2024-02-13 深圳市雁联计算系统有限公司 一种通用缓存方法及装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110263010B (zh) * 2019-05-31 2023-05-02 广东睿江云计算股份有限公司 一种缓存文件自动更新方法及装置
CN110427323B (zh) * 2019-07-29 2022-12-02 天津车之家数据信息技术有限公司 一种应用测试方法、装置、代理服务器和系统
CN110489063B (zh) * 2019-08-27 2023-12-19 北京奇艺世纪科技有限公司 缓存过期时间的设置方法、装置、电子设备及存储介质
CN113055494B (zh) * 2021-03-30 2022-11-29 中国工商银行股份有限公司 通讯方法及通讯装置
CN114938393B (zh) * 2022-05-06 2024-04-19 中富通集团股份有限公司 一种机房数据交互方法及系统和存储介质
CN117149719B (zh) * 2023-07-31 2024-04-30 云达信息技术有限公司 基于web架构的服务端数据处理、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090217301A1 (en) * 2008-02-21 2009-08-27 Microsoft Corporation Identity persistence via executable scripts
CN102026290A (zh) * 2010-12-16 2011-04-20 华为终端有限公司 一种无线移动网关及该无线移动网关响应用户访问的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965968B1 (en) * 2003-02-27 2005-11-15 Finjan Software Ltd. Policy-based caching
CN102111449A (zh) * 2011-02-23 2011-06-29 北京蓝汛通信技术有限责任公司 一种更新数据的方法、装置和系统
CN102170479B (zh) * 2011-05-21 2013-12-18 华为数字技术(成都)有限公司 Web缓存的更新方法及Web缓存的更新装置
CN103067467B (zh) * 2012-12-21 2016-08-03 深圳市深信服电子科技有限公司 缓存方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090217301A1 (en) * 2008-02-21 2009-08-27 Microsoft Corporation Identity persistence via executable scripts
CN102026290A (zh) * 2010-12-16 2011-04-20 华为终端有限公司 一种无线移动网关及该无线移动网关响应用户访问的方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108282510A (zh) * 2017-06-13 2018-07-13 广州市动景计算机科技有限公司 缓存资源处理方法、装置、用户终端以及存储介质
CN108280111B (zh) * 2017-06-13 2020-11-24 阿里巴巴(中国)有限公司 页面处理方法、装置、用户终端以及存储介质
CN108280111A (zh) * 2017-06-13 2018-07-13 广州市动景计算机科技有限公司 页面处理方法、装置、用户终端以及存储介质
CN109600403A (zh) * 2017-09-30 2019-04-09 北京国双科技有限公司 一种发送信息的方法及装置
TWI743487B (zh) * 2018-08-01 2021-10-21 開曼群島商創新先進技術有限公司 快取頁面的分類、獲取方法及裝置和電子設備
CN109218395A (zh) * 2018-08-01 2019-01-15 阿里巴巴集团控股有限公司 缓存页面的分类、获取方法及装置和电子设备
CN109218395B (zh) * 2018-08-01 2020-05-12 阿里巴巴集团控股有限公司 缓存页面的分类、获取方法及装置和电子设备
CN109547421A (zh) * 2018-11-08 2019-03-29 锐捷网络股份有限公司 一种审计url的方法及装置
CN110472169A (zh) * 2019-07-12 2019-11-19 平安普惠企业管理有限公司 缓存配置方法、装置、计算机设备和存储介质
CN112055020A (zh) * 2020-09-04 2020-12-08 北京明朝万达科技股份有限公司 报文筛选方法、装置及数据传输系统
CN112995291A (zh) * 2021-02-05 2021-06-18 厦门市美亚柏科信息股份有限公司 一种基于代理的http报文采集方法、终端设备及存储介质
CN112995291B (zh) * 2021-02-05 2023-02-21 厦门市美亚柏科信息股份有限公司 一种基于代理的http报文采集方法、终端设备及存储介质
US20220407840A1 (en) * 2021-06-17 2022-12-22 Prosimo Inc Protocol Switching For Connections To Zero-Trust Proxy
US11811734B2 (en) * 2021-06-17 2023-11-07 Prosimo Inc Protocol switching for connections to zero-trust proxy
CN117555822A (zh) * 2024-01-10 2024-02-13 深圳市雁联计算系统有限公司 一种通用缓存方法及装置
CN117555822B (zh) * 2024-01-10 2024-06-14 深圳市雁联计算系统有限公司 一种通用缓存方法及装置

Also Published As

Publication number Publication date
CN106534243B (zh) 2020-02-18
WO2017045538A1 (zh) 2017-03-23

Similar Documents

Publication Publication Date Title
CN106534243A (zh) 基于http协议的缓存、请求、响应方法及相应装置
US8321502B2 (en) Method for optimizing a web content proxy server and devices thereof
US9292467B2 (en) Mobile resource accelerator
CN103942225B (zh) 一种混合型应用客户端的资源调用方法、客户端及系统
US9817800B2 (en) Method and apparatus for reducing page load time in communication system
US20180019961A1 (en) Message processing method, processing server, terminal, and storage medium
US8990429B2 (en) HTTP-based synchronization method and apparatus
CN104798071A (zh) 在雾计算架构中使用边缘服务器改善网站性能
CN102082817A (zh) 用于确保用户代理信息传输的方法和设备
JP2019506696A (ja) 資源取得方法および関係した装置
CN102882974A (zh) 一种通过网站识别版本号节省网站访问资源的方法
WO2015039559A1 (zh) 页面重定向方法、路由设备、终端设备及系统
CN113452780B (zh) 针对客户端的访问请求处理方法、装置、设备及介质
US9503541B2 (en) Fast mobile web applications using cloud caching
CN108153761A (zh) 访问网络图片、以及响应网络图片访问的方法、装置
US20150128028A1 (en) Methods for extending a selector application programming interface and devices thereof
US20130227004A1 (en) Methods for optimizing a web content proxy server and devices thereof
CN103401946A (zh) Http上传加速方法和系统
WO2020056850A1 (zh) 一种基于http协议的数据请求方法和服务器
CN102932358B (zh) 基于内容分发网络的第三方文件改写加速分发方法和装置
CN105279034B (zh) 一致性缓存控制系统和方法
US10116726B2 (en) Methods for bundling images and devices thereof
CN109067860A (zh) 一种移动端消息处理方法及相关装置
CN106161623A (zh) 缓存服务器、更新服务器及数据更新方法
CN103546829A (zh) 一种视频业务处理方法及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant