Web Development

From Free Geek Seattle


This page is work in progress. See also Web Programming


This is an overview of Web Development, beginning with basic concepts and continuing to advanced concepts. It spans multiple class sessions. These class notes will attempt to segment the subject matter so that it can be adapted to span arbitrary class durations.

Web development embraces several disciplines.

Web design

Writing for the Web

Web Programming

The Web is a client-server architecture; Web servers have publicly-accessible addresses, receive HTTP requests from clients, and service those requests. Web programming logically separates into client-side and server-side code. The former is a prerequisite for the latter, as server-side code mostly outputs client-side code to be interpreted by Web clients (aka User Agents, including browsers, spiders, plugins, non-interactive downloaders, etc.)

Client Side

Client-side code is that parsed by User Agents. We will mostly be concerned with Web browsers rather than with other types of agents.

When a browser receives an HTML file, it *parses* that file into DOM objects. DOM stands for Document Object Model- this is an interface for using programs (i.e., Javascript) to manipulate parts of a document.

The main parts of client-side code are content (HTML), presentation (CSS), and logic (Ecmascript). Part of good design is keeping these elements separate, so that one may change one aspect (say, making the first sentence of each paragraph bold-faced) without having to change the others.

Server Side

Server-side code is that which runs on the server and generates the client-side code sent to the clients. It need not exist at all- Web servers are perfectly capable of storing and sending static, unchanging text/html files. For dynamically-generated sites, server-side code generally consists of database reports manipulated by a program.