Preface

In early Fall of 1995, my life was pretty full. I was working full time as a programmer/analyst, had one successful shareware application on the market, was writing a second one along with my brother, and had a wife and son at home to fill up the rest of my spare time. While reading a Usenet newsgroup one day, I noticed a posting titled "Can you write a web server?" My current shareware program was an ftp server and the new one was a mail server. I had planned to write a web server next, so the post definitely intrigued me. Upon reading the post, I found Manning Publications was looking for an author to write a book on programming a web server. "Well," I thought, "this is something I've always wanted to do--write a book." So I fired off an email to Len Dorfman and promptly forgot about it.

In November 1995, while checking my email I found a message from Len. I remember wondering what this message was about. Well as it turned out, Len was looking for someone to write the web server book and was asking me. With adrenaline pumping up my ego, I took my wife to lunch to ask what she thought of the idea and for her blessing for me to give it a try. If only she had known what she was getting herself into!

Over the course of the next twelve months, I found out what I was getting myself into. The process of writing a book is not unlike that of writing a software program. You start out with this grandiose idea of including everything but the kitchen sink. As time passes, you begin to realize the size of the hole you've dug. There were definitely times in the process that I felt someone was at the top of the hole shoveling dirt on top of me. Eventually, if you're venturesome, you keep plodding through the muck and you do find the light. 

As in a software project, at the end you must finish and release. With this book, I felt the same way. I had been following the progression of the HTTP/1.1 standard for all of 1996, watching the changes as they advanced through the various drafts. Whenever a new draft came out, I'd grab another copy and rework the code to comply yet again. When draft 6 came out in July, the working group finally had a document that was mostly complete and stable. I rushed to finish the book and save some of my family's summer. Draft 7 was eventually released to correct minor typos in draft 6 and was just recently approved for Proposed Standard by the IESG (Internet Engineering Steering Group.) Even with the approval of the proposed standard, and the completion of my first draft, my job was not yet over. With reviews and rewriting, another three months would have passed and Christmas of 1996 was knocking at my door. So, finally, it was time to stop.

As with any of the programs I've written, I feel the book is not yet complete. There were so many features I wanted to include but could not if the book were ever to be published. Maybe I'll be lucky and this book will have a 2.0. 

In the meantime, I hope you enjoy this book and find the information in it useful. Comments about the book are welcome and encouraged.

Paul Hethmon
Knoxville, Tennessee