一种基于QKD的服务器与浏览器客户端之间的通信方法与流程

文档序号:20767871发布日期:2020-05-15 19:13阅读:475来源:国知局
一种基于QKD的服务器与浏览器客户端之间的通信方法与流程

本发明属于量子通信技术领域,具体来说,是一种基于qkd的服务器与浏览器客户端之间的通信方法。



背景技术:

随着社会进步,科学发展,人们在生活中所见所用的计算机设备越来越多,如何与这些设备之间打交道呢?这就涉及到了“人机交互”,“人机交互”有许多种,通过web去实现的仅仅是其中的一种。

目前有许多计算机设备都实现了web人机交互,要提供web服务就涉及到了web服务器,目前有很多商业通用的服务器,主要是提供高访问量和高并发量的服务;当然也有专门为嵌入式设备提供的web服务器,这种服务器的主要特点是简单、轻巧,功能强大,同时也可以根据需要实现自己的web服务器。

量子密钥分发(quantumkeydistribution,简称qkd)是利用量子力学特性来保证通信安全性。它使通信的双方能够产生并分享一个随机的、安全的密钥,来加密和解密消息。目前对于现有技术中的qkd设备不支持https协议,操作人员一般仅能通过串口或telnet协议访问,而且操作人员与qkd设备之间的交互命令比较复杂,操作困难;qkd设备的系统信息和参数查看也不方便,基于进程调用执行的web服务器无法适用qkd系统程序。



技术实现要素:

本发明旨在提供一种简单快捷基于qkd的服务器与客户端之间的通信方法,用于简化量子密钥分发系统设备的人机交互功能。

为实现上述技术目的,本发明采用的技术方案如下:

一种基于qkd的web服务器与浏览器客户端之间的通信方法,包括如下步骤:

步骤1:开启web服务器的socket服务,并循环监听socket端口;

步骤2:当socket端口被监听到浏览器客户端的http请求时,web服务器创建一个相应的线程处理请求,并将处理线程请求设置为分离状态;

步骤3:将所述线程处理请求的client文件描述符作为参数传递到处理函数中,并通过处理函数解析client文件描述符中的内容,获得请求参数,所述请求参数包括http请求的类型和请求路径;

步骤4:判断http请求的类型,如果http请求的类型为静态资源,则跳到步骤5;如果http请求的类型为非静态的业务请求,则跳到步骤6;

步骤5:根据资源类型设置http响应头,读取资源文件并将资源文件流返回给浏览器客户端;

步骤6:按照请求路径调用对应的业务处理函数,最终将执行结果返回到浏览器客户端。

进一步限定,所述步骤6中,在执行业务处理函数时,调用web服务器中的qkd设备的核心处理程序,并将web服务器的代码与核心处理程序的代码编译在一起,当核心处理程序启动时,web服务器开启;当核心处理程序停止时,web服务器关闭。

进一步限定,在步骤6中,若http请求的操作类型为读写类操作,则对相应数据做读写类操作,再将执行结果以json数据格式返回到浏览器客户端;若http请求的操作类型为逻辑类处理操作,则对相应数据做存储处理,再将执行结果返回到浏览器客户端。

进一步限定,在步骤6中,若浏览器客户端为非登陆状态,则跳转到浏览器登陆界面。

进一步限定,在上述跳转到浏览器登陆界面之前,若浏览器客户端的http请求为登陆操作,则需要对输入的用户名和密码进行校验,如果校验成功,则存储登录信息,并跳转到首页;如果校验失败,则再次跳转到登陆界面。

本发明采用多线程处理的方式与单进程的程序交互进而提供web服务,其与核心业务程序共享生命周期,实现的功能简单明确、清晰易懂、专用性强、消耗资源少、可用性高,可适用于任何linux嵌入式设备的二次开发;而且本发明既是一个web服务器,也是一套完整的web应用解决方案。

使用者通过浏览器客户端访问qkd设备,基于qkd的web服务器提供http请求解析并与qkd核心处理程序交互,虽然请求过程分为多步执行,但web服务器与qkd核心程序的交互始终在一个进程内,因此使用者调用核心程序的过程更加简单直接,从而提高了交互效率和交互体验。

附图说明

图1为本发明基于qkd的web服务器与浏览器客户端之间的结构图;

图2为一种基于qkd的web服务器与浏览器客户端之间的通信流程图。

具体实施方式

为了使本领域的技术人员可以更好地理解本发明,下面结合附图和实施例对本发明技术方案进一步说明。

本发明提供了一种基于量子密钥分发(qkd)的web服务器与浏览器客户端之间的通信方法,其基本结构示意如图1所示,其中qkd设备为web服务器运动的宿主机,嵌入式设备操作系统采用arm-linux系统,web服务器软件运行所需文件和目录包括:conf.ini-程序配置文件、httpd-程序执行文件、logininfo.txt-存储登录信息、mem.info-存储内存使用信息、net.info-存储流量使用信息以及x-admin目录(存放的是组成web界面的html+css+js文件,具体不详细列出)。

在通信过程中,web服务器最主要的工作便是处理浏览器客户端发送的http请求。浏览器客户端模拟socket客户端向web服务器发送http协议格式的数据流,而web服务器相当于一个socket服务器端,通过解析http协议的数据,然后将执行结果以相同的协议格式返回给浏览器客户端处理。

图2示出了一种基于qkd的web服务器与浏览器客户端的通信方法的流程图。

实施例1:

该实施例包括如下步骤:

步骤101:首先开启web服务器的socket服务,并循环监听socket端口。

步骤102:当socket端口被监听到浏览器客户端发送到web服务器的http请求时,web服务器创建一个相应的线程处理请求,同时将处理线程请求设置为分离状态,这样当线程处理请求完成后会自动释放资源,不影响其它线程的执行。

步骤103:将线程处理请求的client文件描述符作为参数传递到处理函数中,并通过处理函数一行行解析client文件描述符中的http头,获得http请求的类型以及请求路径等请求参数。

步骤104:判断http请求的类型,如果http请求的类型为静态资源,则跳到步骤105;如果http请求的类型为非静态的业务请求,则跳到步骤106。

步骤105:此时http请求的类型为静态资源,根据资源类型设置http响应头,读取资源文件并将资源文件流返回给浏览器客户端,交由浏览器处理。

步骤106:此时http请求的类型为非静态的业务请求,按照请求路径调用对应的业务处理函数,最终将执行结果返回到浏览器客户端。

在步骤f中执行业务处理函数时,调用web服务器中的qkd设备的核心处理程序,并将web服务器的代码与核心处理程序的代码编译在一起。此核心处理程序各项操作必须在一个进程的存活期中,因此当核心处理程序启动时,web服务器开启;当核心处理程序停止时,web服务器关闭。

同时,在步骤106中,若http请求内容的操作类型为读写类操作,则对相应数据做读写类操作,再将执行结果以json数据格式返回到浏览器客户端;若http请求内容的操作类型为逻辑类处理操作,则对相应数据做存储处理,再将执行结果返回到浏览器客户端。

实施例2:

该实施例包括如下步骤:

步骤101:首先开启web服务器的socket服务,并循环监听socket端口。

步骤102:当socket端口被监听到浏览器客户端发送到web服务器的http请求时,web服务器创建一个相应的线程处理请求,同时将处理线程请求设置为分离状态,这样当线程处理请求完成后会自动释放资源,不影响其它线程的执行。

步骤103:将线程处理请求的client文件描述符作为参数传递到处理函数中,并通过处理函数一行行解析client文件描述符中的http头,获得http请求的类型以及请求路径等请求参数。

步骤104:判断http请求的类型,如果http请求的类型为静态资源,则跳到步骤105;如果http请求的类型为非静态的业务请求,则跳到步骤106。

步骤105:此时http请求的类型为静态资源,根据资源类型设置http响应头,读取资源文件并将资源文件流返回给浏览器客户端,交由浏览器处理。

步骤106:此时http请求的类型为非静态的业务请求,按照请求路径调用对应的业务处理函数,最终将执行结果返回到浏览器客户端。

在步骤106中执行业务处理函数时,调用web服务器中的qkd设备的核心处理程序,并将web服务器的代码与核心处理程序的代码编译在一起。此核心处理程序各项操作必须在一个进程的存活期中,因此当核心处理程序启动时,web服务器开启;当核心处理程序停止时,web服务器关闭。

在实施例1中,通信过程均是在浏览器客户端为默认登陆的状态。本实施例的浏览器客户端默认为非登陆状态,因此在执行步骤106之前,浏览器客户端需要跳转到浏览器登陆界面进行登陆。

在上述跳转到浏览器登陆界面之前,若浏览器客户端的http请求为登陆操作,则需要对输入的用户名和密码进行校验,如果校验成功,则对登录信息(用户名和密码)进行存储,并跳转到登陆首页;如果校验失败,则再次跳转到登陆界面。

需要说明的是,本发明还可以采用其它嵌入式web服务器,通过cgi调用另外的socket程序,通过socket程序与核心处理程序交互;或者在核心程序中实现socket服务暴露核心处理程序的调用接口,然后通过其它和执行cgi的web服务器调用暴露出来的接口。

以上对本发明提供的一种基于qkd的服务器与浏览器客户端之间的通信方法进行了详细介绍。具体实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1