edit-article
Home
Up
Delete
Article Name:
Article Description:
] what happens when you _ - type google.com into the browser's address bar -
Chapter ID/Name:
Status:
Write
Writing
Written
Add Photo:
Owner ID:
Content:
use HTML
Edit Content
<h1 style="text-align: center;">what happens when you ...</h1> <h1 style="text-align: center;">... type 'google.com' into your web browsers address bar</h1> <h2>[WHAT]</h2> <ol> <li>] what happens when you _ - __ = type 'google.com' into the browser's address bar </li> <li>] is a common technichal interview question </li> </ol> <h2>[WHY]</h2> <ol> <li>] gauge your understanding of technical processes, </li> <li>] including the depth of your knowledge</li> <li>] give you something to talk about </li> </ol> <h2>[WHERE]</h2> <ol> <li>] READ THE ORIGINAL</li> <ol> <li>] <a href="https://github.com/alex/what-happens-when" target="_blank">https://github.com/alex/what-happens-when</a> SRC=hn <a href="https://news.ycombinator.com/item?id=8902105" target="_blank">comments</a>(160+), <a href="https://news.ycombinator.com/item?id=9189096" target="_blank">comments</a>(43+)</li> </ol></ol> <h2>[WHEN]</h2> <ol> <li>]</li> </ol> <h2>[EXAMPLE - 1 simple]</h2> <ol> <li>] you web browser displays the google.com home page</li> </ol> <div> <h2>[EXAMPLE - 2 simple]</h2> <ol> <li>] your browser sends a 'request' to 'google' via the internet</li> <li>] the request travels from your {device} via the network it is connected to and is routed via the internet to googles web server</li> <li>] googles web server recieves your request. 'processes it', then sends their response back to your device via the internet </li> <li>] your browser recieves the 'response' from google</li> <li>] your browser 'processes' the information in the response to generate the output it will display</li> <li>] your browser displays the processed information on your devices screen</li> <li>] </li> </ol></div> <h2>[HOW-TO]</h2> <ol> <li>]</li> </ol> <h2>[REFERENCE]</h2> <ol> <li>] </li> </ol><hr /> <p><span class="c00">That's part of the point of the question - which part you go into detail on is a pretty good indication where your strengths lie. Someone who spends a lot of time on1] <strong>DNS and SYN/ACK is probably a low-level networking guru,</strong> and the rest of the interview should be structured accordingly. Someone who immediately jumps into 2] <strong>HTTP requests, HTML parsing, and stylesheet application is probably a web developer</strong>, and the rest of the interview should be structured accordingly. Someone who talks about the 3] <strong>enter key firing off an interrupt that the keyboard device driver handles and puts into a message queue for the windowing system's event loop to handle is a low-level desktop OS person.</strong> Someone who talks about 4] <strong>the browser retrieving the event from the window loop, dispatching it the urlbar's hwnd, and kicking off an HTTP request is a Windows application programmer.</strong></span></p> <p>The advantage of this over just looking at someone's resume is that you can tease out areas of strength beyond someone's particular work experience, so that if eg. you get someone who's been stuck doing Win32 programming his whole life but has managed to teach himself a bunch of web technologies on his own time, he can talk intelligently about the browser's style rendering. It can also identify areas of cross-training, eg. the bulk of my professional experience is in web development, but I know enough about how the other layers of the stack work to write this comment.</p> <hr /> <p><span class="c00">And someone who says "duh it shows the Google homepage" is destined for the executive team</span></p> <p><span class="c00">What if I can go from matrix scanning algorithm used by keyboard controllers firmware, usb descriptors used (hierarchy, order, meaning of fields, direction), kernel (usb driver, keyboard driver), system (windows keyboard event), program (event loop, logic, tons of stuff here to decide what to do), back to system (dsn query, cache or network driver), network(can start on 4th osi layer and go all the way to 1) .... up to the part how mighty Google cluster identifies you even when you are not logged in and browse in private mode with no cookies, concluded by the statement that clicking enter begins your adventure of being a product Google sells? Every step of the way from sub 10 millisecond (usb polling, in reality nothing happens when you press enter :P) up to three months in the future (Googles earning report).</span></p> <hr /> <p><span class="c00">side discussion and reference article on "browser fingerprinting", or how google(and others) identifies who you are, even when your NOT logged in and perhaps even in incognito mode</span></p> <hr /> <p><span class="c00"><br /></span></p> <p><span class="c00"><span class="c00">There is also a very good introductory answer in this subject by Jean-Baptiste Quéru in 2013 [1] where he takes the revers approach of when the page is displayed, then talks about connection, OS, etc. "simplifying" the answer and going down several levels of abstraction and complexities to give the proper overwhelming sense that this question should impose.</span></span></p> <p>It is a very fun text to read and I really recommend it.</p> <p> </p> <p>[1] <a href="https://plus.google.com/u/0/+JeanBaptisteQueru/posts/dfydM2Cnepe" rel="nofollow" target="_blank">https://plus.google.com/u/0/+JeanBaptisteQueru/posts/dfydM2C...</a></p>