Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Sorry if this is a naive title. I am trying to break into web development. I have taken a basic intro to OS, intro to Networking as part of my bachelors degree several years ago. I cannot say that we went into things deeply, beyond academic assignments. I would like to understand things much better regarding to this specific task (e.g what goes on in at the OS level, at networking level, what are other computers involved, where do proxy servers and hackers come in). Again, at the very basic level this has been covered, but I would like to review this specific thing better. Are there chapter(s) os a specific book, or specific SHORT reading that you recommend? I have nothing against your list of 20 favorite books, but I want to understand this one thing better in 2-3 weeks of reading after work / on the weekends (realistically 5-10 hrs per week, so I am looking for about 15-20 hrs of reading material, NO MORE). I am not a fast reader :) Thanks.

share|improve this question
    
It's very hard to answer this question. Too broad. –  bigown Jan 4 '11 at 16:10
add comment

3 Answers 3

up vote 4 down vote accepted

Well, as with most things in computers, it's a lot of relatively simple concepts stitched together. To understand it fairly deeply (but not EE-deep, since I don't go there), you could start by learning these networking concepts:

  • TCP/IP - since it's how the various players will talk to each other; you could learn Ethernet too - since you are likely on an Ethernet network, but that falls further into EE world. The OSI model may be a useful primer if you're not familiar with it already.
  • DNS - since it's how what the user types in gets translated to IP addresses for the TCP/IP calls. Circularly enough, it's also implemented in IP - which is why it's second. It's the application layer in the OSI model.
  • HTTP - since it's the application layer (there's that OSI model again) that will be used between the client and the web server.
  • HTTP variations and standards, for the proxy server and hacker issues

For things like these (general Internet standards), the actual RFCs are gold. They can be dry, they can be vague, and they may not 100% reflect shipping products - but they are the best general technical resource IMO.

As usual, Wikipedia is a great first-level resource for all of this as well. It'll tell you the basics, and generally link you to the correct RFCs (RFCs have a habit of being updated, superseded, not implemented, etc. so the quick Google searches I did are likely to be somewhat incorrect).

The OS side is a bit harder. Since it's not a "standard", there's no published reference to any of it. And, even better, different OS will do things slightly differently. I'm mainly a Windows guy - I learn this type of stuff from blogs; Mark Russinovich and Raymond Chen are the 2 best guys I know of to give you this seriously technical stuff.

  • OS execution - terribly complicated, you could spend years on this topic. For the purpose of web apps, it's probably enough to know the basics of memory models and maybe a little bit of assembly language to understand how the web server and browser will do their jobs.
  • Pick a webserver, and it's processing model. I'm a Windows guy, so here's IIS. Since every webserver will have an extension model, it's likely that what's happening after the initial request is that it's passed to another program. So, you'll have the transfer of the request, and then you can dive into the extensions processing model. At the end of the day, they'll all buffer up a string of HTML to send back over HTTP to the client.

Speaking of HTML, now you need to know the rules for that (and CSS) so that you know what the browser does to parse it into visual elements. Oh - and since this all shows in a GUI program, you can now start down the road of message loops and input handling. It really never ends - one of the greatest (and worst) things about this profession.

share|improve this answer
add comment

To answer the specific question in your title, the term you're looking for is "web page life cycle".

This page describes the cycle for an ASP.NET page. The terms are general (for the most part), but the details of the actions are specific for ASP.NET.

share|improve this answer
    
Good answer, though specific to ASP.NET development, and very "object-orienty." I think a more general approach would be appropriate for Job's level of experience. –  jbm Jan 4 '11 at 0:46
    
Thanks, this is not overwhelming, but ASP.NET - specific. I will check it out. –  Job Jan 4 '11 at 1:38
add comment

"Web development" is a very broad term, as I think you understand by breaking down some of the layers. Given your background, I think you should look at this page. It should give you more vocabulary to find out what you want to study next. That covers the "web" portion. As you find out more, the "development" portion will become clearer. A little more than half-way down that page is a line answering your question.

Basically:

When you type a URL into a web browser, this is what happens:

  1. If the URL contains a domain name, the browser first connects to a domain name server and retrieves the corresponding IP address for the web server.

  2. The web browser connects to the web server and sends an HTTP request (via the protocol stack) for the desired web page.

  3. The web server receives the request and checks for the desired page. If the page exists, the web server sends it. If the server cannot find the requested page, it will send an HTTP 404 error message. (404 means 'Page Not Found' as anyone who has surfed the web probably knows.)

  4. The web browser receives the page back and the connection is closed.

  5. The browser then parses through the page and looks for other page elements it needs to complete the web page. These usually include images, applets, etc.

  6. For each element needed, the browser makes additiona l connections and HTTP requests to the server for each element.

  7. When the browser has finished loading all images, applets, etc. the page will be completely loaded in the browser window.

share|improve this answer
    
Thank you, I meant a bit deeper. –  Job Jan 4 '11 at 1:34
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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