C++ Server-Side-Scripting
C++ Server-Side-Scripting
这一次,我遇到了很多关于使用c++不适合SSS的东西,并建议使用所谓的解释语言,如PERL和PHP。但是我需要c++的高级面向对象特性和灵活性来确保代码的可扩展性和可管理性。
我已经尝试了许多互联网文章和搜索,没有一个有用的点,我仍然不知道是否有可能在c++中编写SS-Scripts,如果是,那么如何。
我想到了几个想法,包括用c++写一个web服务器,并在解析HTTP请求后做出相应的响应。但这将是重新发明轮子,我最终会偏离我的主要项目,并投入大量的工作来确保一个功能和安全的HTTP服务器。
我也考虑过PHP扩展,但是这种方法也有它自己的包袱和开销。
我的问题是:
- 可以在c++中编写SSS吗?
- 如果是,那么我可以使用的方法是什么?
谢谢!
暂时忽略使用c++进行SSS的可取性,您的第一选择可能是Wt。与其他一些答案的含义相反,没有开发时间可能增加10倍(或接近10倍)。不,你并没有错过所有你在PHP、Perl或Python中所期望的良好的基础结构特性。
事实上,我自己的经验恰恰相反:虽然PHP(例如)使一个网站的建立和运行相当容易,但创建一个真正稳定、安全、响应迅速的网站是完全不同的。对于Wt,情况似乎正好相反(至少以我有限的经验来看)。使初始站点启动并运行可能需要稍长的时间——但是只要它看起来、运行和感觉像您想要的那样,它可能只需要相当小的调整就可以准备好公开使用。回到可行性问题:用c++开发可能比在SSS市场上更常见的一些语言更复杂——但与做好安全性相比,它仍然是小菜一碟。如果有人在编写c++时遇到哪怕是最轻微的困难(例如,在不再需要内存时跟踪和释放内存),我绝对不希望他们接近我网站的代码。
我不建议这样做,但是您确实可以用c++(或C,或FORTRAN)编写CGI脚本。但为什么要这么麻烦呢?像PHP这样的语言做得更好,更容易,而且它们似乎可以很好地扩展到一些相当大的站点。
CGI是C或c++代码处理web请求的"标准"方式,但你也可以考虑编写一个在运行时链接到web服务器的模块。谷歌"apache模块API"(如果使用apache)或"IIS模块"(如果使用IIS)
你能负担得起10倍的开发时间吗?在php、perl、python中您认为理所当然的所有基础结构都不存在,或者在c++中更难使用。我认为这样做只有两个正当理由:1. 您的平台上只有c++。2. 服务器确实有非常高的性能需求,这将受益于针对特定问题的优化。
您可以使用适当的框架(如此框架)在c++中编写CGI应用程序。但我建议使用perl或php。这会节省你很多时间。那些工具更适合这种工作。
编辑:纠正链接
我无法理解您的确切要求(许可证等),但这可能是您正在寻找http://cppcms.sourceforge.net
- VisualStudio:使用 Suse Enterprise Server 12 SP5 时,不会下载远程库标头
- 如何在 Windows 2016 Server 版本 1607 中访问 SetThreadDescription()
- 使用 SQLConfig数据源创建 SQL Server DSN 失败:关键字-值对无效
- 如何将QTime保存在SQL Server Express表中并读回?
- 我需要安装什么才能获得在Windows Server 2012 R2 Standard上运行C++hello world
- boost beast Websocket Multi Request Server/Client 并不是真正的 mul
- Gstreamer:rtsp-server中的trickplay模式
- 无法从 SQL Server 检索数据
- 如何在将Visual Studio C++控制台应用程序连接到Microsoft SQL Server时修复"
- 以C++为目标的Windows Server Core
- SQL Server-未找到数据源名称,也未指定默认驱动程序
- 写入新值是构成前增量表达式"value computation"的一部分,还是"side effect"?
- 在Windows Server 2012上运行VS2019编译的应用程序需要什么?
- 我必须安装"libbitcoin-server"才能包含"bitcoin.hpp"
- SDL_Init失败并显示'SDL_Error: Failed to connect to the Mir Server'
- Python vs C++ for CUDA web server?
- 我应该如何使用SQL Server CLR来使用由C++ / C编译的UDT
- 如何在C++代码中连接 SQL Server 数据库
- 是否可以更改在优先级队列中添加具有相同优先级的"side"对象?
- C++ Server-Side-Scripting