Most people building websites nowadays use nginx or appache to reverse proxy the real dynamic content server instead of directly expose the underlying server directly as
- nobody would expose their underlying server directly to outside world, as they would like find CVE in their underlying server or their server would be under attack by hackers.
The http/https code in nginx and appache are much more battle tested and has less bug.
- people who really needs to use C++ to write their dynamic content server would probably also use distributed computing and fastCGI is a more efficient protocol to use than http or https
- performance of https in
nginx and appache is probably much better than crow
- developers are familiar with
nginx and appache and know how to tune them. Some might even has special patch applied to them for their own use case
- Separating https server and content server enables them to run at different privileges:
The https server could run as root while the content server can run as a normal user.
Any bug in content server won't cause privilege escalation or crash in https server and the user won't feel the crash of content server as the server can be restarted in background without the https connection being closed.
There are broader audience who needs fastCGI in their content server.
While nginx and appache can also proxy http, it is slower than fastCGI as
- http is a text based protocol while fastCGI is a binary one
- fastCGI support multiplexing while http does not
- fastCGI support unix socket for proxying local server while http does not
and nobody in their right mind would proxy their underlying content server over https as it is too heavy weight.
The right solution here is fastCGI. It is designed for this kind of application, so the experience programming with fastCGI is probably better than http.
Thus I think crow should have fastCGI support as it is extremely important.
I found archive of the specification of fastCGI here and it also has a reference implementation of fastCGI library fcgi2.
There are also kcgi and fastcgipp that are C and C++ server that supports fastCGI.
Most people building websites nowadays use
nginxorappacheto reverse proxy the real dynamic content server instead of directly expose the underlying server directly asThe http/https code in
nginxandappacheare much more battle tested and has less bug.nginxandappacheis probably much better thancrownginxandappacheand know how to tune them. Some might even has special patch applied to them for their own use caseThe https server could run as root while the content server can run as a normal user.
Any bug in content server won't cause privilege escalation or crash in https server and the user won't feel the crash of content server as the server can be restarted in background without the https connection being closed.
There are broader audience who needs fastCGI in their content server.
While
nginxandappachecan also proxy http, it is slower than fastCGI asand nobody in their right mind would proxy their underlying content server over https as it is too heavy weight.
The right solution here is fastCGI. It is designed for this kind of application, so the experience programming with fastCGI is probably better than http.
Thus I think crow should have fastCGI support as it is extremely important.
I found archive of the specification of fastCGI here and it also has a reference implementation of fastCGI library fcgi2.
There are also kcgi and fastcgipp that are
CandC++server that supports fastCGI.