Adding JMCR-Stable version
[Benchmarks_CSolver.git] / JMCR-Stable / mcr-test / WWW / User / Reference / w3c.www.protocol.http.icp.ICPFilter.html
diff --git a/JMCR-Stable/mcr-test/WWW/User/Reference/w3c.www.protocol.http.icp.ICPFilter.html b/JMCR-Stable/mcr-test/WWW/User/Reference/w3c.www.protocol.http.icp.ICPFilter.html
new file mode 100644 (file)
index 0000000..ac3bf4d
--- /dev/null
@@ -0,0 +1,217 @@
+<HTML>\r
+<HEAD>\r
+  <!-- Created by GNNpress/1.2 -->\r
+  <!-- Changed by: Anselm Baird-Smith,  4-Feb-1997 -->\r
+  <TITLE>ICPFilter reference manual</TITLE>\r
+</HEAD>\r
+<BODY BGCOLOR="white">\r
+<P>\r
+<A HREF="http://www.w3.org/pub/WWW/" TARGET="_top_"><IMG ALT="W3C" BORDER="0" WIDTH="72" HEIGHT="48"\r
+    SRC="/icons/WWW/w3c_home"></A> <A HREF="http://www.w3.org/pub/WWW/Jigsaw/" TARGET="_top_">\r
+<IMG ALT="Jigsaw" BORDER="0" WIDTH="212" HEIGHT="49" SRC="/icons/jigsaw">\r
+</A> \r
+  <HR>\r
+<H1>\r
+  ICP Filter\r
+</H1>\r
+<P>\r
+The ICP client side filter add support for the\r
+<A HREF="http://www.nlanr.net/Cache/ICP/">Internet Cache Protocol</A> to\r
+the <B>Jigsaw</B> HTTP client side implementation. This support can be used\r
+both by browsers (such as HotJava, <A HREF="../FAQ.html#client-hotjava">check\r
+the FAQ</A>), or by proxies (the typical case).\r
+<P>\r
+In brief, ICP allows several proxies to cooperate by exchanging informations\r
+about what they currently have in their local cache. <B>Jigsaw</B>'s ICP\r
+implementation should be compatible with other ICP capable proxies (such\r
+as <A HREF="http://squid.nlanr.net/Squid/">Squid</A>), even though it doesn't\r
+make use of all the features of the underlying protocol (in fact, it implements\r
+what can be implemented while still remaining compliant with the HTTP/1.1\r
+protocol specification).\r
+<P>\r
+<B>Warning</B>: <B>Jigsaw</B> doesn't come with the appropriate support for\r
+editing the ICP filter properties from the <CODE>/Admin/Properties</CODE>\r
+resource; this means that you will have to manually edit your <B>Jigsaw\r
+</B>configuration file in order to set the properties relevant to that filter.\r
+This file is usually named <CODE>config/http-server.props</CODE> if not,\r
+you probably know already what we are talking about.\r
+<H3>\r
+  <A NAME="rule-file">ICP Configuration File</A>\r
+</H3>\r
+<P>\r
+This filter uses a <A HREF="#w3c.www.protocol.http.icp.config">configuration\r
+file</A>, to know about the proxies it cooperates with. The syntax for this\r
+rule file is defined by the following BNF:\r
+<PRE>rule-file := *(rules)\r
+rules     := (comment|host-description)\r
+comment   := '#' &lt;chars up EOL&gt;\r
+host-description := host SPACES port spaces url EOL\r
+host      := &lt;valid Internet host name&gt;\r
+port      := &lt;valid UDP port number&gt;\r
+url       := &lt;URL locating the proxy to use for that host/port&gt;\r
+SPACES    := *(' '|'\t')\r
+EOL       := '\r' | '\r\n' | '\n'\r
+</PRE>\r
+<P>\r
+A sample ICP configuration file looks like:\r
+<PRE># Sample ICP configuration file\r
+# -----------------------------\r
+# First neighbour:\r
+icp.host1.com 10345 http://icp.host1.com:8080/\r
+# Second neighbour:\r
+icp.host2.com 10345 http://icp.host2.com:8080/\r
+</PRE>\r
+<P>\r
+After parsing such a configuration file, the ICP filter, will register both\r
+hosts as <I>neighbours</I>. When a request comes in for some document, the\r
+filter sends a UDP packet to both hosts (it knows about their namee, and\r
+the port they are listening on through the first two fields of the configuration\r
+file). It then waits for some positive answer, if such an answer arrives,\r
+it finally looks it up (matching the UDP sender address with one of the above\r
+declared hosts), and use the appropriate URL as a proxy address.\r
+<P>\r
+To setup a nice cache hierarchy, one can use a conjunction of the\r
+<A HREF="w3c.www.protocol.http.ProxyDispatcher.html">ProxyDispatcher</A>\r
+filter, the\r
+<A HREF="w3c.www.protocol.http.cache.CacheFilter.html">CacheFilter</A> and\r
+the ICP filter. The starting point for setting up such a config, is to set\r
+the <A HREF="w3c.www.protocol.http.HttpManager.html">HttpManager</A>\r
+<A HREF="w3c.www.protocol.http.HttpManager.html#w3c.www.protocol.http.filters">filters</A>\r
+property to:\r
+<PRE>w3c.www.protocol.http.filters=w3c.www.protocol.http.proxy.ProxyDispatcher \\r
+     |w3c.www.protocol.http.cache.CacheFilter \\r
+     |w3c.www.protocol.http.icp.ICPFilter\r
+</PRE>\r
+<P>\r
+(the \ character indicates that the line is splitted for best reading, they\r
+should not appear in the property value - which should be written as a single\r
+line). Note that in this setting the order in which you declare the filters\r
+is indeed important.\r
+<P>\r
+  <HR>\r
+<H2>\r
+  Properties\r
+</H2>\r
+<P>\r
+The <A HREF="../api/w3c.www.protocol.http.icp.ICPFilter.html">ICPFilter</A>\r
+defines the following properties:\r
+<UL>\r
+  <LI>\r
+    <A HREF="#w3c.www.protocol.http.icp.debug">w3c.www.protocol.http.icp.debug</A>\r
+  <LI>\r
+    <A HREF="#w3c.www.protocol.http.icp.config">w3c.www.protocol.http.icp.config</A>\r
+  <LI>\r
+    <A HREF="#w3c.www.protocol.http.icp.port">w3c.www.protocol.http.icp.port</A>\r
+  <LI>\r
+    <A HREF="#w3c.www.protocol.http.icp.timeout">w3c.www.protocol.http.icp.timeout</A>\r
+  <LI>\r
+    <A HREF="#w3c.www.protocol.http.icp.disable-cache">w3c.www.protocol.http.icp.disable-cache</A>\r
+</UL>\r
+<P>\r
+  <HR>\r
+<P>\r
+<CODE><A NAME="w3c.www.protocol.http.icp.debug">w3c.www.protocol.http.icp.debug</A></CODE>\r
+<DL>\r
+  <DT>\r
+    <I>semantics</I>\r
+  <DD>\r
+    When set to <B>true</B>, this property will make the ICP filter emit some\r
+    (hopefully) interesting traces.\r
+  <DT>\r
+    <I>type</I>\r
+  <DD>\r
+    A boolean property.\r
+  <DT>\r
+    <I>default value</I>\r
+  <DD>\r
+    This property defaults to <B>false</B>.\r
+</DL>\r
+<P>\r
+  <HR>\r
+<P>\r
+<CODE><A NAME="w3c.www.protocol.http.icp.config">w3c.www.protocol.http.icp.config</A></CODE>\r
+<DL>\r
+  <DT>\r
+    <I>semantics</I>\r
+  <DD>\r
+    The name of the <I><A HREF="#rule-file">rule file</A></I> for ICP\r
+  <DT>\r
+    <I>type</I>\r
+  <DD>\r
+    A File property (it's value should provide a path to an existing file)\r
+  <DT>\r
+    <I>default value</I>\r
+  <DD>\r
+    This property has no default value, and <B>must</B> be set for the ICP filter\r
+    to be activated.\r
+</DL>\r
+<P>\r
+  <HR>\r
+<P>\r
+<CODE><A NAME="w3c.www.protocol.http.icp.port">w3c.www.protocol.http.icp.port</A></CODE>\r
+<DL>\r
+  <DT>\r
+    <I>semantics</I>\r
+  <DD>\r
+    The UDP port number that filter should use to communicate with cooperating\r
+    proxies. This port number is the one the filter will be listening at for\r
+    requests from other (cooperating proxies).\r
+  <DT>\r
+    <I>type</I>\r
+  <DD>\r
+    An integer property (it's value should be a valid UDP port number)\r
+  <DT>\r
+    <I>default value</I>\r
+  <DD>\r
+    This property has no default value and <B>must</B> be set for the ICP filter\r
+    to be activated.\r
+</DL>\r
+<P>\r
+  <HR>\r
+<P>\r
+<CODE><A NAME="w3c.www.protocol.http.icp.timeout">w3c.www.protocol.http.icp.timeout</A></CODE>\r
+<DL>\r
+  <DT>\r
+    <I>semantics</I>\r
+  <DD>\r
+    The number of milliseconds the filter should wait for replies from cooperating\r
+    proxies, before estimating that none of them is available to answer its query.\r
+  <DT>\r
+    <I>type</I>\r
+  <DD>\r
+    An integer property (it's value should be a valid number of milliseconds)\r
+  <DT>\r
+    <I>default value</I>\r
+  <DD>\r
+    This property defaults to <B>500</B> ms.\r
+</DL>\r
+<P>\r
+  <HR>\r
+<P>\r
+<CODE><A NAME="w3c.www.protocol.http.icp.disable-cache">w3c.www.protocol.http.icp.disable-cache</A></CODE>\r
+<DL>\r
+  <DT>\r
+    <I>semantics</I>\r
+  <DD>\r
+    Disable the caching of documents retreived through a neighbour proxy. If\r
+    you're making a set of <I>local</I> proxies cooperate, this flag will ensure\r
+    that no two close proxy will cache the same page.\r
+  <DT>\r
+    <I>type</I>\r
+  <DD>\r
+    A boolean property.\r
+  <DT>\r
+    <I>default value</I>\r
+  <DD>\r
+    This property defaults to <B>true</B>\r
+</DL>\r
+<P>\r
+  <HR>\r
+<P>\r
+<I><A HREF="mailto:jigsaw@w3.org">Jigsaw Team</A><BR>\r
+</I>$Id: w3c.www.protocol.http.icp.ICPFilter.html,v 1.1 1997/02/11 19:46:53\r
+abaird Exp $\r
+<P>\r
+<P>\r
+<P>\r
+</BODY></HTML>\r