Skip to content

DrkWithT/H2Plus-HTTP2-Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

Brief

A simple HTTP/2 cleartext server made with C++. The purpose of this project is to help myself learn more about the web, its HTTP protocol, and review C++. I do not intend this to be production ready at all and this will take some time to get working.

WIP Screenshots

Notes

  • Only works on Unix-y systems because of the GNU Makefile.
  • Create the bin and build folder at the project root for the build to work.
  • Files in mains with names such as test_* are the unit tests.

Todos

  1. Make special collections: BitArray, Prefix BT
  2. HPACK Huffman encoder & decoder.
  3. HPACK header indexing table (static, dynamic).
  4. HPACK string and integer encoder & decoder.
  5. Make HPACK context class.
    • Make unit tests with mock headers. See RFC 7541 5.2 for how the Huffman flag is put by the string length.
  6. Make HTTP/2 streams and other utils.
  • Make Http2Stream.
  • Consider stream priority tree and algorithm...
  • Make HTTP/2 FrameScanner and FrameWriter.
  • Make Http2Connection.
  1. Create server workers.
  2. Create server driver.
  3. Put together thread pool implementation.
  4. Finish up driver class of server.
  5. Test with cURL.

Other Notes:

  • Probably install and use the s2n SSL library because openssl is verbose.

Releases

No releases published

Packages

No packages published