Write High Performance Web Server In C++
Published 7/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.48 GB | Duration: 3h 16m
Published 7/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.48 GB | Duration: 3h 16m
Learn socket programming in C++ on Linux
What you'll learn
Advanced C/C++ programming skills
Advanced Linux environment programming skills
VSCode C++ programming skills
VisualStudio C++ programming skills
make build system
cmake build system
Linux epoll conception
Reactor patterns
High Performance Webserver design and implement
TCP server design and implement
HTTP server design and implement
File server design and implement
Webbench design and implement
Requirements
Basic C++ programming
Basic Linux environment programming skills
Basic make and cmake config skills
Basic concurrency programming conceptions
Basic HTTP protocol conceptions
Description
This is a practical course, we will create a series of small projects list in this slide to build our webserver.We will learn socket programming skills to create a basic echo server. This server can only handle request and send messsage back to the client.We will learn epoll and Reactor patterns to create a high performance TCP server. This server can handle thounds of connections.We will learn concurrency programming skills to write a benchmark to send thounds of request to test our server.We will learn http protocol conceptions to write a HTTP server. We can use browser to send request to the server.We will design and implement a Logger module to collect messages. The messages colllected by the Logger are stored in the LogFiles.We will design and implement a File server. We can upload and download files from this server.After we created these projects, we will be proficient in sock programming skills and can write our own high performance webserve.Choosing C++ for web server development has several advantages:Increased speed and reduced load on servers due to C++'s performance.Fine control over every aspect of web applications.Efficient resource management.Ability to integrate complex functionalities.
Overview
Section 1: Introduction
Lecture 1 Project Overview
Lecture 2 Course Preparation
Section 2: Socket Programming in C++
Lecture 3 Introduction to Socket Programming
Lecture 4 Create a Socket Server
Lecture 5 Create a Socket Client
Lecture 6 Make Program More Robust
Section 3: Network Programming with Epoll
Lecture 7 Introduction to Epoll Stystem Call
Lecture 8 Refactoring Program with OOP Paradigm
Lecture 9 Encapsulate epoll_data in the Channel Class
Section 4: Reactor Programming Pattern
Lecture 10 Introduction to Reactor Pattern
Lecture 11 Design the EventLoop Class
Lecture 12 Design the Acceptor Class
Lecture 13 Design the Connection Class
Lecture 14 Improve IO Performance with Buffer
Section 5: Programming Concurrency in C++
Lecture 15 Multithreading in C++
Lecture 16 Mutex in C++
Lecture 17 Condition Variables in C++
Section 6: Multithreading Network Programming
Lecture 18 Manage Threads with Thread Poll
Lecture 19 Create a Benchmark Test for Server
Lecture 20 Master-slave Reactor Pattern
Lecture 21 Refactor Connection Class
Section 7: Smart Pointers in C++
Lecture 22 Introduction to C++ Smart Pointers
Lecture 23 Common Problems with Shared Pointers
Section 8: Network Programming with Smart Pointers
Lecture 24 Manage Resource with unique_ptr
Lecture 25 Manage Connection Lifecycle with shared_ptr
Lecture 26 Setup Build System with CMake
Lecture 27 Create Subreactor in Subthread
Section 9: Build a Http Server
Lecture 28 Create HTTP Parser
Lecture 29 Create Http Server
Section 10: Manage Connection with Timer
Lecture 30 Introduction to timerfd
Lecture 31 Implement a Timer with timerfd
Lecture 32 Close Connection by Timer
Section 11: Create a Logger
Lecture 33 Create a LogStream
Lecture 34 Create a Sync Logger
Lecture 35 Create an Async Logger
Section 12: Web Server Improvements
Lecture 36 Buffer Efficiency
Lecture 37 Write Performance
Lecture 38 Static Web Page Server
Section 13: File Server Implement
Lecture 39 Display and Download File
Lecture 40 Upload File
Section 14: Web Bench
Lecture 41 Web Bench Design and Usage
Beginner C++ development who want to build a high performance web server