一种Web信息系统中传递消息的方法及Web服务器的制造方法
【技术领域】
[0001]本发明涉及计算机Web信息系统领域,尤其涉及一种Web信息系统中传递消息的方法及Web服务器。
【背景技术】
[0002]现阶段的http协议采用的服务是无状态的,但很多Web服务的应用需求是“有状态的”。目前,Web信息系统“有状态”的服务的典型应用是在线购物网站的购物篮服务。
[0003]于是,在现有技术中,一种技术方案为第三层WEB业务应用容器层构建一个sess1n元素与第一层的cookie元素组合,从而实现了目前Web信息系统“有状态”的服务,另一种方案为通过url重写技术来实现目前Web信息系统“有状态”的服务。
[0004]然而,现有两种技术方案的实现均需要服务器给每个用户维持一个会话(sess1n),而且还需要保持一段不短的时间才会释放内存,并发用户越多,所耗内存容量越大,因此,随着用户数的急剧增多,上述两种现有技术均存在面临有限内存的问题。在一段时间内并发数达到一定量,内存将来不及释放而全部占用,造成系统拥塞而拒绝访问。从而可以看出,现有技术方案在并发用户较多时占用内存较大,会造成Web系统拥塞而拒绝访问。
【发明内容】
[0005]本发明实施例通过提供一种Web信息系统中传递消息的方法及Web服务器,解决了现有技术在并发用户较多时占用内存较大,会造成Web系统拥塞而拒绝访问的技术问题。
[0006]第一方面,本发明通过实施例提供了一种Web信息系统中传递消息的方法,应用于Web服务器,所述Web服务器能够与Web客户端进行信息交互,所述方法包括如下步骤:对Web客户端发送的通行证进行第一验证;若所述第一验证通过,将第一消息以所述通行证中的唯一凭证号为标示,保存到所述Web服务器的指定位置,其中,所述第一消息为需要交换或者需要向后续页面传递的消息;当所述Web客户端需要所述第一消息时,依据所述唯一凭证号从所述指定位置提取所述第一消息。
[0007]优选的,在所述对Web客户端发送的通行证进行第一验证之前,所述方法还包括:接收到来自所述Web客户端的登陆请求,所述登陆请求包括请求用户的用户名和密码;判断所述用户名和所述密码是否正确,获得一判断结果;在所述判断结果表明所述用户名和所述密码均正确时,生成与所述请求用户对应的所述唯一凭证号;保存与所述唯一凭证号对应的凭证到所述指定位置,以及将所述唯一凭证号发送给所述Web客户端。
[0008]优选的,所述对Web客户端发送的通行证进行第一验证,包括:接收所述通行证;若从所述通行证中获取到所述唯一凭证号,则检查所述指定位置是否保存有与所述唯一凭证号对应的凭证,若没有获取到所述唯一凭证号,则为所述第一验证失败;其中,检查结果为是时为所述第一验证通过,否则为所述第一验证失败。
[0009]优选的,所述对Web客户端发送的通行证进行第一验证,还包括:检测当前IP是否与所述指定位置保存的原始登陆IP是否一致;其中,检测结果表明所述当前IP与所述原始登陆IP —致,且所述指定位置保存有与所述唯一凭证号对应的凭证时表明所述第一验证通过,否则为所述第一验证失败。
[0010]优选的,所述若所述第一验证通过,将第一消息以所述通行证中的唯一凭证号为标示,保存到所述Web服务器的指定位置,包括:若所述第一验证通过,将所述第一消息写入到键值对的对象中,以生成消息键值对,其中,所述第一消息在所述消息键值对中以所述唯一凭证号为标示;保存所述键值对到所述Web服务器的关系数据库或NoSQL数据库中。
[0011]优选的,所述当所述Web客户端需要所述第一消息时,依据所述唯一凭证号从所述指定位置提取所述第一消息,包括:当所述Web客户端需要所述第一消息时,接收来自所述Web客户端的所述通行证;对所述通行证进行第二验证,其中,所述第二验证为与所述第一验证相同的验证方式;若所述第二验证通过,从所述关系数据库或所述NoSQL数据库提取所述键值对;将所述键值对还原为所述第一消息。
[0012]第二方面,本发明通过实施例提供了一种Web服务器,所述Web服务器能够与Web客户端进行信息交互,所述Web服务器包括:第一验证单元,用于对Web客户端发送的通行证进行第一验证;第一保存单元,用于若所述第一验证通过,将第一消息以所述通行证中的唯一凭证号为标示,保存到所述Web服务器的指定位置,其中,所述第一消息为需要交换或者需要向后续页面传递的消息;提取单元,用于当所述Web客户端需要所述第一消息时,依据所述唯一凭证号从所述指定位置提取所述第一消息。
[0013]优选的,所述Web服务器还包括:接收单元,用于接收到来自所述Web客户端的登陆请求,所述登陆请求包括请求用户的用户名和密码;判断单元,用于判断所述用户名和所述密码是否正确,获得一判断结果;生成单元,用于在所述判断结果表明所述用户名和所述密码均正确时,生成与所述请求用户对应的所述唯一凭证号;第二保存单元,用于保存与所述唯一凭证号对应的凭证到所述指定位置,以及将所述唯一凭证号发送给所述Web客户端。
[0014]优选的,所述第一验证单元,具体用于:接收所述通行证;若从所述通行证中获取到所述唯一凭证号,则检查所述指定位置是否保存有与所述唯一凭证号对应的凭证,若没有获取到所述唯一凭证号,则为所述第一验证失败;其中,检查结果为是时为所述第一验证通过,否则为所述第一验证失败。
[0015]优选的,所述第一验证单元,具体还用于:检测当前IP是否与所述指定位置保存的原始登陆IP是否一致;其中,检测结果表明所述当前IP与所述原始登陆IP —致,且所述指定位置保存有与所述唯一凭证号对应的凭证时表明所述第一验证通过,否则为所述第一验证失败。
[0016]优选的,所述第一保存单元,具体用于:若所述第一验证通过,将所述第一消息写入到键值对的对象中,以生成消息键值对,其中,所述第一消息在所述消息键值对以所述唯一凭证号为标示;保存所述键值对到所述Web服务器的关系数据库或NoSQL数据库中。
[0017]优选的,所述提取单元,具体用于:当所述Web客户端需要所述第一消息时,接收来自所述Web客户端的所述通行证;对所述通行证进行第二验证,其中,所述第二验证为与所述第一验证相同的验证方式;若所述第二验证通过,从所述关系数据库或所述NoSQL数据库提取所述键值对;将所述键值对还原为所述第一消息。
[0018]本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0019]本发明所采用的技术方案是依据可系列化的消息及通行证策略的消息传递模型,以唯一凭证号为标示对需要交换或者需要向后续页面传递的消息存入Web服务器的数据库,需要时直接凭借唯一凭证号从数据库中获取消息,取消了 Web信息系统中sess1n机制,从而不需要每个用户维持一个sess1n,极大地减少了内存消耗。解决了现有技术方案占用内存较大,而导致的在并发用户较多时会造成系统拥塞而拒绝访问,进而提升了系统的并发能力。
【附图说明】
[0020]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0021]图1为本发明实施例中Web信息系统中传递消息的方法的流程图;
[0022]图2为本发明实施例中