后端程序员之路 21、一个cgi的c++封装

在"3、fastcgi、fastcgi++"中,我们了解了cgi,也尝试了fastcgi++,这里,再记录一种对fastcgi的封装。

1、cgi接口层
    request_t 请求,提供get、set、get_path、get_remote_ip
    response_t 应答,提供set_content_type、write
    cgi_handler_t int handle(request_t & req, response_t & resp)
    framework_t 包含init和run,由framework_factory来create_instance

2、fastcgi++实现
    fcgipp_handler_t : Fastcgipp::Request<char>,
        实现register_handler和response(),
        具体实现:
            fcgipp_request_impl_t request(env);
            fcgipp_response_impl_t response;
            int status = _p_handler->handle(request, response);
    fcgipp_framework_impl_t : framework_t
        fcgipp_handler_t::register_handler(p_handler);
        实现run:
            Fastcgipp::Manager<fcgipp_handler_t> fcgi;
            fcgi.handler();
    fcgipp_request_impl_t : request_t
        使用Fastcgipp::Http::Environment<char> & env
    fcgipp_response_impl_t : response_t
        处理headers和body来生产http应答内容

总结:
1、基于fastcgi++能够快速稳定有效的实现c++的fastcgi功能
2、通过封装,使fastcgi++的对外完全不可见,隐蔽了具体实现
3、仍然是cgi基础层,在上面还可以进行进一步的封装