Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I was recently asked this at a job interview, specifically when I type facebook.com. I'm not quite sure what the interviewee was looking for exactly since I was applying for a programming position but how can one answer this question at a high level?

share|improve this question

closed as not constructive by Xavierjazz, Keltari, Scott, TFM, Dave Apr 4 '13 at 9:36

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

    
What sort of job? Was he looking for behind the scenes (IT / dev job) or was it a process job where he likely wanted the process (Type Facebook.com, click GO or hit enter on the keyboard, wait for page to load, enter username... –  AthomSfere Apr 3 '13 at 23:20
    
It was a programming position but I think he was looking for behind the scenes....load balancers, etc. but high level. –  KingKongFrog Apr 3 '13 at 23:22
    
did you at least refer to DNS? –  Lorenzo Von Matterhorn Apr 3 '13 at 23:24
    
Nope...that's why I'm here. :) –  KingKongFrog Apr 3 '13 at 23:26
1  
There are A LOT of things that happen on many levels... it depends on how detailed you want to get... –  Keltari Apr 3 '13 at 23:36

4 Answers 4

High level overview of a HTTP request from the browser:

  1. You enter "facebook.com" into the address bar.
  2. Browser resolves this to the numeric IP address (this can be cached by the OS or require a trip out to a DNS server).
  3. Browser issues a "HTTP/GET" request. It passes along an HttpRequest which includes metadata about the browser, user preferences (like preferred language) and any stored cookies for that domain.
  4. Facebook servers receive the request and their code begins to craft a response.
    • Facebook will use the passed information including cookies to determine who the user is and what information to send back
  5. A HTTP Response is returned from Facebook including a status line (200 OK, etc). Headers which include content-type, etc and the HTML body.
  6. The browser receives the Response and begins to parse it for display.
    • The HTML body will include links to CSS, JS and images. All of these will trigger additional calls back to servers to retrieve those bits
  7. The browser layout engine will start to assemble the final page for display.
    • CSS information may alter the layout and look of the page
    • JS and DHTML may alter the layout of the page
  8. The final page is assembled and rendered to the end user.

The wikipedia Hyper Text Protocol article is a good starting point for the life cycle of an HTTP request.

share|improve this answer

Since you did not mention if this is programming specific, network or operating system specific I chose to assume it is meant on network level.

When you type in the address to the site you wish to see and press enter your machine/browser will first check if that domains IP address is cached somewhere either on browser level or operating system level. If not, it will try to resolve the IP address of that sites domain name by contacting a DNS server. Your operating system is either manually or automatically through DHCP configured with the IP address of one or more DNS servers which it can contact.

At some point in time the DNS server which was queried will reply with the IP address of the server/device associated with the domain name you entered. The TCP/IP packets can now be constructed and sent over the wire to the domain you entered to start communicating and transferring data back and forth to give you the content you asked for.

share|improve this answer

Like almost all interview questions, the interviewer wasn't looking for a specific answer but was looking to see your level of understanding of the process and to get you to walk them through your thought process. Most likely, they were looking for whether you could identify the various components (browser, ISP, HTTP, TCP, DNS, kernel, web server) and explain how they interacted.

share|improve this answer

I will give it a go, although it can (obviously) vary widely from site to site, browser to browser and exactly what he wanted or the direction he was coming from. One hiring manager might want a very detailed approach of the entire process and your familiarity with Facebook (If you were potentially going to work on say Facebook plugin) which I am not all too familiar with. I will leave out the process stuff.

  1. Enter "Facebook.com" into the address bar
  2. DNS should resolve to
  3. As Facebook loads, it will detect or create cookies based on if the user has been there before
  4. If there are cookies, Facebook may log user in, if not, sign in page is presented, and / or signup page.
  5. User logs in, case insensitive email address, and a masked secureString password box are used
  6. Login button is selected, secure password is salted, hashed and compared against the proper stored password for the username presented, and confirm both match a record.
  7. If successful, show Facebook 'WALL', else show a failed message and allow retry. JS should store invalid attempt for a maximum of X attempts, as well as write to user record for invalid attempt in case of brute force.
share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.