CN105607898B - 一种动态网站开发方法和系统 - Google Patents
一种动态网站开发方法和系统 Download PDFInfo
- Publication number
- CN105607898B CN105607898B CN201510688505.6A CN201510688505A CN105607898B CN 105607898 B CN105607898 B CN 105607898B CN 201510688505 A CN201510688505 A CN 201510688505A CN 105607898 B CN105607898 B CN 105607898B
- Authority
- CN
- China
- Prior art keywords
- file
- web server
- website development
- dynamic
- dynamic library
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000011161 development Methods 0.000 title claims abstract description 169
- 238000013459 approach Methods 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 28
- 238000012986 modification Methods 0.000 claims description 18
- 230000004048 modification Effects 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000003780 insertion Methods 0.000 claims description 5
- 230000037431 insertion Effects 0.000 claims description 5
- 238000013519 translation Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 15
- 230000006399 behavior Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 206010022000 influenza Diseases 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种动态网站开发方法和系统,其中,方法包括:web服务器接收客户端发送的网站开发请求,将该网站开发请求转发给FastCGI,其中,web服务器内部署有基于C/C++源文件编译生成的处理页面逻辑的动态库文件,FastCGI根据网站开发请求调用匹配动态库文件,控制匹配动态库文件生成html文件,并将该html文件返回该web服务器,该web服务器将该html文件发送给客户端。通过基于编译执行语言编译生成的处理页面逻辑的动态库文件生成相应的html文件,无需使用到解释器,也不再需要解析语句,具有更高的执行效率,且减少了系统资源的消耗,降低了web服务器的硬件配置要求,将动态库文件部署在web服务器内,源代码不容易被窃取,保证了信息的安全性。
Description
技术领域
本发明涉及网站开发领域,特别是涉及一种动态网站开发方法和系统。
背景技术
目前,动态网站处理页面业务逻辑一般使用PHP或java,这些语言均为解释执行语言,均需要解释器去解析代码,然后依靠服务器执行输出,最后显示在浏览器里,即目前一般采用解释执行语言来做动态网站的开发。
使用解释执行语言来开发动态网站,解释执行语言需要通过解释器解释来执行,执行效率较低,且解释执行语言需要一次性读入内存,逐条解释,造成了内存的浪费,同时,为了维持解释器的运行,也要消耗大量系统资源;在安全方面,使用解释执行语言来开发动态网站,需要直接将源代码或字节码部署到网页web服务器中,如此,将造成源代码较容易被窃取,存在较大的安全隐患;最后,解释执行语言对web服务器的硬件配置具有较高的要求,为了保证开发网页的顺利执行,web服务器将面临不小的硬件压力,而若web服务器的硬件未能达到执行解释执行语言的硬件要求,也将影响到解释执行语言的执行效率。
发明内容
有鉴于此,本发明实施例提供一种动态网站开发方法和系统,以解决现有技术中使用解释执行语言来开发动态网站,执行效率较低,内存浪费,消耗系统资源较多,存在较大的安全隐患和web服务器硬件压力较大的问题。
为实现上述目的,本发明实施例提供如下技术方案:
一种动态网站开发方法,包括:
web服务器接收客户端发送的网站开发请求,将所述网站开发请求发送给FastCGI,其中,所述web服务器内部署有基于C/C++源文件编译生成的处理页面逻辑的动态库文件;
所述FastCGI根据所述网站开发请求调用与所述网站开发请求相匹配的匹配动态库文件,控制所述匹配动态库文件根据所述网站开发请求动态生成html文件,并将所述html文件返回所述web服务器;
所述web服务器将所述html文件发送给所述客户端。
其中,所述web服务器接收客户端发送的网站开发请求前还包括:
基于C/C++源文件编译生成处理页面逻辑的动态库文件;
将所述动态库文件部署在所述web服务器内。
其中,所述基于C/C++生成处理页面逻辑的动态库文件包括:
将处理页面逻辑的C/C++源代码嵌入html文件中,生成设备驱动文件,其中,所述设备驱动文件为.ldd格式;
将所述设备驱动文件翻译为C/C++源文件,其中,所述C/C++源文件为.cpp格式;
调用编译器对所述C/C++源文件进行编译,生成动态库文件。
其中,所述生成动态库文件后包括:
判断是否成功生成所述动态库文件;
若是,则将所述动态库文件部署在所述web服务器内;
若否,则生成第一错误信息,并再次调用编译器对所述C/C++源文件进行编译。
其中,所述动态网站开发方法,还包括:
Web服务器判断是否接收到所述客户端发送的页面逻辑修改指令;
若接收到,则根据所述页面逻辑修改指令确定需要修改的页面逻辑;
将所述需要修改的页面逻辑相对应的动态库文件进行修改或替换,重启所述FastCGI。
其中,所述web服务器将所述网站开发请求发送给FastCGI包括:
所述web服务器确定各所述FastCGI的负载状况;
将所述网站开发请求发送给所有所述FastCGI中负载量最小的FastCGI。
其中,所述web服务器接收客户端发送的网站开发请求后还包括:
判断所述网站开发请求是否有效;
若有效,则将所述网站开发请求发送给FastCGI;
若无效,则向所述客户端返回第二错误信息。
其中,所述FastCGI根据所述网站开发请求调用与所述网站开发请求相匹配的匹配动态库文件包括:
所述FastCGI根据所述网站开发请求确定与所述网站开发请求相匹配的匹配动态库文件和所述匹配动态库文件的名称;
根据资源定位符USL和所述名称确定所述匹配动态库文件的路径信息;
调用所述路径信息相对应的动态库文件。
一种动态网站开发系统,包括:客户端、部署有基于C/C++源文件编译生成的处理页面逻辑的动态库文件的web服务器和FastCGI;其中,
所述客户端,用于向web服务器发送网站开发请求;接收所述web服务器发送的html文件;
所述web服务器,用于接收所述客户端发送的网站开发请求,将所述网站开发请求发送给所述FastCGI;接收所述FastCGI返回的html文件,将所述html文件发送给所述客户端;
所述FastCGI,用于接收所述web服务器发送的网站开发请求,根据所述网站开发请求调用与所述网站开发请求相匹配的匹配动态库文件,控制所述匹配动态库文件根据所述网站开发请求动态生成html文件,并将所述html文件返回所述web服务器。
其中,所述动态网站开发系统,还包括:防火墙,
所述客户端通过所述防火墙向所述web服务器发送网站开发请求,并通过所述防火墙接收所述web服务器发送的html文件;
所述web服务器通过所述防火墙将所述html文件发送给所述客户端。
基于上述技术方案,本发明实施例提供的动态网站开发方法和系统,web服务器接收客户端发送的网站开发请求后,将接收的网站开发请求转发给FastCGI,其中,所述web服务器内部署有基于C/C++源文件编译生成的处理页面逻辑的动态库文件,FastCGI在接收到web服务器转发来的网站开发请求后,根据该网站开发请求调用与该网站开发请求相匹配的匹配动态库文件,控制该匹配动态库文件根据该网站开发请求动态生成相应的html文件,并将该html文件返回给web服务器,web服务器在收到该html文件后,将该html文件发送给客户端。通过基于C/C++源文件编译生成的处理页面逻辑的动态库文件生成相应的html文件,使用编译执行语言C/C++来开发动态网站,无需使用到解释器,也不再需要解析语句,具有更高的执行效率,且减少了系统资源的消耗,将动态库文件部署在web服务器内,而非直接将源代码或字节码部署到网页web服务器内,源代码不容易被窃取,保证了信息的安全性,由于动态库文件基于编译执行语言编译生成,web服务器可直接运行其中的0,1等代码,也大大降低了web服务器的硬件配置要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的动态网站开发方法的流程图;
图2为本发明实施例提供的动态网站开发方法中将动态库文件部署在web服务器内的方法流程图;
图3为本发明实施例提供的动态网站开发方法中生成动态库文件的方法流程图;
图4为本发明实施例提供的动态网站开发方法中生成第一错误信息的方法流程图;
图5为本发明实施例提供的动态网站开发方法中修改页面逻辑的方法流程图;
图6为本发明实施例提供的动态网站开发方法中web服务器将网站开发请求发送给FastCGI的方法流程图;
图7为本发明实施例提供的动态网站开发方法中生成第二错误信息的方法流程图;
图8为本发明实施例提供的动态网站开发方法中FastCGI根据网站开发请求调用动态库文件的方法流程图;
图9为本发明实施例提供的动态网站开发系统的系统框图;
图10为本发明实施例提供的动态网站开发系统的另一系统框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的动态网站开发方法的流程图,通过基于C/C++源文件编译生成的处理页面逻辑的动态库文件生成相应的html文件,使用编译执行语言C/C++来开发动态网站,无需使用到解释器,也不再需要解析语句,具有更高的执行效率,且减少了系统资源的消耗,将动态库文件部署在web服务器内,而非直接将源代码或字节码部署到网页web服务器内,源代码不容易被窃取,保证了信息的安全性,由于动态库文件基于编译执行语言编译生成,web服务器可直接运行其中的0,1等代码,也大大降低了web服务器的硬件配置要求;参照图1,该动态网站开发方法可以包括:
步骤S100:web服务器接收客户端发送的网站开发请求,将所述网站开发请求发送给FastCGI,其中,所述web服务器内部署有基于C/C++源文件编译生成的处理页面逻辑的动态库文件;
CGI(Common Gateway Interface,公共网关接口),用于HTTP(Hyper TextTransfer Protocol,超文本传输协议)服务器和其它机器上的程序进行“交谈”的一种工具,其程序一般运行在网络web服务器上,CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。FastCGI像是一个常驻型的CGI,同时也是一种语言无关性的中立标准,它可以一直执行着,只要激活后,不会每次都要花费时间去激活fork一次。
可选的,因此FastCGI程序管理的进程数量可以配置,因此,可以设置常驻内存的FastCGI程序的数量。
在web服务器接收客户端发送的网站开发请求前,应该事先在web服务器内部署基于C/C++源文件编译生成处理页面逻辑的动态库文件。
可选的,可以在web服务器接收客户端发送的网站开发请求前,通过基于C/C++源文件编译生成处理页面逻辑的动态库文件,然后将该动态库文件部署在web服务器内来将来事先在web服务器内部署基于C/C++源文件编译生成处理页面逻辑的动态库文件。
可选的,可以通过将处理页面逻辑的C/C++源代码嵌入html(HyperText MarkupLanguage,超级文本标记语言)文件中,生成设备驱动文件,然后将该设备驱动文件翻译为C/C++源文件,最后调用编译器对该C/C++源文件进行编译,来生成动态库文件。其中,生成的设备驱动文件为.ldd格式文件,生成的C/C++源文件为.cpp格式的文件。
可选的,在生成动态库文件后,还可以判断该动态库文件是否成功生成,若判定该动态库文件生成成功,则继续下一步操作,将该动态库文件部署在该web服务器内,若判定该动态库文件生成不成功,则生成第一错误信息,告知开发者动态库文件生成识别。
可选的,当判定该动态库文件生成不成功,生成第一错误信息后,还可再次调用编译器对该C/C++源文件进行编译。
可选的,web服务器可以根据各FastCGI的负载状况来分配发送网站开发请求给FastCGI,使各FastCGI负载基本均衡。
可选的,web服务器可以先确定各FastCGI的负载状况,然后将网站开发请求发送给所有FastCGI中负载量最小的FastCGI,来根据各FastCGI的负载状况分配发送网站开发请求给FastCGI。
可选的,在web服务器接收客户端发送的网站开发请求后,还可以先判断接收的网站开发请求是否有效,当判定接收的网站开发请求有效时,再将接收的网站开发请求发送给FastCGI,反之,若判定接收的网站开发请求无效,则不再将接收的网站开发请求发送给FastCGI,而是向客户端返回第二错误信息,告知客户端其发送的网站开发请求无效。
可选的,可设置客户端在接收到第二错误信息后将该判定为无效的网站开发请求再次发送给web服务器。
步骤S110:所述FastCGI根据所述网站开发请求调用与所述网站开发请求相匹配的匹配动态库文件,控制所述匹配动态库文件根据所述网站开发请求动态生成html文件,并将所述html文件返回所述web服务器;
FastCGI根据接收的网站开发请求调用与该网站开发请求相匹配的匹配动态库文件,该匹配动态库文件根据该网站开发请求动态生成html文件,并在输出该html文件后将该html文件返回给web服务器。如此,开发调试网站只需要编写动态库即可,更新页面也将不必重启Web服务器。
可选的,FastCGI可以通过先根据网站开发请求确定与该网站开发请求相匹配的匹配动态库文件和动态库文件的名称,然后根据资源定位符USL和该动态库文件的名称确定匹配动态库文件的路径信息,最后调用该路径信息相对应的动态库文件,来根据网站开发请求调用与该网站开发请求相匹配的匹配动态库文件。
步骤S120:所述web服务器将所述html文件发送给所述客户端。
web服务器在接收到FastCGI发送来的html文件后,将将该html文件发送给客户端,使客户端可在接收到该html文件后在浏览器上进行显示。
可选的,当需要修改建立的动态网站的页面逻辑时,客户端可向web服务器发送页面逻辑修改指令,使web服务器对进行页面逻辑的修改。
可选的,Web服务器在接收到客户端发送的页面逻辑修改指令后,可先根据接收的页面逻辑修改指令确定需要修改的页面逻辑,然后将该需要修改的页面逻辑相对应的动态库文件进行修改或替换,最后重启FastCGI来实现对进行页面逻辑的修改。
也就是说,当需要修改页面逻辑时,通过本发明实施例提供的动态网站开发方法,只需要替换处理页面逻辑的动态库文件,并重启FastCGI程序就可以达到更新页面逻辑的效果,而无需重启Web服务器。
基于上述技术方案,本发明实施例提供的动态网站开发方法和系统,web服务器接收客户端发送的网站开发请求后,将接收的网站开发请求转发给FastCGI,其中,所述web服务器内部署有基于C/C++源文件编译生成的处理页面逻辑的动态库文件,FastCGI在接收到web服务器转发来的网站开发请求后,根据该网站开发请求调用与该网站开发请求相匹配的匹配动态库文件,控制该匹配动态库文件根据该网站开发请求动态生成相应的html文件,并将该html文件返回给web服务器,web服务器在收到该html文件后,将该html文件发送给客户端。通过基于C/C++源文件编译生成的处理页面逻辑的动态库文件生成相应的html文件,使用编译执行语言C/C++来开发动态网站,无需使用到解释器,也不再需要解析语句,具有更高的执行效率,且减少了系统资源的消耗,将动态库文件部署在web服务器内,而非直接将源代码或字节码部署到网页web服务器内,源代码不容易被窃取,保证了信息的安全性,由于动态库文件基于编译执行语言编译生成,web服务器可直接运行其中的0,1等代码,也大大降低了web服务器的硬件配置要求。
可选的,图2示出了本发明实施例提供的动态网站开发方法中将动态库文件部署在web服务器内的方法流程图,参照图2,该将动态库文件部署在web服务器内的方法可以包括:
步骤S200:基于C/C++源文件编译生成处理页面逻辑的动态库文件;
C/C++作为Web网页开发语言,目前基本已经形成国际标准,C/C++源代码可以在不同平台上跨平台编译运行。同时,C/C++编译执行语言,无需使用到解释器,也不再需要解析语句,具有更高的执行效率,且减少了系统资源的消耗。并且,由于动态库文件基于编译执行语言编译生成,web服务器可直接运行其中的0,1等代码,也大大降低了web服务器的硬件配置要求。
步骤S210:将所述动态库文件部署在所述web服务器内。
将动态库文件部署在web服务器内,而非直接将源代码或字节码部署到网页web服务器内,源代码不容易被窃取,保证了信息的安全性。
可选的,图3示出了本发明实施例提供的动态网站开发方法中生成动态库文件的方法流程图,参照图3,该生成动态库文件的方法可以包括:
步骤S300:将处理页面逻辑的C/C++源代码嵌入html文件中,生成设备驱动文件,其中,所述设备驱动文件为.ldd格式;
将处理页面逻辑的C/C++源代码嵌入html文件中,将生成一.ldd格式的设备驱动文件。
步骤S310:将所述设备驱动文件翻译为C/C++源文件,其中,所述C/C++源文件为.cpp格式;
对生成的.ldd格式的设备驱动文件进行翻译,将得到.cpp格式的C/C++源文件。
步骤S320:调用编译器对所述C/C++源文件进行编译,生成动态库文件。
在得到.cpp格式的C/C++源文件后,若调用编译器对该C/C++源文件进行编译,则将生成所需的动态库文件,此时,页面处理逻辑存放在该动态库文件中。
可选的,图4示出了本发明实施例提供的动态网站开发方法中生成第一错误信息的方法流程图,参照图4,该生成第一错误信息的方法可以包括:
步骤S400:判断是否成功生成所述动态库文件;
由于调用编译器对生成的C/C++源文件进行编译,生成动态库文件不一定成功,因此,可在调用编译器对生成的C/C++源文件进行编译,生成动态库文件后判断是否成功生成所述动态库文件。
步骤S410:若是,则将所述动态库文件部署在所述web服务器内;
若判定成功生成所述动态库文件,则可继续下一步操作,将该动态库文件部署在该web服务器内。
步骤S420:若否,则生成第一错误信息,并再次调用编译器对所述C/C++源文件进行编译。
若判定未能成功生成所述动态库文件,则可生成第一错误信息,告知开发者动态库文件生成识别,并可在生成第一错误信息再次调用编译器对该C/C++源文件进行编译。
可选的,图5示出了本发明实施例提供的动态网站开发方法中修改页面逻辑的方法流程图,参照图5,该修改页面逻辑的方法可以包括:
步骤S500:web服务器判断是否接收到所述客户端发送的页面逻辑修改指令;
当需要修改建立的动态网站的页面逻辑时,客户端可向web服务器发送页面逻辑修改指令,使web服务器对进行页面逻辑的修改,因此,可通过判断是否接收到客户端发送的页面逻辑修改指令来判断是否需要修改建立的动态网站的页面逻辑。
步骤S510:若接收到,则根据所述页面逻辑修改指令确定需要修改的页面逻辑;
若未接收到客户端发送的页面逻辑修改指令,则说明书研发者暂时不需要修改建立的动态网站的页面逻辑,可继续其他操作,若接收到客户端发送的页面逻辑修改指令,则说明研发者需要修改建立的动态网站的页面逻辑,则根据该页面逻辑修改指令确定需要修改的页面逻辑。
步骤S520:将所述需要修改的页面逻辑相对应的动态库文件进行修改或替换,重启所述FastCGI。
每个动态库文件可对应一个页面逻辑,因此,在确定需要修改的页面逻辑后,可根据该需要修改的页面逻辑找到其相对应的动态库文件,通过对该动态库文件进行修改或替换,来实现该页面逻辑的修改或替换,在对动态库文件进行修改或替换后,再重启FastCGI。
当需要修改页面逻辑时,通过本发明实施例提供的动态网站开发方法,只需要替换处理页面逻辑的动态库文件,并重启FastCGI程序就可以达到更新页面逻辑的效果,而无需重启Web服务器。
可选的,图6示出了本发明实施例提供的动态网站开发方法中web服务器将网站开发请求发送给FastCGI的方法流程图,参照图6,该web服务器将网站开发请求发送给FastCGI的方法可以包括:
步骤S600:所述web服务器确定各所述FastCGI的负载状况;
web服务器可以根据各FastCGI的负载状况来分配发送网站开发请求给FastCGI,使各FastCGI负载基本均衡,当web服务器根据各FastCGI的负载状况来分配发送网站开发请求给FastCGI时,需要web服务器先确认各FastCGI的负载状况。
步骤S610:将所述网站开发请求发送给所有所述FastCGI中负载量最小的FastCGI。
web服务器在确认各FastCGI的负载状况,便可根据各FastCGI的负载状况来向FastCGI各分配发送网站开发请求,其中,可通过每次将网站开发请求发送给所有FastCGI中负载量最小的FastCGI来使各FastCGI的负载基本均衡。
可选的,图7示出了本发明实施例提供的动态网站开发方法中生成第二错误信息的方法流程图,参照图7,该生成第二错误信息的方法可以包括:
步骤S700:判断所述网站开发请求是否有效;
由于客户端向web服务器发送的网站开发请求不一定为有效网站开发请求,因此,web服务器可在接收客户端发送的网站开发请求后,判断该客户端发送的网站开发请求是否有效。
步骤S710:若有效,则将所述网站开发请求发送给FastCGI;
若判定客户端发送的网站开发请求有效,则可继续下一步操作,将接收的该网站开发请求发送给FastCGI。
步骤S720:若无效,则向所述客户端返回第二错误信息。
若判定客户端发送的网站开发请求无效,则向客户端返回第二错误信息,补正继续后续操作。
可选的,可设置客户端在接收到第二错误信息后将该判定为无效的网站开发请求再次发送给web服务器。
可选的,图8示出了本发明实施例提供的动态网站开发方法中FastCGI根据网站开发请求调用动态库文件的方法流程图,参照图8,该FastCGI根据网站开发请求调用动态库文件的方法可以包括:
步骤S800:所述FastCGI根据所述网站开发请求确定与所述网站开发请求相匹配的匹配动态库文件和所述匹配动态库文件的名称;
FastCGI在接收到web服务器发送的网站开发请求后,将可根据该网站开发请求确定与该网站开发请求相匹配的匹配动态库文件和该匹配动态库文件的名称;
步骤S810:根据资源定位符USL和所述名称确定所述匹配动态库文件的路径信息;
在确定与该网站开发请求相匹配的匹配动态库文件和该匹配动态库文件的名称后,FastCGI便可根据资源定位符USL和该匹配动态库文件的名称确定该匹配动态库文件的路径信息。
步骤S820:调用所述路径信息相对应的动态库文件。
得到的路径信息相对应的动态库文件即为该FastCGI接收的网站开发请求相匹配的匹配动态库文件,调用该路径信息相对应的动态库文件,即调用与该网站开发请求相匹配的匹配动态库文件。
本发明实施例提供的动态网站开发方法,通过基于C/C++源文件编译生成的处理页面逻辑的动态库文件生成相应的html文件,使用编译执行语言C/C++来开发动态网站,无需使用到解释器,也不再需要解析语句,具有更高的执行效率,且减少了系统资源的消耗,将动态库文件部署在web服务器内,而非直接将源代码或字节码部署到网页web服务器内,源代码不容易被窃取,保证了信息的安全性,由于动态库文件基于编译执行语言编译生成,web服务器可直接运行其中的0,1等代码,也大大降低了web服务器的硬件配置要求。
下面对本发明实施例提供的动态网站开发系统进行介绍,下文描述的动态网站开发系统与上文描述的动态网站开发方法可相互对应参照。
图9为本发明实施例提供的动态网站开发系统的系统框图,参照图9,该动态网站开发系统可以包括:客户端10、web服务器20和FastCGI30,其中,
客户端10,用于向web服务器20发送网站开发请求;接收web服务器20发送的html文件;
服务器20部署有基于C/C++源文件编译生成的处理页面逻辑的动态库文件21,用于接收客户端10发送的网站开发请求,将所述网站开发请求发送给FastCGI30;接收FastCGI30返回的html文件,将所述html文件发送给客户端10;
FastCGI30,用于接收web服务器20发送的网站开发请求,根据所述网站开发请求调用与所述网站开发请求相匹配的匹配动态库文件,控制所述匹配动态库文件根据所述网站开发请求动态生成html文件,并将所述html文件返回所述web服务器20。
可选的,图10示出了本发明实施例提供的动态网站开发系统的另一系统框图,参照图10,该动态网站开发系统还可以包括:防火墙40。
客户端10通过防火墙40向web服务器20发送网站开发请求,并通过防火墙40接收web服务器20发送的html文件;
web服务器20通过防火墙40将所述html文件发送给客户端10。
本发明实施例提供的动态网站开发系统,通过基于C/C++源文件编译生成的处理页面逻辑的动态库文件生成相应的html文件,使用编译执行语言C/C++来开发动态网站,无需使用到解释器,也不再需要解析语句,具有更高的执行效率,且减少了系统资源的消耗,将动态库文件部署在web服务器内,而非直接将源代码或字节码部署到网页web服务器内,源代码不容易被窃取,保证了信息的安全性,由于动态库文件基于编译执行语言编译生成,web服务器可直接运行其中的0,1等代码,也大大降低了web服务器的硬件配置要求。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种动态网站开发方法,其特征在于,包括:
web服务器接收客户端发送的网站开发请求,将所述网站开发请求发送给FastCGI,其中,所述web服务器内部署有基于C/C++源文件编译生成的处理页面逻辑的动态库文件;
所述FastCGI根据所述网站开发请求调用与所述网站开发请求相匹配的匹配动态库文件,控制所述匹配动态库文件根据所述网站开发请求动态生成html文件,并将所述html文件返回所述web服务器;
所述web服务器将所述html文件发送给所述客户端;
其中,所述动态库文件的生成过程为:在所述web服务器接收客户端发送的网站开发请求前,基于C/C++源文件编译生成处理页面逻辑的动态库文件,将所述动态库文件部署在所述web服务器内;将处理页面逻辑的C/C++源代码嵌入html文件中,生成.ldd格式的设备驱动文件;将所述设备驱动文件翻译为.cpp格式的C/C++源文件;调用编译器对所述C/C++源文件进行编译,生成所述动态库文件。
2.根据权利要求1所述的动态网站开发方法,其特征在于,所述生成动态库文件后包括:
判断是否成功生成所述动态库文件;
若是,则将所述动态库文件部署在所述web服务器内;
若否,则生成第一错误信息,并再次调用编译器对所述C/C++源文件进行编译。
3.根据权利要求1所述的动态网站开发方法,其特征在于,还包括:
Web服务器判断是否接收到所述客户端发送的页面逻辑修改指令;
若接收到,则根据所述页面逻辑修改指令确定需要修改的页面逻辑;
将所述需要修改的页面逻辑相对应的动态库文件进行修改或替换,重启所述FastCGI。
4.根据权利要求1所述的动态网站开发方法,其特征在于,所述web服务器将所述网站开发请求发送给FastCGI包括:
所述web服务器确定各所述FastCGI的负载状况;
将所述网站开发请求发送给所有所述FastCGI中负载量最小的FastCGI。
5.根据权利要求1所述的动态网站开发方法,其特征在于,所述web服务器接收客户端发送的网站开发请求后还包括:
判断所述网站开发请求是否有效;
若有效,则将所述网站开发请求发送给FastCGI;
若无效,则向所述客户端返回第二错误信息。
6.根据权利要求1所述的动态网站开发方法,其特征在于,所述FastCGI根据所述网站开发请求调用与所述网站开发请求相匹配的匹配动态库文件包括:
所述FastCGI根据所述网站开发请求确定与所述网站开发请求相匹配的匹配动态库文件和所述匹配动态库文件的名称;
根据资源定位符USL和所述名称确定所述匹配动态库文件的路径信息;
调用所述路径信息相对应的动态库文件。
7.一种动态网站开发系统,其特征在于,包括:客户端、部署有基于C/C++源文件编译生成的处理页面逻辑的动态库文件的web服务器和FastCGI;其中,
所述客户端,用于向web服务器发送网站开发请求;接收所述web服务器发送的html文件;
所述web服务器,用于接收所述客户端发送的网站开发请求,将所述网站开发请求发送给所述FastCGI;接收所述FastCGI返回的html文件,将所述html文件发送给所述客户端;其中,所述web服务器内部署有基于C/C++源文件编译生成的处理页面逻辑的动态库文件;
所述FastCGI,用于接收所述web服务器发送的网站开发请求,根据所述网站开发请求调用与所述网站开发请求相匹配的匹配动态库文件,控制所述匹配动态库文件根据所述网站开发请求动态生成html文件,并将所述html文件返回所述web服务器;
其中,所述动态库文件的生成过程为:在所述web服务器接收客户端发送的网站开发请求前,基于C/C++源文件编译生成处理页面逻辑的动态库文件,将所述动态库文件部署在所述web服务器内;将处理页面逻辑的C/C++源代码嵌入html文件中,生成.ldd格式的设备驱动文件;将所述设备驱动文件翻译为.cpp格式的C/C++源文件;调用编译器对所述C/C++源文件进行编译,生成所述动态库文件。
8.根据权利要求7所述的动态网站开发系统,其特征在于,还包括:防火墙,
所述客户端通过所述防火墙向所述web服务器发送网站开发请求,并通过所述防火墙接收所述web服务器发送的html文件;
所述web服务器通过所述防火墙将所述html文件发送给所述客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510688505.6A CN105607898B (zh) | 2015-10-21 | 2015-10-21 | 一种动态网站开发方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510688505.6A CN105607898B (zh) | 2015-10-21 | 2015-10-21 | 一种动态网站开发方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105607898A CN105607898A (zh) | 2016-05-25 |
CN105607898B true CN105607898B (zh) | 2019-02-12 |
Family
ID=55987853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510688505.6A Active CN105607898B (zh) | 2015-10-21 | 2015-10-21 | 一种动态网站开发方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105607898B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109347894A (zh) * | 2018-08-10 | 2019-02-15 | 锐捷网络股份有限公司 | 管理FastCGI进程的方法、管理器、设备及介质 |
CN110209971B (zh) * | 2019-05-15 | 2023-07-28 | 朱容宇 | 一种网站重组还原的方法及系统 |
CN110413932B (zh) * | 2019-07-31 | 2022-05-06 | 北京金山云网络技术有限公司 | 页面显示方法、装置、终端、服务器、系统及存储介质 |
CN111596997B (zh) * | 2020-05-13 | 2021-02-09 | 深圳市宏电技术股份有限公司 | Ui信息的请求方法、装置、终端和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902537A (zh) * | 2012-09-19 | 2013-01-30 | 厦门亿联网络技术股份有限公司 | 基于FastCGI和HTML模板的嵌入式WEB MVC开发框架 |
CN103197922A (zh) * | 2012-01-06 | 2013-07-10 | 周晓红 | 用html开发(web)动态脚本的技术方法 |
CN104965909A (zh) * | 2015-07-03 | 2015-10-07 | 上海沃恩信息科技有限公司 | 一种动态web内容的请求处理方法 |
-
2015
- 2015-10-21 CN CN201510688505.6A patent/CN105607898B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197922A (zh) * | 2012-01-06 | 2013-07-10 | 周晓红 | 用html开发(web)动态脚本的技术方法 |
CN102902537A (zh) * | 2012-09-19 | 2013-01-30 | 厦门亿联网络技术股份有限公司 | 基于FastCGI和HTML模板的嵌入式WEB MVC开发框架 |
CN104965909A (zh) * | 2015-07-03 | 2015-10-07 | 上海沃恩信息科技有限公司 | 一种动态web内容的请求处理方法 |
Non-Patent Citations (2)
Title |
---|
Some Trends in Web Application Development;M Jazayeri;《2007 Future of Software Engineering》;20070630;全文 |
一种新型的C语言应用服务器开发技术;冀健;《深圳职业技术学院学报》;20060430(第4期);第6-9页 |
Also Published As
Publication number | Publication date |
---|---|
CN105607898A (zh) | 2016-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105100191B (zh) | 一种云编译实现Java应用安装的方法、装置及系统 | |
KR102354717B1 (ko) | 언어-독립형 디스패치를 위한 코드 서비스 기법 | |
EP3332309B1 (en) | Method and apparatus for facilitating a software update process over a network | |
CN105607898B (zh) | 一种动态网站开发方法和系统 | |
JP5650240B2 (ja) | オフデバイス・サービスを用いた実行コードのランタイム・プロビジョニングのための技術 | |
CN112329945A (zh) | 一种模型部署及推理的方法和装置 | |
US8848893B2 (en) | Method and apparatus for callback processing in telecommunication capability opening | |
KR20160060023A (ko) | 코드 가상화 및 원격 프로세스 호출 생성을 위한 방법 및 장치 | |
CN104821954A (zh) | 一种跨平台远程过程调用方法 | |
CN110580154A (zh) | 基于h5接入方式的接入方法及其接入组件和移动终端 | |
JP5209016B2 (ja) | WebAPI作成支援装置及びWebAPI作成支援方法 | |
CN108052340A (zh) | 一种应用升级方法、装置 | |
CN103618699A (zh) | 一种调用组件的方法及装置 | |
US20110145699A1 (en) | Annotation driven representational state transfer (rest) web services | |
CN115543419A (zh) | 一种软件开发工具包的生成方法、装置、设备及存储介质 | |
CN110716786B (zh) | 一种页面展示方法、系统及存储介质 | |
CN108958785B (zh) | 一种应用程序升级方法及装置 | |
CN103473034A (zh) | 一种动态发布Web 服务的方法和装置 | |
CN110362317B (zh) | 一种代码转换方法、装置和存储介质 | |
JP3757235B2 (ja) | ネイティブコンパイル方法、ネイティブコンパイル前処理方法、コンピュータプログラム、サーバ、通信システム、および移動体通信端末装置 | |
CN113179269A (zh) | 基于物联网的协议数据解析方法、系统、介质及程序产品 | |
CN107239265B (zh) | Java函数与C函数的绑定方法及装置 | |
CN114115884A (zh) | 一种编程服务的管理方法以及相关装置 | |
CN116755788A (zh) | 一种线上规则修改方法、装置、设备及存储介质 | |
CN115454878A (zh) | 一种应用于微服务的接口调用测试方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |