filmov
tv
What happens when you type google.com into your browser and press enter? (Detailed Analysis)

Показать описание
Alex Github page
Chapters
0:00 Intro
1:54 Initial Typing
3:00 URL Parsing
7:40 DNS Lookup
19:15 TCP Connection
24:19 TLS, ALPN. SNI
33:38 First GET request
40:00 HTML Parsing
initial Typing
As you type g the browser will attempt a search and display an auto complete result of the previously visited sites
Some browser does an actual search using the default configured search engine we will skip that part. This will have he same effect as next steps
URL PARSE
HTTP or HTTPS? Determine the port
DNS Lookup
TO find out the IP address we do a DNS look up .first we ask the operating system, because the domain could be cached, we find that its not . The OS then looks through the hosts file and see if there is a n hardcoded entry , there isnt ..
Next the browser check if DoH is enabled DNS over HTTPS if yes then it communicate with the DNS provided (e.g cloud flair and ask for DNS) thats another TLS connection assume we are not using DoH The we establish an insecure UDP request to port 53 on the default DNS Configured on our router (could be 8.8.8.8 or 1.1.1.1) that in itself is a connection so we need to send the packet..
TCP connection
We know the IP we know the port! we can now establish a connection, we also know that we should also do TLS since its HTTPS and our client is smart enough to do TLS 1.3 so we will first do 3 way handshake and establish a TCP connection between 10.0.0.2 port random 1234 and 4.1.2.3 port 443
TLS, ALPN, SNI
First Request GET/
The client is now ready to send an actual HTTP data, so it builds header GET / since that is what we want to send, puts the hostname in the header and other stuff, checks if there are cookies and puts them, the whole thing is compressed and sent as a binary format. The data is then encrypted with the TLS symmetric key and sent..
The get request is then streamed into the HTTP/2 tcp connection and sent to the server.
HTML Parsing
Make multiple requests css? JS? Multiple streams?
If H1 then pipeline?
🛰 Network Engineering Videos
🏰 Load Balancing and Proxies Videos
🐘 Postgres Videos
🚢Docker
🧮 Programming Pattern Videos
🛡 Web Security Videos
🦠 HTTP Videos
🐍 Python Videos
🔆 Javascript Videos
Support me on PayPal
Stay Awesome,
Hussein
Комментарии