我可以使用Boost.Asio和Boost.Beast库发出HTTPS请求或HTTP / 2请求吗?

时间:2018-06-23 13:14:58

标签: c++ boost boost-asio

我计划为我的项目构建一个C ++小型爬虫。我选择了Boost.Asio库来实现联网功能。但是后来,我遇到了Boost.Beast库,对于使用哪个库感到困惑。我有2个疑问:

问题1:

Boost.Asio是否支持HTTPSHTTP/2连接?

问题2:

Boost.AsioBoost.Beast有什么区别?

我搜索了一些文档,但是找不到有用的信息。此外,只有少数关于Boost库的文章。

谢谢。

1 个答案:

答案 0 :(得分:1)

第一季度:

不,它只会为您执行TCP。

第二季度:

Asio:

  

Boost.Asio是用于网络和底层的跨平台C ++库   为开发人员提供一致的I / O编程   使用现代C ++方法的异步模型。   https://www.boost.org/doc/libs/1_67_0/doc/html/boost_asio.html

野兽:

  

Beast是一个C ++仅标头库,可作为编写基础   提供低级的HTTP / 1,从而实现可互操作的网络库,   WebSocket,以及网络协议词汇类型和算法   使用Boost.Asio的一致异步模型。   https://www.boost.org/doc/libs/1_67_0/libs/beast/doc/html/index.html

简而言之,Asio是较低级别的产品,可帮助您构建异步程序,提供I / O帮助,并且在网络方面主要限于传输层。它对SSL有一些支持。

Beast较高级别,可在需要HTTP,Websockets等时为您提供帮助。它可与Asio互操作。