diff --git a/README.md b/README.md new file mode 100644 index 0000000..def5c13 --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# HTTP server +In order to become more familiar with web technologies and the +HTTP protocol, I built a web server using Rust. I went through +several iterations before I arrived at the final product, which +currently hosts this website. My first prototype followed the +web server [tutorial](https://doc.rust-lang.org/book/ch20-00-final-project-a-web-server.html) +in the official rust book. I expanded on the tutorial using the +Tokio async runtime and the tiny_http crate to build a rudimentary +web framework. It can serve static pages, rewrite faulty URLs, and +perform routing and redirects. +## Retirement +Maintaining a web server is a lot of work, and began to get in the way +of my other projects. After experimenting with several other web frameworks +like Axum and Bun, I decided to set up an Apache server instead. While this +Rust server is no longer in use, I plan on returning to it at a later date +and using it to host another one of my websites. +## What I learned +Through this process I learned about the life cycle of an HTTP request +and a TCP connection from the perspective of a web server. I now know +how to configure an SSL certificate, and integrate with a site with +Cloudflare. Now that I understand how a web server works at a low level, +I am comfortable using higher level libraries which abstract these details +away. + + +