Web 服務,是服務器開發中的一個基本單元,每一次 web 通信都要在服務器和客戶端之間傳遞數據,看似簡單,卻要經過不少步驟,最好的做法是把服務端的請求和響應部分的過程抽象出來形成框架,實現最高級別的框架級代碼復用。
長期以來,編寫易於維護、可移植的網絡代碼一直是一個問題。C++ 通過引入 boost.asio
來解決此問題。boost.asio
是用於網絡和底層 I/O 編程的跨平台 C++ 庫,使用現代 C++ 方法為開發人員提供一致的異步模型。
今天帶來一門用 C++ 來實現 Web 服務框架的教程,手把手帶你擼一個 Web 服務框架,順便學習 C++ 基礎知識、Boost Asio 相關知識:
涉及知識點:
-
C++ 基本知識
-
面向對象
-
模板
-
命名空間
-
常用 IO 庫
-
C++11 相關
-
lambda expression
-
std::shared_ptr
-
std::make_shared
-
std::unordered_map
-
std::regex
-
std::smatch
-
std::regex_match
-
std::function
-
std::thread
-
Boost Asio 相關
-
boost::asio::io_service
-
boost::asio::ip::tcp::socket
-
boost::asio::ip::tcp::v4()
-
boost::asio::ip::tcp::endpoint
-
boost::asio::ip::tcp::acceptor
-
boost::asio::streambuf
-
boost::asio::async_read
-
boost::asio::async_read_until
-
boost::asio::async_write
-
boost::asio::transfer_exactly
-
boost::asio::ssl::stream
-
boost::asio::ssl::stream_base::server
-
boost::asio::ssl::context
-
boost::asio::ssl::context::sslv23
-
boost::asio::ssl::context::pem
-
boost::system::error_code
-
HTTPS Web 框架的設計與實現
-
證書文件的創建
項目效果圖:
HTTP Web 框架:
HTTPS Web 框架:
關於該項目詳細的開發步驟、思路以及代碼詳解,點擊《C++ 實現 Web 服務框架》即可馬上查看了~