zoukankan      html  css  js  c++  java
  • 后端程序员之路 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基础层,在上面还可以进行进一步的封装

  • 相关阅读:
    '?'变化左右括号,使得字符串括号匹配
    二叉树中最大值节电和最小值节点之间的路径
    python 处理传输层的报文 TCP/UDP
    hook笔记分享
    scrapy-splash学习
    pycharm解决关闭flask后依旧可以访问服务
    python一些常用代码块
    阿里系纯滑块验证码破解思路
    python代理池搭建
    关于scrapy的验证码处理
  • 原文地址:https://www.cnblogs.com/zapline/p/6604780.html
Copyright © 2011-2022 走看看