The PRISM WWW Server

If you are reading this page, your WWW client has just interacted with a fairly unique WWW (HTTP) server. We are not running a standard server, such as NCSA's. In fact, we are running a server that we wrote ourselves.

The server arose from the efforts of Lev Novik when he decided that the best way to learn about this (then) new phenomenon of World Wide Web would be to write a server from scratch. This he did as a small pet project. At the time, all I contributed was some socket code and pesky suggestions. The server worked quite well, and we soon opened our Web site for business, using our server for fun.

Since then, the server has evolved with Lev and me making numerous improvements and adding functionality. Our server includes these capabilities:

Our server is not available for distribution or for beta-testing. If you are in the market for a server, standard servers are much more robust, and they certainly offer most of the functionality people need. Of course, if you have questions, comments, or criticisms about our server, please contact us. You can use the Comments link in the title bar to do so.

Our server project has well served our purposes, as it has allowed us to learn much about WWW, and to tailor the server's functionality to our particular tasks. It has also allowed us to experiment with hyper-text authoring. And, of course, our server continues to serve you in the WWW community.

The PRISM WWW server is no longer unique to this Web site! Lev has ported the server to WISDOM (The Weizmann Insitute of Science, Department Of Mathematics), where Lev is currently a graduate student, where a version of the server is run to support their Web site.

-- Parke Godfrey

Automatic Hyper-Linking


HTML pages of course can have hyper-text links to other pages on the WWW. One sees the links a given page has to elsewhere. However, one does not see the links from other pages to the current page. We call such links back-links.

To know back-links for a page could be very informative. Many pages exist to index pages on the same topic. Therefore, a back-link that leads to such an index page would make it possible to locate quickly other pages on the same topic. A back-link might be a search URL to one of the big search engines. Following that back-link would recast the search query, which would generate an index to similar pages.

Our server generates back-links automatically for our pages, in an opportunistic manner. These back-links may be beneficial to browsers of our pages to find related resources. If a page has any back-links, there is a link at the bottom of the page to its back-link list.

Back-links offer a way to cluster semantically similar pages. Such tools should prove to be extremely useful to the WWW in the future, and greatly aid in finding resources and information on the Web. We hope that other servers will adopt the back-link feature we have. So far, I have not seen anyone else implement this.

To generate back-links, we exploit a feature of the HTTP protocol (2.0 and up). Clients are requested (but not required) to send a Referer field with the request. The value for the field states the URL of the page from which the user has requested one of our pages. So, whenever someone enters our server from elsewhere, we are told from where. Our server checks the referer URL to ensure that it really does reference the requested page. If so, a back-link is then generated.

Some people who browse the Web may be concerned that the Referer field is a breach of privacy. Some WWW clients programs, such as the newer versions of Mosaic, allow one to turn off the sending of the Referer field. Older versions of Netscape and Mosaic implement an older HTTP protocol, and so do not send this information anyway. We encourage people to allow this information to be sent, and only disable it those times when privacy is a concern.

Disclaimer: Back-links for our pages are generated automatically. We disavow any responsibility for the pages which link to us. We have no authority over other people's WWW pages or servers. We cannot ensure the quality, appropriateness, or decency of any page behind a back-link that is materialized. Whenever we become aware of a back-link that we feel is inappropriate or indecent, we shall remove it.

Client Recognition The client recognition feature of our server seemingly defies the strict client/server model of WWW transactions. The way this is accomplished is that the server keeps a queue of the last 100 clients to connect, along with their settings. Of course, this is heuristic; two users on the same machine could end up battling over the settings! And the server eventually forgets about a given client. However, for the most part, this feature seems to have worked well.
Server Directives & Pre-Processing
The ability to include HTML pages in other HTML pages is conspicuously missing in the standard NCSA server, and is a capability we would find hard to live without. I hope such an ability will be added to the next release.