Poco 是基于C++ 的一个网络库,主要有以下特点:
- 使用高效的,现代的标准ANSI/ISO C++,并基于STL
- 高可移植性,支持多种平台,包括Windows,Linux,OS X 等
- 开源,并使用Boost Software License发布,完全免费
本文介绍一下使用Poco 在本地建立Http Server,用于响应Client的Http 请求。
HTTPServer:
根据官网的介绍,HTTPServer 是TCPServer 的子类,用于实现一个多种特性的多线程HTTP Server,使用的时候必须提供一个HTTPRequestHandlerFactory ,并且 ServerSocket 必须提升到监听状态,为了配置server端,可以传递一个 HTTPServerParams 给构造函数。
Server 支持:
- HTTP/1.0 and HTTP/1.1
- 自动处理持久的连接
- 使用分块传输编码自动对请求的消息体解码,并对响应的消息体编码
HTTPRequestHandlerFactory :
是 HTTPRequestHandler 对象的一个工厂,子类必须要重写 createRequestHandler() 方法。
下面我们看一下createRequestHandler() 方法 的定义:
virtual HTTPRequestHandler * createRequestHandler(
const HTTPServerRequest & request
) = 0;