首页 > Web开发 > 详细

http server

时间:2020-01-03 10:47:26      阅读:80      评论:0      收藏:0      [点我收藏+]

相关链接

用 C++ 写 HTTPS 客户端和服务器大体步骤
从零编写c++之http服务器(3)-http服务

libuv(libevent) + openssl(schannel.dll)

  1. 用libuv处理server socket
bind
listen
accept
read->write
  1. 用openssl处理ssl/tls,mem_bio可以使你不必使用openssl自己的socket操作
    ```c++
    BIO_write
    BIO_rea
  2. 用joyent/http_parser解析http协议
  3. 构造响应信息,这是一个完全的字符串操作
  4. 反过来,用openssl加密
  5. 用libuv把数据写入socket

    windows下可以用schannel.dll代替openssl;
    openssl也可以读取.pfx文件,不必非要pem/pvk

boost库:

如果你要练手,以熟悉 HTTP + SSL 协议的话,推荐看看这个:
doc/html/boost_asio/example/ssl/server.cpp
doc/html/boost_asio/example/ssl/client.cpp

如果你要具体用到实际项目中,强烈不建议自己造轮子,因为光 HTTP/1.0,HTTP/1.1,HTTP/2 就要自己解析协议搞半天,加上 SSL 就更复杂了,在你徒手解析协议的时候,其他人的产品都上线了。推荐以下库:
curlpp:libcurl 的 C++ 封装 GitHub - datacratic/curlpp: C++ bindings for cURL
cpp-netlib:基于 boost.asio 的一个网络库 cpp-netlib: The C++ Network Library

Httpapi.dll:

HTTP Server API Version 2.0 Reference (Windows)
读完这个你就懂了,就那么几个函数,自动使用IOCP和http.sys,根本无需担心性能问题,只要写你的业务逻辑就好了。
msdn还有良心sample:HTTP Server Sample Application (Windows)

http server

原文:https://www.cnblogs.com/hjbf/p/12143523.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!