COM271, Week 1
The client-server model—Client-side versus server-side web development
Syllabus | Table of Pages | Assignments | References and Useful Links
The Basics
Let's start with definitions of the principle components of web sites.
- Web page: A web page is a collection of text, images, and links that can be accessed through a browser. Web pages are kept in collections of related web pages in a web site which is kept on a web server.
- Web browser: Browers come in many forms; for now, by browser I mean one of the common browsers that you find on desktop or laptop computers, which usually run a windows or a macintosh operating system. The most common browsers are Microsoft's Internet Explorer, Mozilla's Firefox, and Macintosh's Safari.
- Web site: A web site is a collection of pages, images, and parts of pages. Within a site, there is a means to navigate to all of the pages on the site. To help users, the pages should have features in common, including a distinct look that says "you are still on the same site," and navigation that says "you can go here on this site, or leave by clicking here."
- Web server:
- Hardware: A web server is a computer that holds web sites. It is assigned a fixed Internet Protocol (IP) address, which is a number that looks like this: 131.128.91.255 (which is the address of a particular server computer on the URI computer system).
- Software: A web server is also the coded instructions that allow the hardware to respond to requests from browsers by sending to the browser a page stored on the server. Web server technologies have been developed by Microsoft (Internet Information Services (IIS) and the opensource (non-corporate) Apache system.
- Web developer: A web developer creates pages and web sites using languages recognized by web servers and transfers these pages and sites to a web server using File Transfer Protocol. Your job this semester is to become a web developer.
- File Transfer Protocol (FTP): FTP is a universal way to move files—web pages, images, supporting page fragments (style sheets, javascripts, code files)—from a developer's computer to a web server.
- Developer's computer: You create pages and images and assemble them into a web site on a separate computer before transferring them to the server.
- Client: A client uses a computer with a browser to access pages from a server computer.
Note: The term client-side web development means that you (as web developer) are creating pages to place on a server, for retrieval by a client, who is a person (also, client means the browser used by the person) who is downloading your web page. Client-side web development requires skills with html, css, javascript, and image-making technology (usually, photoshop). Server-side web development includes the additional use of the server to obtain content for the page (images and text) from a database in response to client requests. Server-side skills build on client-side skills by adding server scripting (through PHP or VBScript language) and database commands (Structured Query Language (SQL)).
Static versus Dynamic Web Sites
This semester is focused on learning to develop web pages and sites on a web server, to be accessed from the server by clients who use a web browser. The focus here is on the relation between the client who comes to use our web site, and the server which holds the pages we place there. We call this the client / server relation.
You as developer will be supplying the server with whatever you want the user / client to have. Once you have placed your pages, with their text and images, on the server, your site is complete. There will be no changes on any of your pages until you replace content or images or make other changes to the way those are displayed. That is, the content of your pages will remain the same. We call this a static web site.
We limit ourselves to static sites this semester. Most web pages are static, and you can go far as a developer of static web sites. If you want to go farther, you will later need to also learn how to build a dynamic web site; this is one in which the pages you put on the server contain additional coding that can be interpreted by additional software that operates on the server. This server-side web development includes additional software to provide programming logic (e.g., to interpret and act on responses that users enter into forms) and access to text and images stored in databases or server files, from which the contents of the page are assembled. This construction of the page on-the-fly makes a dynamic web site, and this is the focus of a separate course, COM372. Server-side programming languages include Microsoft's Active Server Pages (ASP), Microsoft's .NET ("dot-net") development environment, and the open source equivalents PHP or MONO. Server-side databases require an understanding of Structural Query Language (SQL) and databases; in COM372, you learn to use PHP with the open source database called MySQL.
If you keep in mind that the terms static and dynamic here refer to the contents delivered by a web server, just note that we will be looking at the use of techniques to allow certain aspects of static pages to change in response to user actions, and we will use the term dynamic in a limited sense (DHTML means dynamic hypertext markup language; basically, this is a way of using javascript and style sheets to make the page change, a subject we return to later).