一种Web推送方法及装置
技术领域
本申请涉及通信技术领域,尤其涉及一种Web推送方法及装置。
背景技术
Web推送是网络设备中的一种常用功能,可以通过向用户推送Web页面,达到向用户植入广告或进行安全提示的目的。目前,网络设备在接收到来自客户端设备的HTTP报文后,可以构造携带有推送信息的回应报文返回给客户端设备以实现Web推送。然而,在这样的实现方式中,网络设备接收到的HTTP报文可能只是采用HTTP协议传输的报文,客户端设备在接收到网络设备返回的回应报文后,可能无法识别,大大降低了Web推送的成功率。
发明内容
有鉴于此,本申请提供一种网页Web推送方法,以解决现有技术中Web推送成功率低下这一问题。
具体地,本申请是通过如下技术方案实现的:
本申请提供一种网页Web推送方法,所述方法应用在网络设备上,包括:
接收客户端设备发送的超文本传送协议HTTP请求报文;
判断所述HTTP请求报文的类型是否为预设类型;
若是预设类型,则判断所述HTTP请求报文是否有效;
当所述HTTP请求报文有效时,推送Web页面到所述客户端设备。
可选的,所述判断所述HTTP请求报文是否有效,包括:
判断所述HTTP请求报文的URL字段是否指向目录;
判断所述HTTP请求报文请求头部的Accept字段是否符合预设条件;
当所述URL字段指向目录和/或所述Accept字段符合预设条件时,确定所述HTTP请求报文有效。
可选的,所述判断所述HTTP请求报文的URL字段是否指向目录,包括:
查看所述URL字段的末字节是否为预设字符;
如果是,则确定所述HTTP请求报文的URL字段指向目录。
可选的,所述判断所述HTTP请求报文请求头部的Accept字段是否符合预设条件,包括:
判断所述Accept字段中是否包括有预设的文件类型;
如果包括有预设的文件类型,则确定所述HTTP请求报文请求头部的Accept字段符合预设条件。
可选的,所述方法还包括:
当确定所述HTTP请求报文无效时,转发所述HTTP请求报文。
本申请还提供一种Web推送装置,所述装置应用在网络设备上,包括:
报文接收单元,用于接收客户端设备发送的HTTP请求报文;
类型判断单元,用于判断所述HTTP请求报文的类型是否为预设类型;
有效判断单元,用于在所述HTTP请求报文的类型是预设类型时,判断所述HTTP请求报文是否有效;
页面推送单元,用于在所述HTTP请求报文有效时,推送Web页面到所述客户端设备。
可选的,所述有效判断单元,包括:
第一判断子单元,用于判断所述HTTP请求报文的URL字段是否指向目录;
第二判断子单元,用于判断所述HTTP请求报文请求头部的Accept字段是否符合预设条件;
有效确定子单元,用于在所述URL字段指向目录和/或所述Accept字段符合预设条件时,确定所述HTTP请求报文有效。
可选的,所述第一判断子单元,包括:
字符查看模块,用于查看所述URL字段的末字节是否为预设字符;
第一确定模块,用于在所述URL字段的末字节为预设字符时,确定所述HTTP请求报文的URL字段指向目录。
可选的,所述第二判断子单元,包括:
文件类型判断模块,用于判断所述Accept字段中是否包括有预设的文件类型;
第二确定模块,用于在所述Accept字段包括有预设的文件类型时,确定所述HTTP请求报文请求头部的Accept字段符合预设条件。
可选的,所述装置还包括:
报文转发单元,用于在确定所述HTTP请求报文无效时,转发所述HTTP请求报文。
应用本申请实施例,网络设备可以在确定来自客户端设备的HTTP请求报文的类型为预设类型,且所述HTTP请求报文有效后,推送Web页面到客户端设备。网络设备通过筛选后针对有效的HTTP请求报文进行Web推送,可以大大提高Web推送的成功率。
附图说明
图1是本申请一示例性实施例示出的一种Web推送的应用场景图;
图2是本申请一示例性实施例示出的一种Web推送方法流程图;
图3是本申请一示例性实施例示出的另一种Web推送方法流程图;
图4是本申请一示例性实施例示出的一种Web推送装置的硬件结构图;
图5是本申请一示例性实施例示出的一种Web推送装置的框图;
图6是本申请一示例性实施例示出的另一种Web推送装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在......时”或“当......时”或“响应于确定”。
现有技术中,网络设备在接收到客户端设备发送的HTTP(Hypertext TransferProtocol,超文本传送协议)请求报文后,可以基于所述HTTP请求报文进行Web推送。一般来说,网络设备可以随机选取一个接收到的HTTP请求报文,并根据所述HTTP请求报文构造回应报文,然后将所述回应报文返回给发送所述HTTP请求报文的客户端设备。其中,所述回应报文中包括向用户推送的信息,比如:当前网页正处于禁止访问时间,当前访问网页不安全或一些网络广告信息等,所述客户端设备在接收到所述回应报文后,可以将所述回应报文中的信息展示给用户。
但在实际应用中,HTTP请求报文的种类多样,HTTP请求报文除了可以请求访问Web页面外,还可以用于应用软件的交换数据等,如果网络设备随机选取的HTTP请求报文并不用来请求页面,那么客户端设备在接收到网络设备返回的回应报文后,可能无法识别推送的信息,即便客户端设备可以识别推送的信息,但也有可能无法完整的显示推送的内容,大大降低了Web推送的成功率。
为解决现有技术问题,本申请提供一种Web推送方法以及对应的装置,参照图1所示,该方法可以应用在网络设备上,所述网络设备可以是网关、防火墙等支持Web推送功能的设备,另外,除了作为客户端设备示例的PC(Personal Computer,个人计算机)外,客户端设备还可以包括平板电脑等具有网络访问功能的终端设备。具体的,网络设备在接收到客户端设备发送的HTTP请求报文后,可以判断所述HTTP请求报文的类型是否为预设类型,若是预设类型,则判断所述HTTP请求报文是否有效,当所述HTTP请求报文有效时,推送Web页面到所述客户端设备。应用本申请实施例,针对有效的HTTP请求报文进行Web推送,可以大大提高Web推送的成功率。
下面结合附图对本申请提供的Web推送方法及装置进行说明。
参见图2,为本申请一种Web推送方法的一个实施例流程图,该实施例从网络设备侧进行描述,包括以下步骤:
步骤201:接收客户端设备发送的HTTP请求报文。
步骤202:判断所述HTTP请求报文的类型是否为预设类型,若是预设类型,则执行步骤203;若不是预设类型,则执行步骤205。
一般来说,HTTP请求报文的请求行中,可以包括HTTP请求报文的请求类型,HTTP请求报文的常见类型包括:GET类型和POST类型。在本申请实施例中,网络在接收到所述HTTP请求报文后,会先判断所述HTTP请求报文的类型是否为预设类型,如果是,则执行步骤203;如果不是,则执行步骤205。
在本申请实施例中,所述预设类型为GET类型,也就是说,判断所述HTTP请求报文的类型是否为GET类型,如果是GET类型,则执行步骤203;如果不是GET类型,则执行步骤205。
步骤203:判断所述HTTP请求报文的URL字段是否指向目录,若不指向目录,则执行步骤204;若指向目录,则执行步骤206。
一般来说,HTTP请求报文由请求行、请求头部、空行和请求数据4个部分组成,其中,请求行中包括URL字段,所述URL字段中携带客户端设备要访问的URL地址,还可以携带协议和路径等信息。
在本申请实施例中,基于前述步骤202的判断结果,当确定所述HTTP请求报文的类型为预设类型后,可以从所述HTTP请求报文的URL字段中提取出URL地址,根据所述URL地址判断所述URL字段是否指向目录。具体的,在网络设备提取出所述URL字段中的URL地址后,可以判断所述URL地址的末字节是否为预设字符“/”,若不是,则可以确定所述URL字段不指向目录,执行步骤204;若是,则可以确定所述URL字段指向目录,执行步骤206。
举例来说,如果网络设备接收到的HTTP请求报文的URL字段中携带的URL地址为:http://static.bshare.cn/b/buttonLite.js,其末字节不是预设字符“/”,因此可以确定所述URL字段:URL:http://static.bshare.cn/b/buttonLite.js不指向目录。在另一个例子中,如果网络设备接收到的HTTP请求报文的URL字段中携带的URL地址为:http:// www.qq.com/,其末字节为预设字符“/”,因此可以确定所述URL字段:URL:http:// www.qq.com/指向目录。
步骤204:判断所述HTTP请求报文请求头部的Accept字段是否符合预设条件,若不符合,则执行步骤205;若符合,则执行步骤206。
在本实施例中,HTTP请求报文的请求头部包括Accept字段,所述Accept字段可以包括多种MIME值,表示客户端设备能够接受的文件类型,所述Accept字段还可以包括每个MIME值对应的质量值,所述质量值表示客户端设备对对应文件类型的接受程度。
在本申请实施例中,基于前述步骤203的判断结果,当确定所述HTTP请求报文的URL字段不指向目录后,可以从所述HTTP请求报文请求头部的Accept字段中解析出其包括的文件类型,根据所述文件类型判断所述Accept字段是否符合预设条件。具体来说,在网络设备解析出所述Accept字段中的文件类型时,可以判断该文件类型中是否包括有预设的文件类型,如果不包括有预设的文件类型,则可以确定所述Accept字段不符合预设条件,执行步骤205;如果包括有预设的文件类型,则可以确定所述Accept字段符合预设条件,执行步骤206。
在本申请实施例中,所述预设的文件类型可以包括text/html和text/xml两种文件类型,也就是说,如果HTTP请求报文请求头部的Accept字段中包括有text/html和text/xml中的至少一种文件类型,则可以确定所述Accept字段符合预设条件。
举例来说,如果网络设备接收到的HTTP请求报文请求头部中的Accept字段为:Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,其中text/html、application/xhtml+xml、application/xml分别为三种文件类型,*/*表示其他任意的文件类型,q为质量值,其范围从0.0到1.0,质量值越高表示优先级越高,根据所述Accept字段可以看出客户端设备比较偏爱接收到text/html、application/xhtml+xml、application/xml这三种文件类型,但是也可以接收其他的文件类型。根据本申请实施例的实现方式,所述Accept字段中包括text/html这个文件类型,则可以确定所述Accept字段Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8符合预设条件。在另一个例子中,如果网络设备接收到的HTTP请求报文请求头部的Accept字段为:Accept:*/*,不包括预设文件类型中的任何一种,则可以确定所述Accept字段Accept:*/*不符合预设条件。
步骤205:转发所述HTTP请求报文。
在本申请实施例中,当网络设备在前述步骤202中确定所述HTTP请求报文的类型不是预设类型时,可以转发所述HTTP请求报文。此外,当网络设备在步骤203中确定所述URL字段即不指向目录,在步骤204中确定所述Accept字段也不符合预设条件时,可以确定所述HTTP请求报文无效。在确定所述HTTP请求报文无效后,网络设备也可以转发所述HTTP请求报文。
步骤206:推送Web页面到所述客户端设备。
在本申请实施例中,当网络设备在步骤203中确定所述URL字段指向目录,或在步骤204中确定所述Accept字段符合预设条件时,可以确定所述HTTP请求报文有效。在确定所述HTTP请求报文有效后,网络设备可以根据所述HTTP请求报文生成回应报文,所述回应报文中携带有向客户端设备推送的信息,然后发送所述回应报文到所述客户端设备以完成Web页面推送。
由上述实施例可见,网络设备在确定来自客户端设备的HTTP请求报文的类型为预设类型,且所述HTTP请求报文有效后,推送Web页面到客户端设备。网络设备通过筛选后针对有效的HTTP请求报文进行Web推送,可以大大提高Web推送的成功率。
在一个例子中,网络设备在执行步骤204时,根据HTTP请求报文中各部分的特征,若确定所述HTTP请求报文的请求头部中未携带Accept字段,则可以直接执行步骤205。
参见图3,为本申请一种Web推送方法的另一个实施例流程图,该实施例从网络设备侧进行描述,包括以下步骤:
步骤301:接收客户端设备发送的HTTP请求报文。
步骤302:查看所述HTTP请求报文的类型是否为预设类型,若是预设类型,则执行步骤303;若不是预设类型,则执行步骤305。
步骤303:判断所述HTTP请求报文请求头部的Accept字段是否符合预设条件,若不符合,则执行步骤304;若符合,则执行步骤306。
步骤304:判断所述HTTP请求报文的URL字段是否指向目录,若不指向目录,则执行步骤305;若指向目录,则执行步骤306。
步骤305:转发所述HTTP请求报文。
步骤306:推送Web页面到所述客户端设备。
在一个例子中,网络设备在执行步骤303时,根据HTTP请求报文中各部分的特征,若确定所述HTTP请求报文中未携带Accept字段,则可以继续执行步骤304以及以后的步骤。
上述步骤301至步骤306的具体实施方式可以参照图2中所示的步骤201至步骤206的实现方法,在此不做赘述。
与前述Web推送方法的实施例相对应,本申请还提供了一种Web推送装置的实施例。
本申请Web推送装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请一种Web推送装置所在网络设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网络设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等;从硬件结构上来讲该网络设备还可能是分布式的网络设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
请参考图5,是本申请一示例性实施例示出的一种Web推送装置的框图,所述装置可以应用在前述图4所示的网络设备上,所述Web推送装置500可以包括:报文接收单元510、类型判断单元520、有效判断530、页面推送单元540和报文转发单元550。参见图6,所述有效判断530还可以包括:第一判断子单元531、第二判断子单元532和有效确定子单元533,其中所述第一判断子单元531还包括:字符查看模块5311和第一确定模块5312,所述第二判断子单元532还包括:文件类型判断模块5321和第二确定模块5322。
其中,报文接收单元510,用于接收客户端设备发送的HTTP请求报文;
类型判断单元520,用于判断所述HTTP请求报文的类型是否为预设类型;
有效判断单元530,用于在所述HTTP请求报文的类型是预设类型时,判断所述HTTP请求报文是否有效;
页面推送单元540,用于在所述HTTP请求报文有效时,推送Web页面到所述客户端设备。
第一判断子单元531,用于判断所述HTTP请求报文的URL字段是否指向目录;
第二判断子单元532,用于判断所述HTTP请求报文请求头部的Accept字段是否符合预设条件;
有效确定子单元533,用于在所述URL字段指向目录和/或所述Accept字段符合预设条件时,确定所述HTTP请求报文有效。
字符查看模块5311,用于查看所述URL字段的末字节是否为预设字符;
第一确定模块5312,用于在所述URL字段的末字节为预设字符时,确定所述HTTP请求报文的URL字段指向目录。
文件类型判断模块5321,用于判断所述Accept字段中是否包括有预设的文件类型;
第二确定模块5322,用于在所述Accept字段包括有预设的文件类型时,确定所述HTTP请求报文请求头部的Accept字段符合预设条件。
报文转发单元550,用于在确定所述HTTP请求报文无效时,转发所述HTTP请求报文。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。