Skip to content

AustinHen/Web-Browser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is an HTML-only web browser written in Rust. It fetches files over HTTP/TCP/TLS and generates/renders DOM trees. I made this to mess around with network programming.

This browser uses HTTP 1.1. Implementing HTTP 1.1 on the client side has some interesting challenges. One of the main issues with 1.1 is that you need to do a TCP handshake for every file you want to download. Essentially, you have to ping the server before you can request a file for every file. Websites typically have three files as a bare minimum (HTML, JS, and CSS files) but can easily have way more (e.g. images, and fonts). If the client and server are on opposite sides of the US, a single TCP handshake can add over 100ms of delay. These messages don't contain any data and can add seconds of delay. Browsers using HTTP 1.1, in turn, have to use techniques such as multi-threading (where they send out multiple requests at once) to be usable.

Running:

Just call

cargo run

Demo:

Soon to be added

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages