- Featured Columnists
Table of Contents
- Web Basics
- Publishing on the Web: Putting Files on the Server
- Web Design Process and Workflow
- Project Management
- Mark My WWWord: HTML and XHTML
- Standards Compliance
- Meta Tags and Search
- Enhancing Web Page Interaction
- Web Graphics
- Web Page Optimization
- Overview of Servers
- Server Programming Basics
- Careers in Web Design
- Intellectual Property for Web Designers
Clients and Servers
Last updated Oct 17, 2003.
Protocols are formal rules, which dictate how computers transmit data across a network. The computers speak the same language, which enables those using a Macintosh or Windows PC to communicate with others using different hardware. HTTP (HyperText Transfer Protocol) is the protocol that tells the Web client (your computer using a browser) and the Web server how to talk to each other. When you see a link of interest, you click it. As the client, you're sending a request to the server saying, "Hey, send me the thing behind this link."
The server listens and responds with, "Here you go," or a 404 file not found message, which indicates the file doesn't exist. When you came to the Informit.com Web site through your browser's interface, you requested this "Client and Servers" article by clicking on a link. The Informit server containing the article listened and sent the file holding this article. Meanwhile, there are other users like you accessing different parts of Informit.com's Web site, and the server is serving them all.
Email, news, Domain Name System (DNS), FTP (File Transfer Protocol), Network Files System (NFS), and Network Information Service (NIS) are a few of many server protocols and technologies associated with the Internet. The client and server are connected by messages that are sent and received using a protocol to encode the client's requests and the server's responses. You may have your email server running while uploading files to your Web server through FTP while surfing the Web. Your PC can run multiple server programs simultaneously.
Let's take a look at an example of a dialogue between client and server. This stuff occurs behind the scenes. You can watch what happens by downloading a Firefox extension called LiveHTTPHeaders or download ieHTTPHeaders for Internet Explorer, which also allows you to view the headers. When clicking a link, a client request may look something like this:
Get /filename.html HTTP/1.1 User-Agent: Mozilla/7.0
The first line is the request and the protocol with its version number. The User-Agent is the browser the client is using.
The server responds with something like this:
HTTP/1.1 200 OK Date: Mon, 07 Apr 2003 01:52:03 GMT Server: Apache/1.3.27 (Unix) PHP/4.2.3-atw Set-Cookie: atw-uid=CgVSBj6Q2cMAANz+AwUcAg==; path=/; domain=.alltheweb.com; expires=Sat, 06-Apr-13 13:52:03 GMT Content-Type: text/html
The server responded with a standard HTTP status of 200, which means it's a successful request. The date indicates the time and date of the request. The server is the name and version number of the server. Set-Cookie adds a name/value pair of information to retain for this URL. The user may have a cookie in place with the Web site to remember basic information such as login name, which enables the site to personalize its page for you. Content-Type is the type of page the server is serving and in this case, it's a basic HTML file.
This is a simplified introduction to client/server relationships on the Internet and how they work with HTTP. LANs and intranets work differently. The best place to go for HTTP details is its specification. The specification provides information on requests, responses, status codes, header field definitions, and more.
Having a familiarity with client/server relationships and the HTTP protocol helps you understand what is happening behind the scenes of a Web server. When you read a Web site's access logs, you'll see HTTP status codes, and understanding what they mean explains what the server has been "sending out" to clients. HTTP is covered a little later in this guide.