http 服务器

http 服务器建构在tcp 服务器之上。内置完整的form处理,可以自动解析GET和POST表单,支持POST文件上传,并且支持会话管理和缓存机制。开发者完全可以将其视为完整的的支持http/1.1的应用服务器。

来看代码:

  1. #include <mongols/http_server.hpp>
  2. int main(int, char**) {
  3. auto f = [](const mongols::request&) {
  4. return true;
  5. };
  6. auto g = [](const mongols::request& req, mongols::response & res) {
  7. res.content = std::move("hello,world");
  8. res.status = 200;
  9. };
  10. int port = 9090;
  11. const char* host = "127.0.0.1";
  12. mongols::http_server
  13. server(host, port, 5000, 8096, 0/*2*/);
  14. server.set_enable_session(false);
  15. server.set_enable_cache(false);
  16. server.run(f, g);
  17. }

http服务器构造时可以通过第五个参数选择是否使用多线程机制,当其为大于0时,其值为工作线程数。

run方法需要两个函数参数,第一个可用来过滤客户端,第二个则用来生成响应。

http_server的并发性能非常好,远高于常见的基于libevent、libev或者libuv的其他http服务器:

ab_http

mongols

原文: https://mongols.hi-nginx.com/doc/http.html