一种强制门户的实现方法 【技术领域】
本发明涉及强制门户(PORTAL)推制技术,具体涉及一种强制PORTAL实现方法,特别地,涉及一种基于HTML语言(超文本标识语言)的强制PORTAL实现方法。
背景技术
现代社会对信息的需求越来越大,宽带技术的运用为我们提供了宽广的应用平台,为我们搭建了一条真正的信息高速公路。在宽带接入服务中,运营商为了方便用户使用或其它业务目的,往往会在网上设置专用的WWW服务器,其中提供目录服务的WWW服务器被称为PORTAL服务器。相应的Web页面称为PORTAL页面,主要为用户提供服务的目录,用户只要点击相应的链接就可以进入需要的服务页面,获得需要的信息或其他内容。强制PORTAL是BAS(宽带服务接入设备)的一项增值业务,其目的是运营商希望用户在认证前或者认证后访问页面时自动访问其指定的网站,例如广告或者通知等,BAS设备通过对用户HTTP(超文本传输协议)或者HTTPS(安全的超文本传输协议)报文的截获和处理,使用户访问其指定的页面。
现有技术中,强制PORTAL的实现主要有以下两种方法:
一、SNAT-DNAT(源地址网络地址转换-目的地址网络地址转换)方式:
例如,用户希望访问网站WEB SERVER 2,BAS设备配置将用户强制PORTAL到WEB SERVER 1,图1描述了它的实现流程。其中,
1、用户希望访问WEB SERVER 2,发出一个TCP SYN(TCP同步)报文,其源地址(src)是用户的IP地址IP1,目的地址(dst)是WEBSERVER 2的IP地址IP4,目地端口号是80(HTTP)或者443(HTTPS);
2、BAS设备截获了用户的该报文,根据配置,发现该HTTP报文不是向设定的WEB SERVER 1,则将用户报文的目的IP地址替换为WEBSERVER 1的IP地址IP3,重新计算TCP和IP的校验和,发送给WEBSERVER 1;
3、WEB SERVER 1收到该报文后,正常处理,发送回应报文(TCPSYN ACK),源地址是IP3,目的地址是IP1;
4、BAS设备截获了WEB SERVER 1的报文,发现该回应报文是经过强制PORTAL处理过的报文,替换源IP地址为WEB SERVER 2的地址IP4,重新计算TCP和IP的校验和,发送给用户。
以后报文的交互同上面处理。这样,从用户看来,好象是在与WEBSERVER 2交互,这样就达到了强制PORTAL的目的。
虽然利用这种方式能够实现强制PORTAL,但还存在以下缺点:
1.SNAT-DNAT方式的强制PORTAL,因为对每一个报文都要作地址的替换,对BAS设备的性能产生了一定的影响。
2.SNAT-DNAT方式在用户访问指定页面的情况下不能实现。因为用户如果访问某指定页面,仅仅替换源IP地址和目的IP地址是不够的,WEBSERVER找不到用户指定的页面就会返回失败。现在有些WEB SERVER为了配合这种方式做了一定的工作,例如收到第一个页面请求时先作一次重定向,定向到WEB SERVER中某一个页面。
3.SNAT-DNAT方式不能携带某些参数给WEB SERVER。在实际需求中,有时要求在强制PORTAL中,BAS能够在用户不察觉的情况下将一些属性通过某种方式带给WEB SERVER,SNAT-DNAT的方式不能满足这种需求。
二、基于HTTP重定向的强制PORTAL:
HTTP是用于从WWW服务器传输超文本到本地浏览器的传送协议,通过客户机和服务器彼此相互发送消息的方式工作。
基于HTTP重定向的强制PORTAL是利用HTTP协议中RFC1945的描述,实际实现的处理流程如图2所示:
1、用户希望访问WEB SERVER 2,发出一个TCP SYN报文,其源地址是用户的IP地址IP1,目的地址是WEB SERVER 2的IP地址IP4;
2、BAS设备截获了用户的该报文,根据配置,发现该HTTP报文不是指向设定的WEB SERVER 1,则BAS直接代替WEB SERVER 2与PC机交互,发送TCP SYN回应报文,源地址是IP4,目的地址是IP1;
3、PC机收到该报文后,正常处理,发送TCP回应报文,源地址是IP1,目的地址是IP4;
4、随后,PC机发送HTTP或者HTTPS报文,源地址是IP1,目的地址是IP4;
5、BAS设备收到该报文后,根据配置,发送HTTP重定向报文,源地址是IP4,目的地址是IP1,location填IP3的地址,并可以带某些参数,其中,location表示使浏览器重定向的目的地址,所携带的参数用于提供给要访问的网页服务器,例如,如果参数中携带了BAS的IP地址,则要访问的网页服务器就可以知道用户是从什么地址的设备接入的。
例如:欲使浏览器重定向到IP地址192.168.7.250,所携带的参数为wlanuserip=172.46.0.2和wlanacip=192.168.20.253,其中wlanuserip表示用户的IP地址,wlanacip表示接入控制设备的IP地址。如果不带参数,BAS给PC的HTTP报文简化形式如下所示:
HTTP/1.1 302
Location:http:∥192.168.7.250
如果携带参数,BAS给PC的HTTP报文简化形式如下所示:
HTTP/1.1 302
Location:http:∥192.168.7.250?wlanuserip=172.46.0.2&
wlanacip=192.168.20.253
这种重定向方式的强制PORTAL,如果携带参数,则参数内容会在浏览器的地址栏中显示处理,地址栏中显示http:∥192.168.7.250/?wlanuserip=172.46.0.2&wlanacip=192.168.7.251,这样,用户会看到BAS不希望用户看到的内容。
【发明内容】
本发明的目的是克服现有技术的上述缺点,提供一种强制PORTAL实现方法,其特征在于,所述方法包括步骤:
用户通过宽带服务接入设备(BAS)与要访问的网页服务器(WEBSERVER)建立连接;
在所述连接建立后,所述用户发送HTTP(超文本传输协议)或者HTTPS(安全的超文本传输协议)请求报文;
所述BAS接收到所述请求报文后,配置包含所述强制PORTAL信息的页面,并将所述页面发送给所述用户;
所述用户收到所述页面后,根据所述页面中包含的所述强制PORTAL信息,链接到所述强制PORTAL网站。
可选地,所述用户通过宽带服务接入设备(BAS)与要访问的网页服务器(WEB SERVER)建立连接的步骤包括步骤:
所述用户发送TCP SYN(TCP同步)报文,所述TCP SYN报文的目的地址为所述WEB SERVER的地址;
所述BAS截获所述用户发送的TCP SYN报文;
所述BAS代替所述WEB SERVER与所述用户交互。
可选地,所述BAS代替所述WEB SERVER与所述用户交互的步骤包括步骤:
所述BAS发送TCP SYN回应报文给所述用户;
所述用户接收到所述BAS发送的TCP SYN回应报文后,发送TCP回应报文。
优选地,所述BAS发送的TCP SYN回应报文的源地址为所述WEBSERVER的地址,目的地址为所述用户的地址。
可选地,所述用户发送的所述HTTP或者HTTPS请求报文的目的地址为所述WEB SERVER的地址。
优选地,所述BAS接收到所述请求报文后,配置包含所述强制PORTAL信息的页面的步骤包括:通过HTML语言(超文本标记语言)设置页面。
优选地,设置的所述页面中包括:所述强制PORTAL的IP地址、所述强制PORTAL的网页、是否携带包括用户IP地址和/或BAS的IP地址的参数以及所述参数的显示方式。
可选地,所述用户收到所述页面后,根据所述页面中包含的所述强制PORTAL信息,链接到所述强制PORTAL网站的步骤包括:
解析所述BAS发送的页面,以获得需要的信息;
根据上述获得的信息,链接到所述强制PORTAL网站。
可选地,所述需要的信息包括:所述强制PORTAL的IP地址、所述强制PORTAL的网页、是否携带包括用户IP地址和/或BAS的IP地址的参数以及所述参数的显示方式。
利用本发明,可以使BAS设备轻松地实现强制PORTAL,可以指定强制PORTAL的具体页面,并且可以携带参数给WEB SERVER设备,灵活设置是否将参数显示在地址栏中,而且,可以通过HTML(超文本标记)语言以及网络编程技术,使BAS设备可以灵活地控制用户访问页面的方式。
【附图说明】
图1是现有技术中利用SNAT-DNAT方式实现PORTAL中的报文交互过程示意图;
图2是现有技术中基于HTTP重定向的强制PORTAL中的报文交互过程;
图3是本发明实施例强制PORTAL实现方法中的报文交互过程示意图。
【具体实施方式】
下面结合附图和实施方式对本发明作进一步的详细说明:
首先,简单介绍一下本发明中用到的几个相关协议:
TCP(传输控制协议),使用三次握手机制来建立一条连接。握手的第一个报文为SYN包,第二个报文为SYN/ACK包,表明它应答第一个SYN包,同时继续握手过程,第三个报文仅仅是一个应答,表示为ACK包。
HTTP(超文本传输协议),是一个普通的、面向对象的协议,使用TCP的80端,用于支持WWW(万维网)浏览:浏览器向服务器发送请求,而服务器回应相应的网页。客户机可向服务器发送许多不同类型的信息,例如:GET表示请求一个WEB页面;HEAD表示要求服务器发送题头信息;POST表示要求服务器接收信息。
不管是请求还是回复,它们都是用同样的方法进行编码的:包括一个首行、一些头部链接、一个空白行,接下来就是可选的正式信息部分。首行包括了三个部分。首先,会有一个形如“Get”或者是“Post”的字符串;第二个部分是所要请求的资源的位置和资源的具体信息;首行的最后一个部分是这个请求所使用的HTTP协议的版本。比如说,一个完整的HTTP请求的首行可能是:“Get www,iamcj.net/index.html HTTP 1.1”。从服务器返回的回复文件的首行也是由三个部分组成的:HTTP协议版本、请求信息的状态代码,还有解释这个状态代码的具体内容。例如,一个回复文件的首行可能是:“HTTP/1.1 404 Not Found.”。
在首行之后,一次HTTP传输过程可以包含一些头部行,用来为请求或者是回复提供一些额外的信息,比如这个发送的文件是不是压缩的格式。最后,是可选的正式信息部分(如果有的话),通常是由要传输的文件或者其他的请求资源组成的。
HTTPS(安全的超文本传输协议),使用TCP的443端口,是传统的HTTP协议通过TCP传输,利用SSL(安全套接字协议)进行加密的一种表现形式。SSL是使用一个私人密钥来保护要传输的数据的加密协议。
在本发明中,就是利用在建立TCP连接的过程中,BAS设备直接代替用户所要访问的网页服务器与用户交互,在建立连接后,利用BAS设备对HTTP或者HTTPS报文的截获和处理,使用户访问其指定的页面。
下面参照图3对本发明强制PORTAL实现方法作一详细说明。
参照图3,图3是本发明强制PORTAL实现方法中的报文交互过程示意图,其中,用户PC的地址为IP1;BAS(宽带服务接入设备)的地址为IP2;WEB SERVER 1(网页服务器1)的地址为IP3;WEB SERVER 2(网页服务器2)的地址为IP4;用户希望访问网站WEB SERVER 2,BAS设备将用户强制PORTAL到WEB SERVER 1。
首先,用户利用TCP协议请求建立与WEB SERVER 2的连接,其连接的过程包括以下三个步骤:
1.用户发送TCP SYN报文,源地址IP1,目的地址IP4,目的端口号是80(HTTP)或者443(HTTPS);
2.BAS设备截获用户的该报文,根据配置,发现该报文不是指向设定的WEB SERVER 1,则直接代替WEB SERVER 2与用户PC交互,发送TCP SYN ACK报文,源地址IP4,目的地址IP1;
3.用户PC收到上述报文后,回应TCP ACK报文,源地址IP1,目的地址IP4;
至此,用户表面上已建立了同WEB SERVER 2的连接,实际上是与BAS的连接。
然后,进行下面的步骤:
4.用户通过浏览器发送HTTP或者HTTPS页面请求报文,源地址IP1,目的地址IP4;
5.BAS设备截获上述页面请求报文,根据强制PORTAL的配置,例如,强制的网站、强制的页面、是否需要携带参数以及携带哪些参数等,用HTML语言编写页面,使在加载该页面前访问BAS指定的网站(WEB SERVER1),然后发送该页面,源地址IP4,目的地址IP1;
6.用户浏览器收到上述页面后,解析该页面的内容,获得加载该页面前访问BAS指定的网站(WEB SERVER1)的信息,自动访问WER SERVER1。
通过上述过程的描述可以看出,通过BAS设备向用户发送根据强制PORTAL的配置设置的页面,以达到将用户的访问定向到BAS指定的网站,下面对此通过举例说明。
BAS给用户PC的页面如下:
<html>
<body onload=“CMCCWLANFORM.submit()”>
<form name=“CMCCWLANFORM”method=“POST”
action=http:∥192.168.7.250/index.asp>
<input type=“hidden”name=“wlanuserip”value=“172.46.0.2”>
<input type=“hidden”name=“wlanacname”value=“”>
</form>
</body>
</html>
在上述基于HTML语言编写的网页中,其中,
<html>表示网页开始标记;
<body onload=“CMCCWLANFORM.submit()”>表示在页面加载之前,执行名叫CMCCWLANFORM的form的submit函数的操作;
<form>至</form>定义了一个表单,名称为“CMCCWLANFORM”;表单的传送方式(method)为“POST”,即表示将隐藏,如果要将参数在浏览器的地址栏中显示,则将传送方式(method)设为GET即可;目的地址为192.168.7.250/index.asp;表单有两个隐藏的属性:其中一个名称为“wlanuserip”,表示用户地址,值为“172.46.0.2”,另一个名称为“wlanacname”,表示BAS设备的名称,值为“”。
BAS期望用户携带参数的作用主要是用于提供给WEB SERVER。例如,如果参数中携带了BAS的IP地址,则WEB SERVER就可以知道该用户是从哪个地址的设备接入的。当然,参数还有其它用途,例如,根据携带的参数,WEB SERVER可以为每一个不同的用户提供不同的个性化页面。这些参数在重定向方式中,都是作为location的一部分携带的。作为HTTP协议,在IP地址后用“?”表示有参数,“=”前是参数名称,“=”后是参数值;参数之间用“&”号隔开。
这样,在该页面加载之前,会自动执行form的submit操作,其结果是向192.168.7.250发送http请求,请求页面index.asp,并携带属性wlanuserip和wlanacname,其中,wlanuserip指用户的IP地址,wlanacname指接入控制设备的名称。
这样,PC解析该页面后,会自动给WEB SERVER1:192.168.7.250发送携带有BAS期望用户携带的参数的报文,这些参数皆是隐藏在HTTP报文体中(HTTP:Line13:wlanuserip=172.46.0.2&wlanacname=)不会在浏览器地址栏中显示。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,所附的权利要求包括这些变形和变化而不脱离本发明的精神。