Write High Performance Web Server In C++

Posted By: ELK1nG

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

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