发明内容
本发明所要解决的技术问题是提供一种基于缓存的网络访问方法和服务器,以便在保证用户信息不被泄漏的同时提高网页缓存命中率,提高用户访问速度。
为了解决上述问题,本发明公开了一种基于缓存的网络访问方法,包括:
模拟普通用户访问WEB服务器,获取所述WEB服务器上的网页信息;
对所述获取到的网页信息进行缓存;
接收来自用户终端的访问网页的请求信息;
提取所述请求信息中包含的用户标识和请求访问网页的地址信息;
查找缓存中是否存在此用户标识登录过该访问网页的相应记录;
当不存在时,从缓存中调用该访问网页的缓存页面信息返回给所述用户终端。
优选的,还包括:
若在所述缓存中查找到所述用户标识登录过该请求访问网页的相应记录时,则不从缓存中调用该网页的缓存页面信息,而向WEB服务器获取所述访问网页的页面信息返回给所述终端。
优选的,还包括:
设置缓存状态映射表,用于记录来自用户终端的访问网页的请求信息中的用户标识及请求访问的网页地址信息;
所述查找缓存中是否存在该用户标识登录过该访问网页的相应记录,进一步包括:
根据所述请求信息中用户标识和网页地址信息查找所述缓存状态映射表中是否存在相应的记录。
优选的,所述查找缓存中是否存在该用户标识登录过该访问网页的相应记录之前,还包括:
根据预置的不缓存列表匹配所述访问网页的请求信息中的网页地址信息,若匹配,则不从缓存中调用该网页的缓存页面信息,不再执行所述查找缓存的步骤,而向WEB服务器获取所述访问网页的页面信息返回给所述终端。
优选的,所述查找缓存中是否存在此用户标识登录过该访问网页的相应记录之后,还包括:
若不存在相应记录,并且所述网页地址信息对应的网页缓存的有效期已超出阈值,则不从缓存中调用该网页的缓存页面信息,而向WEB服务器获取所述访问网页的页面信息返回给所述终端。
优选的,所述模拟普通用户访问WEB服务器,获取所述WEB服务器上的网页信息,进一步包括:
通过网页抓取工具模拟普通用户访问WEB服务器,获取所述WEB服务器上的网页信息。
优选的,所述通过网页抓取工具模拟普通用户访问WEB服务器进一步包括:
通过网页抓取工具模拟普通用户按照预制的缓存网站清单访问WEB服务器。
为解决上述问题,本发明还公开了一种基于缓存的网络服务器,包括:
网页访问模块,适于通过模拟普通用户访问WEB服务器,获取所述WEB服务器上的网页信息;
缓存模块,适于对所述获取到的网页信息进行缓存;
接收模块,适于接收来自用户终端的访问网页的请求信息;
提取模块,适于从所述网页的请求信息中提取包含的用户标识和请求访问的网页的地址信息;
验证模块,适于查找缓存中是否存在此用户标识登录过该访问网页的相应记录;当不存在时,从缓存中调用该访问网页的缓存页面信息返回给所述用户终端。
优选的,所述验证模块还适于在所述缓存中查找到所述用户标识登录过该请求访问网页的相应记录时,则不从缓存中调用该网页的缓存页面信息,而向WEB服务器获取所述访问网页的页面信息返回给终端。
优选的,所述装置还包括:
缓存状态映射表,适于记录来自用户终端的访问网页的请求信息中的用户标识及请求访问的网页地址信息;
所述验证模块根据所述请求信息中用户标识和网页地址信息查找所述缓存状态映射表中是否存在相应的记录。
优选的,所述装置还包括:
第一过滤模块,适于根据预置的不缓存列表匹配所述访问网页的请求信息中的网页地址信息,若匹配,则不从缓存中调用该网页的缓存页面信息,不再执行所述查找缓存的步骤,而向WEB服务器获取所述访问网页的页面信息返回给所述终端。
优选的,所述装置还包括:
第二过滤模块,适于当缓存中不存在当前用户标识登录过该访问网页的相应记录,并且所述网页地址信息对应的网页缓存的有效期已超出阈值,则不从缓存中调用该网页的缓存页面信息,而向WEB服务器获取所述访问网页的页面信息返回给所述终端。
优选的,所述网页访问模块进一步适于通过网页抓取工具模拟普通用户访问WEB服务器,获取所述WEB服务器上的网页信息。
优选的,所述网页访问模块进一步适于通过网页抓取工具模拟普通用户按照预置的缓存网站清单访问WEB服务器,获取所述WEB服务器上的网页信息。
优选的,所述基于缓存的网络服务器为代理服务器。
与现有技术相比,本发明具有以下优点:
考虑到现有技术通过代理服务器访问网页时,对含有用户敏感信息的网页,代理服务器无法在保证安全的同时对网页进行缓存,造成缓存命中率低下这一问题,我们提出代理服务器在缓存状态映射表中记录网页的登录状态,当收到终端的网络访问请求后,只有从未登录登录该网页的情况下,才将该网络请求对应的网页缓存发送给终端,这样一来,不但避免了用户敏感信息泄漏,而且提高了网页缓存的命中率,提高了代理服务器响应网络访问请求的性能。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明提供的一种基于缓存的网络访问方法实施例一的流程示意图,本实施例的基于缓存的网络访问方法包括以下步骤:
步骤101,模拟普通用户访问WEB服务器,获取所述WEB服务器上的网页信息。
本发明实施例中所述普通用户就是指非登录用户,比如游客或普通访客。
在本发明的另一优选实施例中,步骤101进一步包括:
通过网页抓取工具模拟普通用户访问WEB服务器,获取所述WEB服务器上的网页信息。
通过网页抓取工具,可在无人干预的情况下定期或不定期模拟普通用户访问WEB服务器,获取WEB服务器上的网页信息,不仅保证获取网页信息的及时性,而且大大降低了人力资源成本。
步骤102,对所述获取到的网页信息进行缓存。
步骤103,接收来自用户终端的访问网页的请求信息。
步骤104,提取所述请求信息中包含的用户标识和请求访问网页的地址信息。
请求信息中包含的用户标识是指能够唯一标识请求信息来源和身份的信息,例如用户终端的IP地址、网卡编号、用户账户名等。
步骤105,查找缓存中是否存在此用户标识登录过该访问网页的相应记录;当不存在时,从缓存中调用该访问网页的缓存页面信息返回给所述用户终端。
当来自用户终端的访问网页请求是登录该网页时,生成与该用户标识对应的登录记录;当收到该用户的访问该网页的请求后,首先查找是否存在相应的登录记录,只有当该登录记录不存在时,从缓存中调用该访问网页的缓存页面信息返回给所述用户终端。
本发明上述实施例中,实施缓存的网页都是没有用户登录信息的,仅当用户的访问请求不存在相应的登录记录时,才会将访问网页的缓存页面信息返回给用户终端,即保证用户信息不被泄漏,而且提高了响应速度。
在本发明的另一优选实施例中,所述方法进一步包括:若在所述缓存中查找到所述用户标识登录过该请求访问网页的相应记录时,则不从缓存中调用该网页的缓存页面信息,而向WEB服务器获取所述访问网页的页面信息返回给所述终端。
参照图2,图2示出了本发明所述一种基于缓存的网络访问方法的实施例二的流程图,所述方法具体包括:
步骤201,设置缓存状态映射表,用于记录来自用户终端的访问网页的请求信息中的用户标识及请求访问的网页地址信息。
缓存状态映射表中记录有网站标识和对应的登录状态,其数据结构示例如下:
Sina 1
Baidu 0
Sohu 0
其中,左侧为各网站的网站标识,本例中我们以网站地址中的主域名作为网站标识,如:baidu、sina。右侧与网站标识对应的是该网站的登录状态标识,其中“1”表示该网站已被用户登录过,“0”表示该网站未被登录。该登录标识是可选项,例如也可通过判断是否存在登录记录来判断用户是否登录过该网站。
步骤202,接收来自用户终端的访问网页的请求信息。
步骤203,提取所述请求信息中包含的用户标识和请求访问网页的地址信息。
步骤204,根据所述请求信息中用户标识和网页地址信息查找所述缓存状态映射表中是否存在相应的记录;当不存在时,执行步骤205;当存在时,则不从缓存中调用该网页的缓存页面信息,执行步骤206。
步骤205,从缓存中调用该访问网页的缓存页面信息返回给所述用户终端。
步骤206,向WEB服务器获取所述访问网页的页面信息返回给所述终端。
从终端的网络请求信息中提取网站主域名作为网站标识,然后根据网站标识从缓存状态映射表获取该网站标识对应的登录状态标识,若登录状态标识为“1”,则意味当前网络请求信息对应的网站之前已被用户登录。因此,在本实施例中,仅当网络请求信息在缓存状态映射表对应的记录不存在或登录状态为“0”时才会获取网页缓存作为网络应答信息,这样一来,不但提高了响应速度,同时不会影响用户的操作,也不会泄漏登录用户的隐私。
参照图3,示出了本发明提供的一种基于缓存的网络访问方法实施例三的流程示意图,本实施例的基于缓存的网络访问方法包括以下步骤:
步骤301,接收来自用户终端的访问网页的请求信息。
步骤302,提取所述请求信息中包含的用户标识和请求访问网页的地址信息。
步骤303,根据预置的不缓存列表匹配所述网页的请求信息中的网页地址信息,若匹配,执行步骤305。
不缓存列表(no-cache list)是记录不能读写缓存的域名列表。所述不缓存映射表中的域名一般包括host主机、门户类网站或者二/三级子域名等,例如网络论坛这类网站,由于内容更新快,实时性要求很高,因此不适宜进行缓存。不缓存列表所记录数据示例如下:
1:tieba.baidu.com;zhidao.baidu.com
2:bbs.sina.com.cn;chat.sina.com.cn
若网页请求信息中包含的网址信息在上述不缓存列表范围内,即表示对该网页请求不进行读取缓存的相关处理。
步骤304,若用户网页请求信息中否包含登录请求,根据网页请求信息中包含的用户标识判断对应的缓存状态映射表中是否存在相应的记录,
A1:若不存在,则于缓存映射表中生成与当前用户标识和网址信息对应的登录记录,并设置对应的登录状态标识为已登录“1”;若存在,将缓存状态映射表与当前用户标识和网址信息对应的记录的登录状态标识设置为已登录“1”;执行步骤305。
A2:若用户网页请求信息中不否包含登录请求,执行步骤306。
本实施例根据当前网页请求信息中是否包含POST信息来判断该网页请求信息是否包含登录请求。
HTTP通信协议定义了终端与服务器交互的不同方法,最基本的方法是GET和POST。GET是从服务器上获取数据,POST是向服务器传送数据。
在终端,GET方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交至服务器。
使用GET的时候,参数会显示在浏览器地址栏上,而POST则不会。
为了更好理解本发明,以下分别举例说明GET和POST方式如何向Web服务器提交请求:
以GET方式从Web服务器请求获取网页:
<FORM ACTION="http://news.sina.com"METHOD="get">
<INPUT TYPE="submit"VALUE="Get方式"></INPUT>
</FORM>
<BR>
以POST方式向Web服务器提交登录请求信息:
<FORM ACTION="http://www.baidu.com"METHOD="post">
<INPUT TYPE="text"NAME="用户名"VALUE="namel">
<INPUT TYPE="password"NAME="密码"VALUE="password1">
<INPUT TYPE="submit"VALUE="Post方式"></INPUT>
</FORM>
<BR>
包含POST的网页请求信息示例如下:
POST/http://www.baidu.com/http1.1
步骤305,不从缓存中调用该网页的缓存页面信息,,向WEB服务器获取所述访问网页的页面信息返回给所述终端。
步骤306,从缓存中调用该访问网页的缓存页面信息返回给所述用户终端。
本发明另一优选实施例中,所述方法进一步包括:对所获取的网页缓存记录有效期,若超出有效期,则重新获取对应的网页生成网页缓存。
本发明另一优选实施例中,所述方法进一步包括:服务器判断用户终端网页请求信息中的Cookie是否超出有效周期,若超出,则删除对应的网页缓存;另外,服务器定期对网页网页缓存进行更新。
在基于缓存的网页访问方法中,常见的有两种通信架构:一种是在客户端和Web服务器中间设置有代理服务器,客户端不直接向Web服务器发送网页请求,而是由代理服务器根据客户端的请求从Web服务器取回客户端所需信息返回给客户端,网页缓存也存储在代理服务器中;另一种是客户端直接向Web服务器发送请求,所获取的网页缓存存储在客户端中。在上述实施例的描述中,虽然是以代理服务器的架构进行描述,但是本领域技术人员应该理解,在实施本发明时,无论采用何种架构,网页缓存存储于代理服务器,或者存储于客户端,都是本发明所述方法在不同环境下的应用,并未超出本发明所要求保护的范围。
以上两个实施例对本发明所公开的基于缓存的网页访问方法做了详细描述,为了更好理解本发明的内容,下面通过一个具体的例子对本发明的内容做进一步详细描述:
假设目标网页wap.sina.com.cn,此页面被指定为no-cache,但是此页面短时间内并无太大变化,不足以影响用户的浏览体验;为了提高响应用户的速度,代理服务器将其网站标识sina收入缓存网站清单,并根据缓存网站清单的内容定期对包括wap.sina.com.cn的网页获取缓存并存储在代理服务器中。本例中,我们将缓存有效设定过期时间为30分钟。
当用户A访问此网页时,此时缓存还有20分钟过期,代理服务器在缓存状态映射表中并没有发现用户A此前在sina相关的页面有过登录操作,因此用户A的本次浏览命中缓存。
当用户B访问wap.sina.com.cn网页时,假设两小时前B登录过新浪邮箱,因此带有新浪的cookie;代理服务器的缓存状态映射表中发现B曾经登录过新浪相关页面,其对应的登录状态标识为“1”,因此此次访问不能命中缓存。
当用户C访问wap.sina.com.cn时,缓存还有10分钟过期。由于用户C之前没有在新浪登录过,因此用户C在缓存状态映射表中对应sina登录状态标识为未登录“0”,本次访问会命中缓存;并且服务器发现此缓存即将过期,会自动请求wap.sina.com.cn,拿到页面并更新缓存,并重新将该缓存的有效设置为此刻开始30分钟过期。
但是当用户B访问与sina无关的第三方页面时,例如搜狐,如果B没有在搜狐登录过,则一样可以使用搜狐相关的缓存。
以上对本发明所提供的一种网页标签缩微图的显示方法做了描述,下面参见上述方法实施例的内容,对本发明的公开的一种基于缓存的网络服务器进行描述:
参见图4,图4示出了本发明所述一种基于缓存的网络服务器一实施例的结构示意图,所述服务器包括:
网页访问模块410,适于通过模拟普通用户访问WEB服务器,获取所述WEB服务器上的网页信息;
缓存模块420,适于对所述获取到的网页信息进行缓存;
接收模块430,适于接收来自用户终端的访问网页的请求信息;
提取模块440,适于从所述网页的请求信息中提取包含的用户标识和请求访问的网页的地址信息;
验证模块450,适于查找缓存中是否存在此用户标识登录过该访问网页的相应记录;当不存在时,从缓存中调用该访问网页的缓存页面信息返回给所述用户终端。
优选的,所述验证模块还适于在所述缓存中查找到所述用户标识登录过该请求访问网页的相应记录时,则不从缓存中调用该网页的缓存页面信息,而向WEB服务器获取所述访问网页的页面信息返回给终端。
优选的,所述服务器还包括:
缓存状态映射表460,适于记录来自用户终端的访问网页的请求信息中的用户标识及请求访问的网页地址信息;
所述验证模块根据所述请求信息中用户标识和网页地址信息查找所述缓存状态映射表中是否存在相应的记录。
优选的,所述服务器还包括:
第一过滤模块470,适于根据预置的不缓存列表匹配所述访问网页的请求信息中的网页地址信息,若匹配,则不从缓存中调用该网页的缓存页面信息,不再执行所述查找缓存的步骤,而向WEB服务器获取所述访问网页的页面信息返回给所述终端。
优选的,所述服务器还包括:
第二过滤模块480,适于当缓存中不存在当前用户标识登录过该访问网页的相应记录,并且所述网页地址信息对应的网页缓存的有效期已超出阈值,则不从缓存中调用该网页的缓存页面信息,而向WEB服务器获取所述访问网页的页面信息返回给所述终端。
优选的,所述网页访问模块进一步适于通过网页抓取工具模拟普通用户访问WEB服务器,获取所述WEB服务器上的网页信息。
优选的,所述网页访问模块进一步适于通过网页抓取工具模拟普通用户按照预置的缓存网站清单访问WEB服务器,获取所述WEB服务器上的网页信息。
优选的,所述基于缓存的网络服务器为代理服务器。
上述本发明实施例中的方法和服务器适用于各种网络或者客户端环境中,例如可以实现在诸如个人计算机设备之类的计算机设备中,或者可以实现在诸如移动电话、移动通信设备、个人数字助理(PDA)等其他便携式电子设备或者非便携式电子设备中。因此本领域技术人员要明确的是,本发明的保护范围并不限于PC上运行浏览器中的网页访问功能,仅是出于描述的简洁和方便而在本发明实施例中采用了PC上运行浏览器中的网页访问功能进行描述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统和/或装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
而且,上文中的“和/或”表示本文既包含了“和”的关系,也包含了“或”的关系,其中:如果方案A与方案B是“和”的关系,则表示某实施例中可以同时包括方案A和方案B;如果方案A与方案B是“或”的关系,则表示某实施例中可以单独包括方案A,或者单独包括方案B。
以上对本发明所提供的一种基于缓存的网络访问方法和服务器,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是适于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。