throbber
DESIGNING
`
`AND MANAGING
`
`
`
` AN EFFECTIVE
`WEB SITE
`
`
`
`I
`
`Includes coverage of:
`
`V
`
`' 0 Java and VRML
`
`0 UNIX, Mac, and Windows
`
`servers and maintenance
`
`tools
`
`0 HTML 3.0 and the
`
`Netscape extensions
`
`. 0 CG! scripting
`
`it ERIC TILTON - CARL STEADMVAN - TYLER JONES i
`
`A|arm.com. v. Vivint
`|PR2015-01977
`Petitioner A|arm.com's Exhibit 1033
`1033.0001
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0001
`
`Alarm.com. v. Vivint
`IPR2015-01977
`
`

`
`
`
`Don Mills, Ontario - Wokingham, England - Amsterdam
`Bonn - Sydney - Singapore - Tokyo - Madrid - San Juan
`
`Eric Tilion, Curl Sieadman, and Tyler Jones
`
`A V
`
`V
`
`Addison-Wesley Developers Press
`
`Reading, Massachusetts - Menlo Park, California - New York
`
`Paris - Seoul - Milan - Mexico City - Taipei
`
`Petitioner A|arm.oom-'seExhibit—1033««L
`1033.0002
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0002
`
`

`
`Many of the designations used by manufacturers and sellers to distinguish their
`products are claimed as trademarks. Where those designations appear in this
`book, and Addison-Wesley was aware of a trademark claim, the designations
`have been printed in initial capital letters or all capital letters.
`
`The authors and publisher have taken care in preparation of this book,
`but make no expressed or implied warranty of any kind and assume no
`responsibility for errors or omissions. No liability is assumed for incidental or
`consequential damages in connection with or arising out of the use of the
`information or programs contained herein.
`
`Copyright © 1996 by Eric Tilton, Carl Steadman, and Tyler Jones
`ISBN 0-201-48959-7
`
`All rights reserved. No part of this publication may be reproduced, stored in a
`retrieval system, or transmitted, in any form or by any means, electronic,
`mechanical, photocopying, recording, or otherwise, without the prior written
`permission of the publisher. Printed in the United States of America. Published
`simultaneously in Canada.
`
`Sponsoring Editor: Kim Fryer
`Project Manager: Vicki L. Hochstedler
`Cover design: Ann Gallager
`Setin 11-point Palatino by the Clarinda Company
`
`1 2 3 4 5 6 7 8 9 -MA- 9998979695
`First printing, December 7995
`A-W Developers Press is a division of Addison-Wesley Publishing Company.
`Addison-Wesley books are available for bulk purchases by corporations,
`institutions, and other organizations. For more information please contact the
`Corporate, Government and Special Sales Department at (800) 238-9682.
`
`Find us on the World-Wide Web at:
`http://www.aw.com/devpress/
`
`-
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0003
`
`

`
`
`
`HTTP Servers
`
`This chapter provides an overview of available HTTP servers on
`three major platforms: Unix, Microsoft Windows, and the Macin-
`tosh. Several HTTP servers are reviewed, and detailed installation
`information is provided for three of the most popular: NCSA
`httpd (version 1.4), Windows httpd (version 1.4d), and MacHTTP
`(version 2'.2).
`
`At this point, we will begin to deal with technical issues that are
`important to server administrators, such as server configuration. If
`you are not a server administrator, you may want to skip to Chap-
`ter 7, Maintenance and Reporting Tools.
`
`
`H1TP Servers-
`
`Choosing a Server
`
`The HTTP server is the cornerstone of your Website, providing
`the mechanism by which the documents in your infostructure are
`served to clients like Arena and Netscape. A server is vitally im-
`portant; without a server of some sort, you will have no infostruc-
`ture at all.
`
`The server you pick can have a dramatic effect on the kinds of
`content you can provide. Different servers provide different levels
`of functionality, from simply serving static documents, to serving
`dynamic documents and imagemaps Via CGI, to providing multi-
`ple ’’virtual servers” (accessed with different domain names) on a
`single machine. Performance also varies from server to server;
`many of the commercial servers provide substantially better per-
`
`109
`
`Petitioner A|arm.com's Exhibit 1033
`1033.0004
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0004
`
`

`
`1 10
`
`Chapter 6 ° HTTP Servers
`
`
`
`D The Hfl'P Protocol
`
`HTTP, the Hypertext Transport Protocol, defines a
`simple mechanism for retrieving and interacting
`with hypermedia “objects,” whether they be HTML
`documents, GIF or JPEG images, CGl scripts, or
`any other sort of document.
`It is independent of
`(although often associated with) HTML; HTTP
`simply defines a means of transportation, not a
`means of representing information.
`
`HTTP is a stateless protocol. This means that,
`while -a client and a server may interact several
`times, the server does not try to remember any-
`thing about what the client has done in the past.
`This in contrast to FTP, where a client maintains a
`connection for the duration of an FTP session,
`and information like the current working directory
`and the user’s ID is remembered between file
`
`transfers. One advantage of HTTP is that a con-
`nection does not need to be maintained between
`the client and the server for the duration of the
`session; once a document has been downloaded,
`the user can read or use the document without
`also maintaining a costly connection to the server.
`The drawback to this is that each time the client
`
`wants another document from the server, a con-
`nection must be reinitiated (a process that can
`sometimes take longer than downloading the doc-
`ument itself, especially in the case of small col-
`ored list bullets).
`
`Another feature that distinguishes HTTP from FTP
`is the ability to do content negotatiation. With con-
`tent negotiation, the client can send a list to the
`server of which Internet Media Types (see Appen-
`dix B) it can accept, and the server can compare
`this to the various formats it may have a particular
`document in. The server can then send whichever
`
`format best suits the client’s needs. While this fea-
`ture is not yet widely implemented, clients and
`servers that support
`it (such as the emacs-w3
`client and the Apache server) are starting to ap-
`pear
`
`HTTP supports several methods of interaction be-
`tween clients and servers,
`including GET, POST,
`HEAD, PUT, LINK, and UNLINK. GET, POST, and
`HEAD are the only commonly supported methods.
`GET is the most common, and is used to retrieve
`documents. POST is for submitting information to
`be dealt with by an object (such as a program); it
`is predominantly used for the transmission of form
`data to a CG! script (see Chapter 8, CGI). HEAD is
`used to get the HTTP header for a document,
`which includes information such as when the doc-
`ument was last modified (which is useful for mak-
`ing sure that caches of documents are current
`without retrieving entire documents). The addi-
`tional methods are part of theproposed HTTP 1.0
`specification, and anticipate browsers that will
`eventually also become editors, allowing authors
`to annotate and edit documents with the same tool
`that they navigate them with.
`
`The current version of HTTP is 1.0, and it is in the
`process of becoming a formal specification as we
`write this. Future directions of HTTP include sup-
`port for encryption (such as S-HTTP, described in
`Chapter 9, Security), and for allowing multiple re-
`quests with a single connection (HTTP-NG). For
`more information about HTTP, take a look at
`
`http: //www.w3 . org/hypertext/WWl/W
`Protocols /OVerview.html
`
`
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0005
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0005
`
`

`
`
`
`I IHTTP Servers I
`
`
`
`
`
`formance than their free counterparts. Encryption-—important if
`you want to transmit or receive sensitive information (such as
`credit card numbers)——is still only rarely available in servers, with
`the Netscape Commerce Server being the most notable.
`
`One important consideration is the platform on which you run
`your server. Traditionally, Unix has been the platform of choice for
`Internet servers, and most Web servers available are available on
`this platform. Several of the Unix servers are free, and a few———the
`Webmaster Starter Kit (which is free), and the Netscape servers
`(which are not)—are remarkably easy to install and maintain (via
`forms—driven interfaces). In addition, the Unix operating system
`can provide exceptional performance for your server, especially if
`you invest in a powerful Unix machine.
`
`The flip side to choosing the Unix platform is that most Unix
`workstations are expensive, and equivalent performance can often
`be found more cheaply by investing in high—end personal comput-
`ers. PowerPC-based Macintoshes-and Pentium-class Windows
`machines are becoming increasingly affordable and increasingly
`powerful, and several servers have become available for these
`platforms. In addition to the cheapness of the hardware, there is
`the extra benefit of a more genial operating environment than
`Unix, which can make installation and support easier. One such
`server—WebSite—stands outwith sophisticated graphical Web
`analysis and development tools, and an interface that takes advan-
`tage of the user-friendly nature of Microsoft Windows. Unfortu-
`nately, no reliable free servers are available on the Mac or Win-
`dows platforms (although Windows httpd is free for personal and
`educational use), but the costs of the servers are more than made
`up for in the savings on hardware. Also, most of the more sophis-
`ticated servers require a more sophisticated operating system,
`such as Windows NT or Windows 95.
`
`The cheapest option may be to invest in one of the ”free” Unixes,
`such as Linux or FreeBSD, that are available for Intel-based ma-
`chines. Any of the free servers will run on these machines, allowing
`you to turn a Pentium-class (or even a 486-class) machine into a
`powerful, cheap workstation. The major advantage is that this al-
`lows the use of some of the more sophisticated servers which are
`available on the Unix platform, especially as the free options for
`
`Petitioner A|arm.com's Exhibit 1033
`1033.0006
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0006
`
`

`
`I 12
`
`Chapter 6 ° HTTP Servers
`
`_¥?_
`
`'
`
`both Windows and Mac are not impressive. The major caveat with
`this solution is that you lose in technical support what you gain in
`savings—and while Linux and FreeBSD are remarkably stable, they
`are not guaranteed to be reliable. Using a free Unix is a viable option
`for the technically savvy (and adventurous), but it is probably not a
`wise idea for an organization that can afford a commercial solution.
`
`In summary:
`
`i
`
`0 When deciding between a free or a commercial server, remem-
`ber that most free servers offer almost the same set of features
`as their commercial counterparts. However, commercial offer-
`ings often provide better performance, and offer features like
`encryption. Also, don't undervalue technical support.
`
`0 When choosing a platform, remember that Unix is often able to
`provide superior performance to Windows 3.1, or the Macin-
`tosh. In addition, several good free servers are available for
`Unix. On the other hand, Unix is expensive in terms of hard-
`ware and support costs.
`
`Evaluate your needs before choosing a server, and find one that
`provides the features you require, plus some room to grow. And
`remember that you can always start out with a free server and up-
`grade to a commercial one at a later point with a minimum of ef-
`fort, should it turn out to be necessary.
`'
`
`We will review several servers in the next few sections, but this is
`by no means an exhaustive list. We have tried to pick out the most
`notable servers for each platform, and to give an overview of their
`features (and their flaws), and to provide useful criteria by which
`to pick a server. Since we were not able to adequately review all
`available servers, each section ends with a list of other available
`servers, with pointers to on—line information for each.
`
`Unix
`
`In this section we discuss a few of the popular servers available on
`Unix platforms. Unix can refer to many different operating sys-
`tems, including those supplied by vendors (such as SunOS and
`Solaris), and freely available clones (such as Linux and FreeBSD).
`In general, these servers should work on any Unix platform, espe-
`cially if source code is supplied.
`
`Petitioner A|arm.com's Exhibit 1033
`1033.000?
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0007
`
`

`
`H7TP Servers
`
`1 I3
`
`NCSA httpd 1.4 W
`
`The NCSA (National Center for Supercomputing Applications, at
`the University of Illinois at Urbana-Champaign) httpd was devel-
`oped in conjuction with the popular Mosaic browser. (httpd is an
`acronym for Hypertext Transport Protocol Daemon. Daemon is a
`term often used to describe Unix processes that run constantly in
`the background, and perform tasks that are not directly controlled
`by a user, such as serving Web documents. The word is not capi-
`talized because it is the name of the actual server executable-
`which, like most Unix executables, is not capitalized.) While it was
`not the first server available, it quickly became popular along with
`Mosaic as the back end for Web applications, and it has main-
`tained this popularity. Many of the other offerings we describe
`here are based on this server, and one of the primary developers of
`the Netscape Servers cut his teeth developing this server.
`
`Features
`
`NCSA httpd provides a rich set" of features, including a flexible
`definition of your server's ”virtual document tree,” dynamic doc-
`uments, access control, Common Log Format access logs, and a
`fast ”preforking”'architecture. _
`
`Virtual document tree: httpd provides a set of configuration op-
`tions for mapping your disk’s filesystem into a virtual document _A
`tree, so that you can provide to the world only those documents
`you wish to provide, rather than all files on your machine. This in-
`cludes the ability to specify a directory in your filesystem which
`will serve as the root of your server. For example, if your server
`root directory is / usr / local / web/ documents, then when a
`client tries to retrieve http : / /www. freedonia . com/people.
`html, this request is mapped on to the physical file / usr/ local /
`web/ documents /people . html instead of onto /people
`.html. The standard scheme used by Web servers is to make
`available only (and all) of the files in this server root directory and’
`in all subdirectories of the server root directory.
`
`To add flexibility to this scheme, you can include directories that
`are not subdirectories of the server root. httpd provides configura-
`tion options for mapping directories in your filesystem (such as
`
`Petitioner A|arm.com's Exhibit 1033
`1033.0008
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0008
`
`

`
`Chapter 6 ° HTTP Servers
`l l4
`
`
`making the Unix manual pages available via your server, by map-
`ping /usr/man onto a virtual /manual s directory for your Web
`server). In addition, httpd provides an option for easily providing
`users with virtual directories in your Web server's document tree.
`You can specify that if a user (such as j smith) has a certain sub-
`directory in his or her home directory (such as publ ic_html)
`that it should be mapped on to a virtual directory of the form
`~user (in this example, ~j smith).
`
`Dynamic documents: NCSA httpd also provides CGI (Common
`Gateway Interface) scripting, for providing dynamic documents.
`This capability allows for quite a bit of flexibility in the sorts of
`services you provide; in fact, most of the features provided in
`other servers can be implemented (at the cost of efficiency) as CGI
`scripts. For example, imagemapping support and user authentica-
`tion are provided in the NCSA server by means of supplied CGI
`scripts. CGI is discussed in depth in Chapter 8.
`
`Another feature provided that relates to dynamic documents is
`the ability of the server to modify a static document with special
`commands for the server embedded in the HTML document.
`These embedded commands (called server—side includes) can be
`used to include other documents (such as headers or footers), to
`insert information about the file (such as when it was last modi-
`fied), or to insert the output of a CGI script.
`
`Access Control: In order to provide finer control over how docu-
`ments are served from the virtual document tree, NCSA httpd pro-
`vides mechanisms for access control. Access to documents and
`directories can be limited to only certain hosts (or denied access to
`certain hosts) or explicitly not served to any host. Similarly, access
`can be allowed (or denied) only to certains users or groups of users.
`This allows you to provide subscription-based services or to pro-
`vide services limited only to your local user base (without requiring
`that your local user base be using the service from local machines).
`The access control mechanism is not limited to allowing and deny-
`ing usersand hosts. It is also possible to reconfigure some of the
`global configuration options on a per-directory basis (such as
`changing the default file type from text / html to text / plain
`in a directory full of plain ASCII documents, instead of giving
`each document the suffix . txt).
`
`Petitioner A|arm.com's Exhibit 1033
`1033.0009
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0009
`
`

`
`
`
`HTTP Servers l l 5
`
`It is also possible to enable the serving of CGI scripts in arbitrary
`directories. The default behavior for CGI scripts is to provide cer-
`tain ”script” directories in which all documents are assumed to be
`CGI scripts, and are executed upon retrieval. This makes sense
`from a security standpoint, especially if you have numerous peo-
`ple providing information through your Web server, because each
`CGI script is executed with the same user permissions as your
`Web server is executed. However, it may be desirable (especially if
`you have a small and trusted user base) to allow CGI scripts to re-
`side in directories alongside static documents. The access control
`mechanism allows you to enable or disable this on a per—directory
`basis.
`
`Logging: NCSA httpd supports the NCSA/CERN Common Log-
`file Format, a standard format for access logs that the majority of _
`servers now support. This means that most log analysis tools will
`work with the logs produced by this server (and any derivitive
`servers). Since most servers support this format, this means the
`bulk of log analysis tools will work with the bulk of servers.
`
`Fast preforking architecture: In versions prior to 1.4, when httpd
`received a request for a document from a client, it would create
`another httpd process to service. the request. Unfortunately, this
`requires a fork ( ) Unix system call, which is a relatively costly
`process in terms of performance. This becomes readily apparent
`when a browser such as Netscape requests several documents
`from the server in parallel (such as a document's inlined images),
`and the server must spawn four simultaneous copies of itself in
`order to service the request.
`
`The 1.4 version of httpd addresses this problem by preforking a
`set number of servers when it is first run. The master httpd pro-
`gram uses this pool of available servers to service requests. Upon
`receiving a request, instead of forking a new process to handle it,
`it finds an existing idle process and hands the request off to it.
`This technique dramatically speeds up handling of requests, and
`is most effective for sites that expect a large number of requests
`(over 100,000 a day, for example);
`
`Limitations: Two features that are absent are built-in searching ca-
`pabilities (such as the ability to full—text or keyword index the
`server) and any maintenance tools. On the other hand, it is possi-
`
`Petitioner A|arm.com's Exhibit 1033
`1033.0010
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0010
`
`

`
`- b
`
`le to use other tools, such as a WAIS server, to provide an index
`to your server; and maintenance tools from other sources are read-
`ily available (see Chapter 7).
`
`Evaluation
`
`NCSA httpd is the standard Web server, and it provides a good
`benchmark against which other servers can be evaluated. It pro-
`vides a rich set of features, and is a solid choice for almost any ap-
`plication. While the server does not provide some advanced fea-
`tures (such as built—in maintenance tools, full—text indexing, or
`encryption), many of these features can be implemented via the
`CGI interface or with programs available from other sources
`(some of which we will discuss in later chapters). Also, impor-
`tantly, the most recent release has addressed problems with earlier
`releases, and has become competitive with commercially available
`servers in terms of speed.
`
`Overall, this is a solid and usable server. It should fulfill the needs
`of most organizations, and has the added benefit of being freely
`available from NCSA. Precompiled executables are available for
`several platforms, and the source code is also available and should
`compile for most Unix platforms for which executables are not
`available. Especially if you already have a Unix platform avail-
`able, this server deserves a serious look.
`
`5
`
`NOTE: Versions prior to 1.4 have two significant flaws. The first
`is the performance flaw addressed by the preforking ar-
`chitecture (see the previous Features section). The second
`flaw is security-related: it is possible for a client request
`to overrun the space that the server uses to store text in-
`formation, which in certain situations can allow outside
`intruders to run programs on your machine with the
`same user privileges that your Web server has. Fortu-
`nately, version 1.4 addresses both of these problems.
`
`Availability
`
`NCSA httpd is available via FTP at
`
`ftp: / / ftp . ncsa . uiuc . edu/Web/httpd/Unix/ncsa_httpd
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0011
`
`l l 6
`
`Chapter 6 ° H7TP Servers
`
`A
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0011
`
`

`
`
`
`
`
`IEvaluation I I
`
`and on—line documentation is available at
`
`http://hoohoo.ncsa.uiuc.edu/
`
`NCSA httpd source code is in the public domain (at least, through
`version 1.4), and the server can be freely used for any purpose. It
`is possible that’NCSA may change these terms for future releases,
`in which case Apache (discussed later in the chapter) may become
`a more Viable alternative.
`
`EIT’s Webmasters Starter Kit
`
`The Webmaster’s Starter Kit is based on the NCSA httpd (Version
`1.3), with a few enhancements (as detailed in Features, next). The
`biggest difference is that administration of the server is through a
`form—based interface—the administrator uses a browser such as
`Mosaic to change configuration options and to enable and disable
`options. EIT (Enterprise Integration Technologies) has developed
`this server as an experiment in providing easier ways to get
`started as an infostructure provider.
`
`Features
`
`The Webmaster’s Starter Kit, being based on NCSA httpd, shares
`many of the same features. In addition, it includes some enhance-
`ments, such as form—based administration, additional configura-
`tion options, and additional maintenance and design tools.
`
`Based on NCSA httpd: The Starter Kit is based on the source code
`for Version 1.3 of the NCSA httpd. This means that it shares almost
`all of the features as were described inthe previous NCSA httpd
`section, except for those introduced in 1.4 release.
`
`Forms-based administration: The Starter Kit is most impressive
`because of the ease of installation and administration that is pro-
`vided by its form—based interface. Installation is a matter of point-
`ing a Web browser’ at the Starter Kit installation page, and follow-
`ing the instructions. Administration is similarly performed,
`through a password-protected set of forms on your own server.
`
`Additional configuration options: The Starter Kit includes several
`additional configuration options. These include the ability to set
`additional environment variables to pass to CGI scripts, the ability
`
`Petitioner A|arm.com's Exhibit 1033
`1033.0012
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0012
`
`

`
`118
`
`Chapter 6 - HITP Servers
`
`to prevent the Web server from accessing any files outside of a
`particular directory and its subdirectories (in order to prevent
`compromised servers from being used to retrieve other documents
`from your hard drive——see Chapter 9), and the ability to automati-
`cally restart the server when it crashes without human interven-
`tion. The Starter Kit also extends the NCSA access control mecha-
`
`nism so that certain domains (or users) can be prioritized, so that
`they can get better (or worse) response times relative to other do-
`mains / users. Finally, there is a provision for ”polite” downtime,
`so that the server can turn away users with an informative mes-
`sage when you are performing maintenance Work.
`
`Additional maintenance and design tools: The Starter Kit in-
`cludes some helpful tools for getting started. These include a Web
`construction kit (which, at present, consists of a form-based inter-
`face for generating a homepage); a C library for CGI scripts; a Web
`maintenance tool for verifying links; a CGI script that represents
`e—mail as hypertext; and logfile reporting tools.
`
`These areall useful tools, and many Variants on them are available
`in many locations (see Chapter 7). However, it is very handy to
`have them packaged with the server itself, rather than having to
`hunt them down.
`
`Evaluation
`
`The Starter Kit is anice package, largely because it provides all
`of the functionality of the NCSA server, and can be configured,
`installed, and maintained via any Web browser that supports
`forms. This can make this a much easier Web server to maintain
`
`than standard NCSA httpd, which is a big advantage if you do not
`want to devote your Unix support staff to the care and feeding of
`yO11I' server.
`
`On the other hand, the Starter Kit is, as the name implies, a ”start-
`er kit.” It is more of a proof—of-concept than a product, and it is
`not undergoing as much development as many of the other
`servers listed. The current Starter Kit (as of this writing) is still
`based on the 1.3 NCSA code, which means that it shares the per-
`formance bottleneck described in the NCSA httpd section. How-
`
`Petitioner A|arm.com's Exhibit 1033
`1033.0013
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0013
`
`

`
`
`
`Evaluation l l9
`
`ever, the security problem with version 1.3 (also described previ-
`ously) has been addressed in the current release.
`
`If you were considering using NCSA httpd, but are put off by the
`task of installation and configuration, this server is a good alterna-
`tive. However, if you are interested in the extra performance gain
`in the latest version of NCSA, you'll want to wait until the Web-
`master's Starter Kit has been updated to reflect the 1.4 revision
`(Which may well happen by publication time).
`
`NOTE:
`
`If you are planning on using your server for commercial
`purposes, you will not be able to use the Starter Kit. EIT
`allows you to use their server for ”academic, research, or
`internal businesspurposes only.”
`
`A final thought: the optional extensions are helpful tools, and can
`be used independently of the server itself. You may want to con-
`sider getting them, even if you do not use the Starter Kit, espe-
`cially if you _are using an NCSA-variant server. One of them,
`the Link Verifier, is discussed in detail as a separate package in
`Chapter 7.
`
`Availability
`
`The Webmaster’s Starter Kit is available at
`
`http: / /wsk . eit . com/wsk/doc/
`
`Installation requires an account on a Unix machine connected "to
`the Internet, and a browser that supports forms.
`
`The server is available, as just noted, for ”academic, research, or
`internal business purposes” only, but (within those restrictions) is
`freely available.
`
`Apache 0.6.5
`
`Apache (version 0.6.5) is a play on A PAtCHy Server, and that is
`what it is, a series of patches to the NCSA server. These patches
`add some powerful functionality to the NCSA server, including
`the ability to provide several virtual hosts, and to use content ne-
`gotiation to provide different documents to different clients (so
`that a user using a text—based browser can receive a text—based
`
`Petitioner A|arm.com's Exhibit 1033
`1033.0014
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0014
`
`

`
`Chapferé - H7TP Servers
`I20
`
`
`Features
`
`Apache shares many of the same features as the NCSA httpd,
`along with several enhancements. These include virtual hosts,
`content negotiation, faster user authentication, ”send as is” file
`types, speed enhancements, and some additional configuration
`options.
`
`Based on NCSA httpd: Apache is based on the source code for
`version 1.3 of the NCSA httpd. This means that it shares almost
`all of the features described in the NCSA httpd section, except for
`those introduced in 1.4 release.'However, it addresses many of the
`same problems "in NCSA 1.3 that NCSA 1.4 does, including the se-
`curity and performance issues mentioned in the NCSA httpd sec-
`tion, as well providing other improvements.
`
`Virtual hosts: If you are interested in providing servers for com-
`panies or organizations that want an on—line presence, but aren't
`interested in maintainingtheir own machines on the Internet,
`Apache can emulate multiple ”virtual” servers. That is, if the ad-
`dresses www. freedonia. com and techno {nomi . com both
`point to the same machine, Apache allows ht tp : / /www. free-
`donia . com/ and http: / /techno . nomi . com/ to return differ-
`ent homepages (and different document trees). In this way, you
`can serve distinct infostructures with distinct names with the same
`physical hardware.
`'
`
`Content negotiation: This is a clever feature that provides a
`mechanism for catering to the wide range of capabilities in
`browser software. Most browsers will send information to the
`server about the kind of content they are willing to accept (such as
`whether they can accept GIF or IPEG images). Apache can use this
`information to return the best format for a browser. Thus, instead
`of creating two different versions of a document——one that has in-
`lined GIFs, and one with inlined ]PEGs—you can create one ver-
`
`Petitioner A|arm.com's Exhibit 1033
`1033.0015
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0015
`
`

`
`
`
`Eva/uofion I Z I
`
`sion of a document and allow Apache to negotiate with the
`browser to find the correct image format to retrieve.
`
`Faster user authentication: Apache includes a faster mechanism
`for user authentication than is supplied by ”Vani1la” NCSA 1.3.
`This is used extensively by sites such as HotWired, that have ex-
`tensive user databases which are constantly accessed.
`
`”Send as is” file types: Apache supports certain files that should
`be sent =’.’as is,” including HTTP headers. This allows for extreme
`fine-tuning of server behavior, without having to run a CGI script.
`
`Speed enhancements: Apache is an optimized version of NCSA
`httpd 1.3, offering a significant boost over the unoptimized ver-
`sion. It does not yet include the preforking architecture of 1.4 (at
`the time of this Writing), but it is in the works and will probably
`be available by the time you read this.
`
`Additional configuration options: Apache also supports custom
`error responses, the ability to define multiple defaults for directory
`index files (such as " index . html " or '-' home . html " ), and several
`other enhancements for CGI scripting and server configuration.
`
`Evaluation
`
`Apache is billed by its developers as a plug-in replacement for
`NCSA 1.3, and by the time you read this, it should also be a plug-
`in replacement for NCSA 1.4. It provides the same feature set,..as
`Well as several additional modficiations. The speed enhancements
`and the support for content negotiation make this server an ex-
`temely attractive option; and the possibility that the terms of the
`NCSA license may change (which may mean that anything after
`1.4 will no longer be freely available, at least for commercial use)
`may make this an even more attractive server in the future.
`
`On the other hand, this server is an independent development ef-
`fort, and is (at this writing) still in beta testing. Since it is based on
`a stable server, most features should work as expected, but there is
`no technical support and some features may be buggy or still in
`development at any time. Still, if you require the sort of enhance-
`ments provided by this server, and have the systems support staff
`to provide proper care and feeding, it is a compelling choice. Espe-
`
`Petitioner A|arm.com's Exhibit 1033
`1033.0016
`
`Petitioner Alarm.com's Exhibit 1033
`1033.0016
`
`

`
`122
`Chapter 6 ° HTTP Servers
`
`
`cially since, as with most of the freely available software available
`on-line, it does work extremely well, and failures are the exception
`rather than the rule.
`
`Availability
`
`Apache is available via FTP at
`
`ftp://ftp.apache.org/apache/dist/‘
`
`The documentation for the Apache server project, as well as a list
`of mirror sites from which the server can be retrieved by FTP is at
`
`http://www.apache.org/apache/
`
`The server is freely available and usable.
`
`WN 1.04
`
`WN (version 1.04), written by John Franks of Northwestern Uni-
`versity, is designed to provide useful tools as part of the server
`package, such as indexing, searchin

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket