Http连接和https连接自适应方法、装置及系统的制作方法

文档序号:7778052阅读:532来源:国知局
专利名称:Http连接和https连接自适应方法、装置及系统的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种HTTP (Hypertext Transfer Protocol,超文本传输协议)连接和HTTPS (Secure Hypertext Transfer Protocol,安全超文本传输协议)连接自适应的方法、装置及系统。
背景技术
Web所使用的HTTP协议默认情况下是没有任何加密措施的,所有的消息都是以明文形式在网络上传送,恶意的攻击者可以通过安装监听程序来获得和Web服务器之间的通讯内容。SSL (Secure Socket Layer,安全套接字)主要用于Web的安全传输协议。这种协议在Web上获得了广泛的应用,IETF(Internet Engineering Task Force,互联网工程任务组)已将SSL标准化,并将其称为TLS (Transport Layer Security,安全传输层)。SSL 位于 HTTP 层和 TCP (Transmission Control Protocol,传输控制协议)层之间,在TCP之上建立了一个加密通道,通过这一层的数据会被加密,因此达到保密的效果。HTTPS实际上是HTTP的一个扩展描述,它使用SSL作为HTTP的子层。大多数因特网应用协议都有相应的端口。对于HTTP协议来说,IANA(InternetAssigned Numbers Authority,互联网编号指派机构)给其分配的端口号为80。为了创建一种安全的HTTP服务(即HTTPS),IANA给HTTPS分配了一个新端口 443。HTTP连接侦听80端口,连接建立后,进行明文数据传输。HTTPS连接侦听443端口,连接建立后,进行安全的加密数据传输。如果只支持HTTP连接的话,不能保证Web的安全,连接数据有可能在传输过程中被窃取。对于客户端从外网登录Web服务器的情况,会泄漏终端设备的帐户和配置信息;但是只支持HTTPS连接的话,Web访问速度会大大降低,对于客户端从内网访问Web服务器的情况,会降低开发调试的效率,因为内网数据不会出外网,并且一般是通过本机PC的小网卡直接连终端设备,Web访问很安全,不需进行繁琐而缓慢的认证和加密过程,特别是通过Web页面进行终端设备软件版本升级的场景,其数据传输速度是不可容忍的。现有一种方式是让Web服务器支持HTTP连接和HTTPS连接的自动跳转,即同时侦听80端口和443端口,客户端以HTTP连接访问80端口,进行明文连接,与服务器建立连接后,根据需要自动跳转到HTTPS连接访问443端口,进行HTTPS安全连接。然而现有的这种方式,需要建立两个侦听socket (套接字),以及至少两个连接socket,增加系统开销,特别是连接socket,需要分配很大的空间来保存诸如IP地址、认证信息、时间戳、数据收发缓存等等。对于CPE(Customer Premise Equipment,用户驻地设备)等嵌入式系统来说,这会损耗其宝贵而有限的CPU和内存资源。另外,客户端的浏览器会进行多次跳转,给用户一种不正确的安全感觉
发明内容
本发明实施例提供一种HTTP连接和HTTPS连接自适应的方法、装置和系统,所提供的方法、装置和系统能在一个端口自适应HTTP连接和HTTPS连接。本发明实施例提供一种HTTP连接和HTTPS连接自适应的方法,Web服务器上设置有HTTP连接所对应的端口,以及设置有一个侦听socket和一个连接socket,所述方法包括:通过所述侦听socket监听所述端口,当收到客户端请求建立连接的数据包时,判断所述数据包的连接类型;如果所述数据包的连接类型为HTTPS,则创建SSL (Secure Socket Layer,安全套接字层对象),绑定所述SSL对象和所述连接socket,在所述端口采用HTTPS连接对应的收发方式收发所述客户端的数据包;如果所述数据包的连接类型为HTTP,则在所述端口采用HTTP连接对应的方式收发所述客户端的数据包。本发明实施例提供一种Web服务器,包括超文本传输协议HTTP连接对应的端口,所述端口设置有一个侦听socket和连接socket,所述侦听socket用于监听所述端口,所述Web服务器还包括:判断单元,用于在所述端口接收到客户端的请求建立连接的数据包时,判断所述数据包的连接类型;HTTPS收发单元,用于在所述判断单元判定所述数据包的连接类型为HTTPS时,创建SSL对象,绑定所述SSL对象和所述连接socket,在所述端口采用HTTPS连接对应的收发方式收发所述客户端的数据包;HTTP收发单元,用于在所述判断单元判定所述数据包的连接类型为HTTP时,在所述端口采用HTTP连接对应的方式收发所述客户端的数据包。本发明实施例提供一种HTTP连接和HTTPS连接自适应的系统,包括Web服务器和客户端,所述Web服务器设置有HTTP连接对应的端口,所述端口设置有一个侦听socket和连接 socket ;所述客户端,用于向所述Web服务器发送请求建立连接的数据包;所述Web服务器,用于通过所述侦听socket监听所述端口,当通过所述端口接收所述数据包时,判断所述数据包的连接类型;如果所述数据包的连接类型为HTTPS,则创建SSL对象,绑定所述SSL对象和所述连接socket,在所述端口采用HTTPS连接对应的收发方式收发所述客户端的数据包;如果所述数据包的连接类型为HTTP,则在所述端口采用HTTP连接对应的方式收发所述客户端的数据包。本实施例提供的方法、装置和系统,通过一个端口自适应HTTP连接和HTTPS连接,可以节省端口。由于在Web服务器上不需要分别针对80端口和443端口维护多个侦听socket和连接socket,而只需要针对80端口维护一个侦听socket和连接socket,可以节省内存和CPU资源。


为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的方法的流程图;图2为本发明实施例提供的Web服务器的结构的示意图;图3为本发明实施例提供的Web服务器的结构的示意图;图4为本发明实施例提供的架构的示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明一个实施例提供了一种HTTP连接和HTTPS连接自适应的方法,所提供的方法包括给Web服务器上设置一个HTTP连接对应的端口,本实施例中可以是80端口,并给该端口设置一个侦听socket和一个socket。所提供的方法如图1所示,包括:步骤100,通过所述侦听socket监听所述端口。本发明实施例给HTTP连接对应的端口维护一个侦听socket和一个连接socket,通过侦听socket对该端口进行监听,以识别客户端的数据包的连接类型。步骤102,当收到客户端请求建立连接的数据包时,判断所述数据包的连接类型;如果所述数据包的连接类型为HTTPS,执行步骤104 ;如果所述数据包的连接类型为HTTP,执行步骤106。当用户通过客户端的浏览器连接Web服务器时,会向Web服务器发送请求建立连接的数据包,Web服务器可以判断该数据包的连接类型。根据SSL协议规定,当用户通过客户端的浏览器连接Web服务器时,会先发一个数据包,如ClientHello请求包等,该数据包会有固定的参数值,Web服务器可以从收到的数据包中捕获设定字节的数据,判断所述数据包的设定字节是否为HTTPS连接对应的特征值,如果是,则判定所述数据包的连接类型为HTTPS连接,否则为HTTP连接。具体的,可以是获取数据包中的前3字节数据,判断前3字节数据是否与HTTPS连接对应的特征值一致,如果一致,则是HTTPS连接,否则为HTTP连接。以ClientHello请求包作为举例,ClientHello头在不同SSL版本中的固定取值如下表所示:表I
权利要求
1.一种超文本传输协议HTTP连接和安全超文本传输协议HTTPS连接自适应方法,其特征在于,Web服务器上设置有HTTP连接所对应的端口,以及设置有一个侦听套接字socket和一个连接socket,所述方法包括: 通过所述侦听socket监听所述端口,当收到客户端请求建立连接的数据包时,判断所述数据包的连接类型; 如果所述数据包的连接类型为HTTPS,则创建安全套接字层SSL对象,绑定所述SSL对象和所述连接socket,在所述端口采用HTTPS连接对应的收发方式收发所述客户端的数据包; 如果所述数据包的连接类型为HTTP,则在所述端口采用HTTP连接对应的方式收发所述客户端的数据包。
2.根据权利要求1所述的方法,其特征在于,所述判断所述数据包的连接类型具体包 括: 判断所述数据包的设定字节是否为HTTPS连接对应的特征值,如果是,则判定所述数据包的连接类型为HTTPS连接,否则为HTTP连接。
3.根据权利要求2所述的方法,其特征在于,所述设定字节为前3字节,所述特征值为:22,3,0 或者 22,3,I 或者 22,3,2。
4.根据权利要求1所述的方法,其特征在于,所述判断所述数据包的连接类型具体包括: 在设定时间内没有收到所述客户端的后续数据包,则判定所述数据包的连接类型为HTTP连接。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述连接在所述端口采用HTTPS连接对应的收发方式收发所述客户端的数据包具体包括: 启动SSL_accept,连接成功后采用SSL_read和/或SSL_write收发数据。
6.根据权利要求1-4任意一项所述的方法,其特征在于,所述连接在所述端口采用HTTP连接对应的收发方式收发所述客户端的数据包具体包括: 启动所述连接socket的recv操作在所述端口收发所述客户端的数据包。
7.根据权利要求1所述的方法,其特征在于,所述端口为80端口。
8.—种Web服务器,其特征在于,包括超文本传输协议HTTP连接对应的端口,所述端口设置有一个侦听套接字socket和连接socket,所述侦听socket用于监听所述端口,所述Web服务器还包括: 判断单元,用于在所述端口接收到客户端的请求建立连接的数据包时,判断所述数据包的连接类型; HTTPS收发单元,用于在所述判断单元判定所述数据包的连接类型为HTTPS时,创建安全套接字层SSL对象,绑定所述SSL对象和所述连接socket,在所述端口采用HTTPS连接对应的收发方式收发所述客户端的数据包; HTTP收发单元,用于在所述判断单元判定所述数据包的连接类型为HTTP时,在所述端口采用HTTP连接对应的方式收发所述客户端的数据包。
9.根据权利要求8所述的服务器,其特征在于,所述判断单元具体包括: 第一判断单元,用于判断所述数据包的设定字节是否为HTTPS连接对应的特征值,如果是,则判定所述数据包的连接类型为HTTPS连接,否则为HTTP连接; 第二判断单元,用于判断在设定时间内是否收到所述客户端的后续数据包,如果没有则判定所述数据包的连接类型为HTTP连接。
10.一种超文本传输协议HTTP连接和安全超文本传输协议HTTPS连接自适应系统,包括Web服务器和客户端,其特征在于,所述Web服务器设置有HTTP连接对应的端口,所述端口设置有一个侦听套接字socket和连接socket ; 所述客户端,用于向所述Web服务器发送请求建立连接的数据包; 所述Web服务器,用于通过所述侦听socket监听所述端口,当通过所述端口接收所述数据包时,判断所述数据包的连接类型;如果所述数据包的连接类型为HTTPS,则创建安全套接字层SSL对象,绑定所述SSL对象和所述连接socket,在所述端口采用HTTPS连接对应的收发方式收发所述客户端的数据包;如果所述数据包的连接类型为HTTP,则在所述端口采用HTTP连接对应的 方式收发所述客户端的数据包。
全文摘要
本发明实施例公开了一种HTTP连接和HTTPS连接自适应方法、装置和系统,其中方法包括在Web服务器上设置HTTP连接所对应的端口,给该端口设置一个侦听socket和一个连接socket,通过侦听socket监听所述端口,当收到客户端请求建立连接的数据包时,判断数据包的连接类型;如果数据包的连接类型为HTTPS,则创建SSL对象,绑定SSL对象和所述连接socket,在所述端口采用HTTPS连接对应的收发方式收发客户端的数据包;如果数据包的连接类型为HTTP,则在所述端口采用HTTP连接对应的方式收发客户端的数据包。
文档编号H04L29/08GK103166996SQ20111041827
公开日2013年6月19日 申请日期2011年12月14日 优先权日2011年12月14日
发明者葛磊, 吴铁军, 颜慧 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1