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.
Part of the beauty of the Web system is that a rudimentary site can be set up in an afternoon and allowed to grow and bear fruit for a long time thereafter. This guide is intended to be useful during all the phases of a Web site's life span, from the first invocation of the server's install script to the last baroque frill on a Web gateway that has grown so complex that not even its creator can figure out how it works. You probably won't need to read the whole book to accomplish what you want to do, but it is a comfort to know that it's all there when you need it. The book starts with the nitty gritty of choosing and obtaining Web server software, installing it at your site, and configuring it to behave itself. Next there are chapters on how to get your information into Web-compatible form: how to write hypertext documents; what tools are available to convert existing text files into hypertext; and how to negotiate the alphabet soup of graphics, sound, and video standards. Security is a growing issue everywhere on the Internet, and this book devotes a chapter to that issue: both the problem of keeping the Web site secure, and the task of dealing with network security measures that prevent Web software from working the way it's supposed to. Chapters on cgi scripts, Java, and JavaScript describe how to give your site searchable indexes, fill-out forms, clickable maps, animations, and gateways to other services. Finally, there's a Web style guide that tries to balance Web page aesthetics with practical considerations such as performance. (A breathtakingly beautiful Web page is not much good if no one has the patience to wait for it to download.)
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
- HTML 3.2
- VRML, the Virtual Reality Modeling Language
- A completely new JavaScript chapter
- 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
Typographical Conventions
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
zorro %
An italic font is used for URLs, the names of system commands, and for lowercase program names.
URLs
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 http://www.genome.wi.mit.edu 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
http://www.genome.wi.mit.edu/WWW/
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 http://www.genome.wi.mit.edu/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.
Organization
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.
Chapters 8 through 11 are for Web script developers and authors who are interested in learning to write executable scripts or to incorporate Java and JavaScript applications into their pages. These chapters also contain pointers to scripts and applets that you can pop into your site without any programming.
Acknowledgments
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
[email protected]
http://www.genome.wi.mit.edu/~lstein
0201634627P04062001