Web fundamentals, Part 1: Introduction
Although I had the first contact with the web relatively late (about 8 years) ago, I still remember generating tables is plain ASP by combining server-side JavaScript with HTML code. Web development has matured a lot since then with many new frameworks, patterns, technologies, etc that try to hide all the low-level details and offer high-level constructs. All this is fine as long as it works as expected. However, as you know, that’s not always the case and when it’s broken knowing the low-level stuff helps a lot. I have the feeling that new developers get used to the high-level concepts and are “scared” by the basics of web such as HTTP, HTML, CSS and JavaScript. With little effort to learn this basic concepts, you are in a much better position to understand how all fits together.
The last couple of years, especially in the Microsoft & Java World, the focus has been on hiding the details as much as possible. ASP.NET web forms tried to create a model similar to desktop applications, hiding all the interaction between the client and the server. It worked well for basic scenarios, but in the long term it proved far from an ideal solution. Microsoft realized this and is now adopting the well know MVC pattern in the form of ASP.NET MVC (Check out Scott Guthrie’s blog at http://weblogs.asp.net/Scottgu/ for a lot of useful information on ASP.NET MVC). Also a lot of other open source frameworks from Ruby on Rails to Spring use a similar pattern. What all of them have in common is the push for separating the View (HTML) from the Model and Controller. This has the side effect that developers (designers) need to be familiar with raw HTML and CSS to create nice looking sites. For this and other reasons I decided to write a series of posts dedicated to Web Fundamentals. This will include topics such as:
- The basics of HTTP protocol, HTTP headers, difference between POST & GET, SSL, etc.
- HTML & DOM: It’s all about tags.
- How CSS can be used to style a website.
- Using JavaScript to manipulate the DOM.
- The “magic” of server side session and cookies.
- The new “sexy” technology called AJAX.
The plan is to have one new article each week, time permitting. I hope you’ll enjoy and learn from them…
Check out the first article Web fundamentals, Part 2: HTTP Basics.