Getting Started

Before we get into the nuts and bolts of developing applications for the web we've got to cover some of the basics.

The Web vs. The Internet

Not to get too pedantic on you, but we need to start at the beginning, sort of. In order to define what we mean when we say "web app" or "web development" I think it's helpful to distinguish between the web and the wider world of the internet. Understanding the difference will help us better understand the scope of the tools that we aim to build.

The Internet

According to wikipedia the Internet is a global computer network providing a variety of information and communication facilities, consisting of interconnected networks using standardized communication protocols. In other words, it's the spider web of all the connected computers around the world that are able to communicate with each other using a set of standard methods.

The Web

In contrast, the Web is defined as an information system on the Internet that allows documents to be connected to other documents by hypertext links, enabling the user to search for information by moving from one document to another.

In order to build this system we needed two things, to agree on a set of protocols for a users computer to use when communicating with servers (or other users) and software that implemented the needed functionality to display documents and facilitate the linking between documents. This second requirement was the web browser.

As a system built on top of the internet, the web is the layer through which the majority of internet users interact with the network. The web browser has become the de-facto face of the internet, by displaying the sites that reside on the web. In doing so, the web browser has become one of the most popular software run-times out there.

Over time, as folks realized what you can do on top of the basic underpinnings of the web, browsers have matured, adding capability both as part of the underlying program as well as within the scripting runtime exposed to web pages.

The awesome thing about how the web has matured over time is that we can now build full-function applications that run inside of the browser, giving us a relatively standard, open, cross-platform (versions run on any operating system, Windows, Linux, etc...) runtime for client-side applications. And paired with the relatively simple yet powerful HTTP protocol for network communication we can build really complex, yet highly scalable tools for our users.

Here we will look at how modern web applications work, starting from the dirty underbelly of HTTP verbs through the ever growing forest that is JavaScript (technically ECMA Script) these days.