This is a guide for anyone who is planning to set up a World Wide Web server site, or who wants to enhance an existing one. It is intended to embrace a variety of needs: those of the corporate marketing department exec who needs to get the fall catalog on-line fast; of the system administrator nervous about system security; of the scientist who wants to make a database of experimental results available to her colleagues; or of the college student eager to share his insights on the city's best ice-cream parlors.
Why purchase a book on WWW administration when all the information is already out there, freely available, in glorious hypermedia form? In part this book grew out of my frustration with the hypertext style of documentation. The information is indeed out there, but scattered about the globe, often incomplete, sometimes contradictory, ever changing, and frequently hard to locate again at a later date. This book pulls together all the relevant information garnered from an individual's struggles in setting up and maintaining a Web site.
What this book is not is a manual for World Wide Web browsers or a listing of neat places to visit on the Web. Nor is it a guide to running all possible servers on all possible operating systems (there are more than 60 servers and counting!) Instead I've chosen a single popular server from each of the Unix, Macintosh, and Windows operating systems. There's enough similarity among the various servers that once you understand how one works, you pretty much understand them all.
I hope that you enjoy opening up a Web site as much as I have, and I look forward to seeing you on the net.
What's New Since the First Edition
A lot has changed in the year or so since the first edition of this book was written. The Web has increased in size more than 20-fold, and businesses have jumped into this exploding market with a bewildering offering of browsers, servers, HTML editors, and site management tools. Large parts of this book have been completely rewritten to keep up with the changing times, and new chapters have been added. Here are the highlights of what's new:
Detailed instructions for setting up Windows and Macintosh servers
Greatly expanded coverage of secure servers, particularly SSL servers
Instructions on setting up virtual hosts
VRML, the Virtual Reality Modeling Language
A completely new Java chapter
Rewritten and expanded examples in the CGI chapters
Coverage of such new HTTP features as cookies and virtual hosts
Coverage of new HTML editors
Because the CERN server is no longer a supported product, I've removed it from this edition.
About This Book
The code examples given in this book, including the contents of configuration files, paths, executable scripts and the source code for HTML, are in monospaced font. A bold monospaced font is used to indicate user input, as in:
zorro % date
Sun Aug 11 11:06:38 EDT 1996
An italic font is used for URLs, the names of system commands, and for lowercase program names.
URLs (the ubiquitous "Uniform Resource Locators" that uniquely identify each document on the Web) are used everywhere in this book. Unfortunately print is a static medium and URLs change constantly. Some of the URLs in this book will have changed between the time it went to press and the time it appeared on bookstore shelves. It is hoped that the Webmasters responsible for these changed URLs left forwarding addresses telling you where the new versions can be found. If not, I can only apologize and suggest that you try to track down the new location using one of the Web's many subject guides or keyword search services. The Web resource guide at genome.wi.mit will also contain updated addresses.
Example HTML Documents and Scripts
You'll find the source code for all the example HTML documents and executable scripts given in this book at
Follow the links to examples. Here you'll find pointers to the examples from each chapter. All of the example code is in the public domain. You are welcome to use all or part of a piece of code as a template for your own projects. At this location you will also find working versions of the executable scripts in Chapter 9, as well as errata and bug fixes.
For your convenience, I've also placed a copy of all the code examples on the companion CD-ROM.
Tools and Other Resources
The book refers to huge numbers of Web resources, including icons, tools, executable scripts, code libraries, and sundry utilities. Typically, each resource has a home site where its most recent version can be found. I've gathered up the most useful tools and placed copies of them in a subdirectory of genome.wi.mit/WWW/. Follow the links to the resource guide.
Also check the CD-ROM, where many of the resources can be found. Some resources cannot be redistributed because of licensing agreements, but I've put copies of all the others into the subdirectory tools. If you see a noncommercial or shareware tool mentioned in this book, chances are good that a copy of it is on the CD-ROM.
Since tools get updated frequently, you should also check a resource's home site to obtain the newest version.
Freeware, Shareware, and Other Beasties
Lots of software is available via the Internet, and although much of it is "freely available," not all of it is free. Truly free is software that has been explicitly placed in the public domain by its authors. This software can be used for any purpose whatsoever, including modifying and redistributing it. Several of the Web servers described in this book fall into this category. In contrast is a broad class of software loosely called "freeware." This is software whose authors have not given up copyright, but who allow you to use the software without payment. This software may have various restrictions placed on it, such as noncommercial use only or limitations on your ability to bundle it with other software products. Then there is "shareware," whose authors allow you to use the software for a trial period, after which you're honor-bound to discard the software or to pay a licensing fee. Finally, there's commercial demo software, which is usually a crippled version of the real thing.
Whenever I mention a piece of software, I try to report whether it is public domain, freeware, or shareware. Sometimes, however, I haven't been able to determine what the status of a utility is, or its status has changed. Before using any tool, you should make sure that you understand its author's intent.
Chapters 1 and 2 introduce the Web and explain how it works. You'll want to read Chapter 1 and the introductory sections of Chapter 2 whether you're more interested in administering Web server software, authoring hypertext documents, or developing executable scripts that create dynamic documents. Script developers will probably want to read through the esoterica at the end of Chapter 2 as well, because many clever tricks are possible when you understand the protocol in detail.
Chapters 3 and 4 are of most interest to the Web server administrator. They explain how to set up the server software, configure it, and make it secure.
Chapters 5 through 7 will be of most interest to the Web author. Together they explain how to write hypertext documents; provide pointers to tools for interconverting text, graphics, and animation files; and provide a style guide for making documents both effective and attractive.
A surprising number of people have helped, directly or indirectly, with this book. I'm extremely grateful to the members of my lab at the Whitehead Institute. Robert Dredge, Robert Nahf, Richard Resnick, Steve Rozen, and Peter Young all offered invaluable assistance in installing, evaluating, and debugging Web software tools. Nadeem Vaidya worked nonstop to get the contents of the CD-ROM organized in time. Lois Bennett patiently kept the network running despite wave after wave of experimentation with increasingly esoteric aspects of Web administration. Andre Marquis deserves special thanks for introducing me to the Web and getting the lab's server up and running in the first place. Thanks as well to Drucilla Roberts and Cassia Herman, who provided the livestock photos.
I'd like to thank my reviewers, Ken Arnold, Thomas Boutell, Don Brutzman, Dan Connolly, Vansanthan S. Dasan, Mark Ellis, Doug Felteau, Lisa Friendly, Sandeep Gopisetty, Arlen Hall, Mukesh Kacker, Doug Kramer, Jerry Latimer, Mike Macedonia, Nick Manousos, Michael Moncur, Jay Newman, Scott Redmon, Kenn Scribner, Win Treese, Andrew Wooldridge, and Tony Zawilski for their insightful suggestions and for the many bloopers they collectively identified and nipped in the bud for this second edition.
Also, I'm grateful to the people who reviewed the first edition of this book, Steven Bellovin, A. Lyman Chapin, Robert Fleischman, Barry Margolin, Craig Partridge, and Clifford Skolnick.
My particular thanks to my editor, Carol Long, and her assistant, Mary Harrington, for their unflagging energy and encouragement throughout this project.
Lincoln D. Stein