Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Write High Performance Web Server in C++
Rating: 3.5 out of 5(1 rating)
22 students

Write High Performance Web Server in C++

Learn socket programming in C++ on Linux
Created byJames Jiang
Last updated 7/2025
English
English [Auto],

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

Course content

14 sections41 lectures3h 16m total length
  • Project Overview2:02

    Hello every, in this course we will learn to write a high performacne webserver step by step.

    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.

    In next lecture, we setup development environment.

  • Course Preparation4:23

    Project overview

    Hello every, in this course we will learn to write a high performacne webserver step by step.

    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.

    In next lecture, we setup development environment.

    Course Preparation

    Installation and setup

    In this lecture we will setup webserver development environment.

    The webserver discussed in this course is development in Linux. So you need a Linux system on your machine. I use ubuntu22 on wsl2 in Windows. Other Linux distribution will be fine. We can use apt-ge t install command to install softwares on Ubuntu22.

    We can install VSCode on Windows and use ssl to connect to ubuntu22.

    Some advanced C++ skills is described with VisualStudio, so we need to install VisualStudio on Windows.

    This course hase some prerequisites:

    Basic C++ programming (required)

    Basic Linux environment programming skills

    Basic make and cmake config skills

    Basic concurrency programming conceptions (not required but helpful)

    Basic HTTP protocol conceptions

    All the source code discussed in this class can be downloaded in this two repositories.

    Why chose C++

    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.

    You we will many programming skills in this course.

    Advanced C/C++ programming skills

    Adcanced Linux environment programming skills

    VSCode C++ programming skills

    VisualStudio C++ programming skills

    make build system

    cmake build system

    socket programming skills

    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.

Who this course is for:

  • Beginner C++ development who want to build a high performance web server