eXtropia: the open web technology company
Technology | Support | Tutorials | Development | About Us | Users | Contact Us
Resources
 ::   Tutorials
 ::   Presentations
Perl & CGI tutorials
 ::   Intro to Perl/CGI and HTML Forms
 ::   Intro to Windows Perl
 ::   Intro to Perl 5
 ::   Intro to Perl
 ::   Intro to Perl Taint mode
 ::   Sherlock Holmes and the Case of the Broken CGI Script
 ::   Writing COM Components in Perl

Java tutorials
 ::   Intro to Java
 ::   Cross Browser Java

Misc technical tutorials
 ::   Intro to The Web Application Development Environment
 ::   Introduction to XML
 ::   Intro to Web Design
 ::   Intro to Web Security
 ::   Databases for Web Developers
 ::   UNIX for Web Developers
 ::   Intro to Adobe Photoshop
 ::   Web Programming 101
 ::   Introduction to Microsoft DNA

Misc non-technical tutorials
 ::   Misc Technopreneurship Docs
 ::   What is a Webmaster?
 ::   What is the open source business model?
 ::   Technical writing
 ::   Small and mid-sized businesses on the Web

Offsite tutorials
 ::   ISAPI Perl Primer
 ::   Serving up web server basics
 ::   Introduction to Java (Parts 1 and 2) in Slovak

 

Introducton to Web Design
The Basics of HTTP  
  • As Hethmon notes in "An Illustrated Guide to HTTP, "the web is the largest client/server system implemented to date." It is also the most complex and heterogeneous one that must deal with multitudes of operating systems, human languages, programming languages, software, hardware, and middleware.

  • What is a client/server system?

  • A client/server system is a very keen way of distributing information across information systems like a local area network (LAN), a wide area network (WAN), or the Internet.

  • A client/server system works something like this: A big hunk of computer (called a server) sits in some office somewhere with a bunch of files that people might want access to. This computer runs a software package (uh...also called a server unfortunately) that listens all day long to requests over the wires.

    The "wires" is possibly a twisted pair network hooked into a local telephone company POP or a cable or fiber optics network hooked up to a corporate WAN or LAN that is also linked up to the national telecommunications/information infrastructure through a local telephone company. Whatever the case, the specifics of the information infrastructure is beyond the scope of this tutorial, but should be mentioned.

  • Typically, these requests will be in some language and some format tha the computer understands, but in English sound something like, "hello software package running on a big hunk of computer, please give me the file called "mydocument.txt" that is located in the directory "/usr/people/myname".

  • The "server software" will then access the server hardware, find the requested file, send it back over the wires to the "client" who requested it, and then wait for another request from the same or another client.

  • Usually, the "client" is actually a software program, like Netscape Navigator, that is being operated by a person who is the one who really wants to see the file. The client software however, deals with all the underlying client/server protocol stuff and then displays the document (that usually means interpreting HTML, but we'll get there in just a bit) to the human user.

  • The whole process looks something like the figure below:

  • So if the web is a huge client/server system, what is the underlying client/server protocol that is used by the client software and the server software for communication?

  • Well the client/server protocol used by the web is HTTP (HyperText Transport Protocol).

  • HTTP is a protocol that is defined in several RFC´s (Request for Comments) located at the Internic and has had several generations worth of revisions (HTTP/09, HTTP/1.0 and HTTP/1.1).

  • HTTP is a "request-response" type protocol that specifies that a client will open a connection to a server then send a request using a very specific format. The server will then respond and close the connection.

  • The details of HTTP are less important for an HTML designer as they are to a web programmer, so we will not go into the specifics here (although they are available from the Illustrated Guide to HTTP referenced in the Resources section below). The main thing you need to know is that HTTP is a language spoken between your web browser (client software) and a web server (server software) so that they can communicate with each other and exchange files.

  • As a web designer, you will deal much more with the other web protocol, HTML that is discussed next.

HTTP Resources

Previous Page | Next Page