Go to file
2024-07-31 18:35:42 -05:00
hyper-build added to forte 2024-04-28 19:49:30 -05:00
hyper-src added to forte 2024-04-28 19:49:30 -05:00
js added forte bin 2024-04-28 19:54:16 -05:00
resources Initial Commit 2024-04-28 17:11:48 -05:00
src added to forte 2024-04-28 19:49:30 -05:00
styles Several amends 2024-04-28 18:19:41 -05:00
temp Initial Commit 2024-04-28 17:11:48 -05:00
templates Several amends 2024-04-28 18:19:41 -05:00
.gitignore removed hyper-build from git 2024-04-28 19:55:36 -05:00
404.html Initial Commit 2024-04-28 17:11:48 -05:00
Cargo.lock added to forte 2024-04-28 19:49:30 -05:00
Cargo.toml Initial Commit 2024-04-28 17:11:48 -05:00
html Initial Commit 2024-04-28 17:11:48 -05:00
nohup.out added to forte 2024-04-28 19:49:30 -05:00
README.md Added README.md 2024-07-31 18:35:42 -05:00
resume.pdf Initial Commit 2024-04-28 17:11:48 -05:00
start.sh Initial Commit 2024-04-28 17:11:48 -05:00

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 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.