Debian WWW standards version 2.1
Here is version 2.1 of the WWW standards, with change bars. A "|"
character at the beginning of the line indicates a change from version 2.0 .
Changes are that update-debian-www has moved to /usr/sbin, and URL form and
hostname usage are now specified.
ATTENTION WWW PACKAGE MAINTAINERS: Relative URLs are specified.
Please check this out for compatibility with your WWW server.
I think we are actually converging on something that everyone can live
Debian WWW Organization
Bruce Perens 4-November-1996
1.1 Serving Debian Documentation
A primary purpose of the WWW server and browser on a Debian system is
to provide access to all available Debian documentation. This implies
A. WWW configuration must be automatic.
Since the user is reading documentation via WWW, we must
provide that user with a WWW configuration that works correctly
right away, without any configuration on the user's part.
B. The WWW service of Debian documents must be robust.
If a WWW server is removed and a different one is then
installed, access to Debian documentation must be maintained.
C. Automatic installation of documents must be supported.
Packages need a well-known fixed path that can be used to
install files, and a corresponding well-known URL to access
those files once they are installed.
1.2 Serving as a User-Specific WWW Site
Obviously, Debian users may wish to build large, publicly-accessible
WWW sites. Debian should not stand in the way of that. However, the
Webmaster can be expected to understand their document organization and
to put a good deal of custom configuration into their system. This is
not the case for the user who simply uses the local WWW server to read
There are a few goals necessary to support the Webmaster:
A. Debian can't take over the WWW site. This will only get in the
way of the Webmaster. Thus, Debian should restrict its activities
to its own well-known locations, and should _not_ install files
in the root of the WWW server.
B. Webmasters all have their favorite server. Thus, we should support
as many servers as possible, and the documentation scheme
should work with all of them.
C. Security is important to the Webmaster. Thus, we should make it
as easy as possible to maintain the security of the system while
it serves documents that have been installed by Debian.
| Where <hostname> appears in this document, it should be replaced by
| one of the following:
| 1. The fully-qualified domain name of the host.
| 2. The host alias "localhost".
| 3. No text, and deleting the two slashes before <hostname>,
| as in the form "http:/debian/foo.html".
| All three of these forms should be supported.
2.1 Well-Known Paths and URLs
The WWW server package maintainer may locate the document root of their
WWW server where they wish, except that the document root may not be
located in any of the directories mentioned in this proposal. A Debian
package must not install data in the document root of the WWW server,
unless it is the package that installs the server itself.
Debian will maintain a directory /var/lib/debian-www/documents . Each
WWW server must export this directory as "http://<hostname>/debian/".
Data in this directory may be rewritten while the system is operating.
The WWW server may write its own housekeeping files under this
Debian will maintain a directory /var/lib/debian-www/cgi-bin . Each WWW
server must export this directory as "http://<hostname>/cgi-bin/debian/.
Data in this directory may be rewritten while the system is
operating. The WWW server may write its own housekeeping files under
Debian will maintain a directory /usr/lib/debian-www/documents. This
directory is restricted in that it may be on a read-only medium once
packages have been installed. This is an appropriate place to install
data that does not need to be re-written while the system is operating.
Each WWW server must export this directory as
"http://<hostname>/debian/ROM.documents . The WWW server must treat
this as ROM space, and must not write files under this directory. The
WWW server is allowed to use any contrivance to make this space
available. For example, it can provide access to the URL through a
"virtual path" CGI script, or it can create symbolic links from all of
the documents in the ROM space to a directory in read-write space.
Debian will maintain a directory /usr/doc . This directory is
restricted in that it may be on a read-only medium once packages have
been installed. This is an appropriate place to install program
documentation and examples that do not need to be re-written while the
system is operating. Each WWW server must export this directory as
"http://<hostname>/debian/ROM.usr.doc . The WWW server must treat this
as ROM space, and must not write files under this directory. The WWW
server is allowed to use any contrivance to make this space available.
For example, it can provide access to the URL through a "virtual path"
CGI script, or it can create symbolic links from all of the documents
in the ROM space to a directory in read-write space.
Debian packages may install files under the above directories and may
expect the WWW server to immediately make these files available. To
facilitate this the WWW server may create a script
|"/usr/sbin/update-debian-www". Packages that install files in the
above-mentioned directories will detect the existence of this script in
their postinst scripts, and will execute the script if it exists. The
script must scan the above mentioned areas for files, and must make
those files accessible.
Debian will maintain a directory /usr/lib/debian-www/cgi-bin. WWW
servers must not directly export this directory. However, symbolic
links may be created from /var/lib/debian-www/cgi-bin to
/usr/lib/debian-www/cgi-bin to make CGI scripts available for the
server to export. Packages may install these symbolic links
automatically. If a symbolic link is installed to make a new CGI script
available, the package that installs it must detect the presence of
|/usr/sbin/update-debian-www, and execute it if it exists.
|2.2 CGI Scripts
CGI scripts installed by Debian packages must conform to the current
CGI standard. If CGI scripts use server-specific features, they must
detect the presence or absence of those features, and should continue
to operate or at least fail gracefully with a message to the user if a
desired feature is not available.
|2.3 URL Form
|HTML pages installed in the directory trees mentioned in this proposal
|should use relative URLs without host names to refer to other files in
|the same directory tree. Absolute URLs without host names should be used
|to refer to files in another directory tree. For example a URL to another
|file in the same directory tree can be of the form "http:../dwww/foo.html",
|and a URL to another file in a different directory tree can be of the form
|2.4 Access to Documents Using the "file:" Protocol
|If all WWW servers now support this form, it may be possible to leave the
|protocol portion "http:" out of URLs. This would provide better support
|for access using the "file:" protocol. We should note however that the
|file protocol is not useful for CGI scripts, and that we intend to provide
|a large number of run-time translated documents via CGI scripts. Thus,
|the "file:" protocol may be of marginal usefulness.
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
debian-devel-REQUEST@lists.debian.org . Trouble? e-mail to Bruce@Pixar.com