Skip to content

About

Custom HTTP/1.1 server in C

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

78 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aster server

HTTP/1.1 server in C

Note

The project is still in the development stage without a planned release date.

Overview

This is a zero-dependency C implementation of HTTP/1.1 server, specified by RFC 9112, RFC 9110, RFC 2616 and RFC 2068; featuring manually written parser (via a finite state machine).

Setup

To build the server, run

make

or, for a release build,

make bin/release

You can launch the server as follows:

sudo ./bin/server

Security

The parser is designed to reject with 400 Bad Request all messages deviating from specifications (like SP before header colon :), containing obsolete spec, and those containing elements that are now used as attack vectors (desync attacks such as CL.TE).

Goals

This is largely an educational project, which, in practice, may be run:

  • inside a private network or a container cluster;
  • as a purpose-built static origin;
  • in embedded environments;
  • behind a reverse proxy or a CDN (with caution).

Roadmap

  • HTTP/1.1 implementation
  • HTTP/1.0 support
  • HTTP/0.9 support
  • Proxy support

About

Custom HTTP/1.1 server in C

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages