Okay–so now we’ve discussed basic browsers, HTML, HTTP–which is how the browsers talk to the servers– and now we’re finally going to get to servers, which is what most of this course is going to be about– how to run programs on servers. The purpose of a server is to respond to HTTP requests. We’ve drawn this picture a couple of times now. This is you, this is your computer running your browser, and these are our servers–these little pink boxes. Your browser is speaking HTTP to these servers to request documents. There are two main classifications for the type of responses a server will do. They are called static and dynamic. Content is considered static if it’s a prewritten file that the server just returns. An example would be an image–most images are static requests. All the server does is it looks up the image off of its hard disk or off of its cache, and just sends it over the wire using HTTP. More interesting requests are dynamic requests. These are requests where the response is built on the fly by a program that’s running. Just about all of the content online these days is dynamic. That didn’t always use to be the case. When the Web was first invented in the early 90s, almost all of the content online was static. They were just files. People would edit the files, put them on their servers, and they all linked to one another, but that was that. These days almost every website, including Udacity, Reddit, and Hipmunk, the 2 websites that I worked on, Wikipedia, Facebook, all of those pages, almost 100% of them are built dynamically on the fly by programs called web applications. And a web application is just a program that generates content, and that is what we’re going to learn how to build in this course. We’ve spent all of this time getting to this description of what a web application does, which is it lives on a web server, it speaks HTTP, and it generates content that your browser requests.