24 |
<h1>P2P Guide</h1> |
<h1>P2P Guide</h1> |
25 |
|
|
26 |
<div class="note">Copyright (C) 2004-2005 Mikio Hirabayashi</div> |
<div class="note">Copyright (C) 2004-2005 Mikio Hirabayashi</div> |
27 |
<div class="note">Last Update: Tue, 07 Jun 2005 06:17:00 +0900</div> |
<div class="note">Last Update: Mon, 01 Aug 2005 00:50:38 +0900</div> |
28 |
<div class="navi">[<a href="nguide-ja.html" hreflang="ja">Japanese</a>] [<a href="index.html">HOME</a>]</div> |
<div class="navi">[<a href="nguide-ja.html" hreflang="ja">Japanese</a>] [<a href="index.html">HOME</a>]</div> |
29 |
|
|
30 |
<hr /> |
<hr /> |
60 |
|
|
61 |
<p>Distributed processing based on P2P (Peer to Peer) architecture is supported. If you use 10 servers handling one million of documents, you can search 10 millions of documents. Because servers are equivalent, whole of the network service works successively even if a server crashes. Moreover, calculating reliability between servers is supported and it can improve search precision.</p> |
<p>Distributed processing based on P2P (Peer to Peer) architecture is supported. If you use 10 servers handling one million of documents, you can search 10 millions of documents. Because servers are equivalent, whole of the network service works successively even if a server crashes. Moreover, calculating reliability between servers is supported and it can improve search precision.</p> |
62 |
|
|
63 |
<p>The node API is provided to hide the protocol between C/S. Using the node API, you can implement client applications without closeup know-hows about network. This document describes how to use the node API also.</p> |
<p>The node API is provided to hide the protocol between C/S. Using the node API, you can implement client applications without closeup know-hows about network. This document describes how to use the node API (C language). Interfaces of the node API for <a href="japidoc/">Java</a> and <a href="rbapidoc/">Ruby</a> are also provided.</p> |
64 |
|
|
65 |
<hr /> |
<hr /> |
66 |
|
|
67 |
<h2 id="architecture">Architecture</h2> |
<h2 id="architecture">Architecture</h2> |
68 |
|
|
69 |
<p>This section describes the P2P arhcitecture of Hyper Estraier.</p> |
<p>This section describes the P2P architecture of Hyper Estraier.</p> |
70 |
|
|
71 |
<h3>Node Master and Node Server</h3> |
<h3>Node Master and Node Server</h3> |
72 |
|
|
74 |
|
|
75 |
<div class="illust"><img src="nodeframe.png" width="720" height="350" alt="[framework]" /></div> |
<div class="illust"><img src="nodeframe.png" width="720" height="350" alt="[framework]" /></div> |
76 |
|
|
77 |
<p>The term "node" is used as with the term "peer" in the P2P architecture. As a client connects to a node master itself and manage some nodes, another client connects to a node server and search/register docments.</p> |
<p>The term "node" is used as with the term "peer" in the P2P architecture. As a client connects to a node master itself and manage some nodes, another client connects to a node server and search/register documents.</p> |
78 |
|
|
79 |
<h3>Meta Search and Credit</h3> |
<h3>Meta Search and Credit</h3> |
80 |
|
|
81 |
<p>A node server can link to another node server one-sidedly. When a client send a query to a node server, the node server relay the query to linked nodes. Responses of linked nodes and the first node are merged and sent back to the client. That is, so-called meta search is supported by every nodes and it realizes destributed processing in P2P architecture.</p> |
<p>A node server can link to another node server one-sidedly. When a client send a query to a node server, the node server relay the query to linked nodes. Responses of linked nodes and the first node are merged and sent back to the client. That is, so-called meta search is supported by every nodes and it realizes distributed processing in P2P architecture.</p> |
82 |
|
|
83 |
<p>The meta search is performed hierarchically. Because loop of routing is detected and restrained automatically, the behavior is as with search of tree structured network. Due to this mechanism, it is possible to increase nodes of the network up to infinity.</p> |
<p>The meta search is performed hierarchically. Because loop of routing is detected and restrained automatically, the behavior is as with search of tree structured network. Due to this mechanism, it is possible to increase nodes of the network up to infinity.</p> |
84 |
|
|
115 |
|
|
116 |
<h3>Administration Interface</h3> |
<h3>Administration Interface</h3> |
117 |
|
|
118 |
<p>While the node master is running, we can access "http://localhost:1978/masterui" with a web browser and use the adminisration interface. When access the URL, a dialog is shown and the user name and the password is required. Input "admin" and "admin". Then, the menu of administration commands is displayed.</p> |
<p>While the node master is running, we can access "http://localhost:1978/masterui" with a web browser and use the administration interface. When access the URL, a dialog is shown and the user name and the password is required. Input "admin" and "admin". Then, the menu of administration commands is displayed.</p> |
119 |
|
|
120 |
<p>If you step into "Manage Master" and select "SHUTDOWN", you can stop the node master. But, leave it for now.</p> |
<p>If you step into "Manage Master" and select "SHUTDOWN", you can stop the node master. But, leave it for now.</p> |
121 |
|
|
129 |
|
|
130 |
<p>Back to the command line operations. As the terminal of the node master is busy to show log messages, open another terminal.</p> |
<p>Back to the command line operations. As the terminal of the node master is busy to show log messages, open another terminal.</p> |
131 |
|
|
132 |
<p>Let's register some documents into the indexes of nodes. It is needed to prapare document draft data of documents to register. Create the following file and save it as "data001.est".</p> |
<p>Let's register some documents into the indexes of nodes. It is needed to prepare document draft data of documents to register. Create the following file and save it as "data001.est".</p> |
133 |
|
|
134 |
<pre>@uri=data001 |
<pre>@uri=data001 |
135 |
@title=Material Girl |
@title=Material Girl |
235 |
<dd>If <var>hash</var> is specified, it checks whether the key and the hash matches.</dd> |
<dd>If <var>hash</var> is specified, it checks whether the key and the hash matches.</dd> |
236 |
</dl> |
</dl> |
237 |
|
|
238 |
<p>All sub commands return 0 if the operation is success, else return 1. A running node master finishs with closing the database when it catchs the signal 2 (SIGINT), 3 (SIGQUIT), or 15 (SIGTERM). Moreover, when a running node master catches the signal 1 (SIGHUP), the process is re-start and re-read the configuration files.</p> |
<p>All sub commands return 0 if the operation is success, else return 1. A running node master finishes with closing the database when it catches the signal 2 (SIGINT), 3 (SIGQUIT), or 15 (SIGTERM). Moreover, when a running node master catches the signal 1 (SIGHUP), the process is re-start and re-read the configuration files.</p> |
239 |
|
|
240 |
<p>A running node server sould be finished by valid means by command line or via network. Otherwise, the index may be broken.</p> |
<p>A running node server should be finished by valid means by command line or via network. Otherwise, the index may be broken.</p> |
241 |
|
|
242 |
<h3>Constitution of the Server Root Directory</h3> |
<h3>Constitution of the Server Root Directory</h3> |
243 |
|
|
322 |
<li><kbd>uidirindex</kbd> : specifies the name of the directory index file.</li> |
<li><kbd>uidirindex</kbd> : specifies the name of the directory index file.</li> |
323 |
<li><kbd>uireplace</kbd> : specifies an expression to replace the URI of each document. Before string and after string are separated by "{{!}}". This can be more than once.</li> |
<li><kbd>uireplace</kbd> : specifies an expression to replace the URI of each document. Before string and after string are separated by "{{!}}". This can be more than once.</li> |
324 |
<li><kbd>uiextattr</kbd> : specifies an attribute to be shown. The name and the label are separated by "|". This can be more than once.</li> |
<li><kbd>uiextattr</kbd> : specifies an attribute to be shown. The name and the label are separated by "|". This can be more than once.</li> |
325 |
<li><kbd>uismplphrase</kbd> : specifies whether to use simplefied search phrase (0:no, 1:yes).</li> |
<li><kbd>uismplphrase</kbd> : specifies whether to use simplified search phrase (0:no, 1:yes).</li> |
326 |
</ul> |
</ul> |
327 |
|
|
328 |
<h3>User Account File</h3> |
<h3>User Account File</h3> |
386 |
<dt><kbd>/master?action=useradd&name=<var>str</var>&passwd=<var>str</var>&flags=<var>str</var>&fname=<var>str</var>&misc=<var>str</var></kbd></dt> |
<dt><kbd>/master?action=useradd&name=<var>str</var>&passwd=<var>str</var>&flags=<var>str</var>&fname=<var>str</var>&misc=<var>str</var></kbd></dt> |
387 |
<dd>Add a user account.</dd> |
<dd>Add a user account.</dd> |
388 |
<dd><var>name</var> specifies the name of a new user. It is essential. Only alphanumeric characters are in the name. If the specified name overlaps the name of an existing user, it is treated as an error.</dd> |
<dd><var>name</var> specifies the name of a new user. It is essential. Only alphanumeric characters are in the name. If the specified name overlaps the name of an existing user, it is treated as an error.</dd> |
389 |
<dd><var>passwd</var> specifies the password. It is essantial.</dd> |
<dd><var>passwd</var> specifies the password. It is essential.</dd> |
390 |
<dd><var>flags</var> specifies the flags. It is optional.</dd> |
<dd><var>flags</var> specifies the flags. It is optional.</dd> |
391 |
<dd><var>fname</var> specifies the full name. It is optional.</dd> |
<dd><var>fname</var> specifies the full name. It is optional.</dd> |
392 |
<dd><var>misc</var> specifies the miscellaneous information. It is optional.</dd> |
<dd><var>misc</var> specifies the miscellaneous information. It is optional.</dd> |
472 |
|
|
473 |
<dl> |
<dl> |
474 |
<dt><kbd>/node/<var>name</var>/put_doc?draft=<var>str</var></kbd></dt> |
<dt><kbd>/node/<var>name</var>/put_doc?draft=<var>str</var></kbd></dt> |
475 |
<dd>Register a docuemnt. It is available by administrators only.</dd> |
<dd>Register a document. It is available by administrators only.</dd> |
476 |
<dd><var>draft</var> specifies content of a document in document draft format. It is essential.</dd> |
<dd><var>draft</var> specifies content of a document in document draft format. It is essential.</dd> |
477 |
<dd>On success, the status code 200 is returned.</dd> |
<dd>On success, the status code 200 is returned.</dd> |
478 |
</dl> |
</dl> |
506 |
|
|
507 |
<h3>Format of Search Result</h3> |
<h3>Format of Search Result</h3> |
508 |
|
|
509 |
<p>The format of the entitiy body of result of search command is alike to multipart of MIME. The following is an example.</p> |
<p>The format of the entity body of result of search command is alike to multipart of MIME. The following is an example.</p> |
510 |
|
|
511 |
<pre>--------[2387AD2E34554FFF]-------- |
<pre>--------[2387AD2E34554FFF]-------- |
512 |
VERSION 0.9 |
VERSION 0.9 |
557 |
<li><kbd>VERSION</kbd> : specifies the version of the protocol.</li> |
<li><kbd>VERSION</kbd> : specifies the version of the protocol.</li> |
558 |
<li><kbd>NODE</kbd> : specifies the URL of the node.</li> |
<li><kbd>NODE</kbd> : specifies the URL of the node.</li> |
559 |
<li><kbd>HIT</kbd> : specifies the total number of the corresponding documents.</li> |
<li><kbd>HIT</kbd> : specifies the total number of the corresponding documents.</li> |
560 |
<li><kbd>HINT#<var>n</var></kbd> : specifies the number of documents correspondign each word. The second field specifies the word. The third field specifies the number.</li> |
<li><kbd>HINT#<var>n</var></kbd> : specifies the number of documents corresponding each word. The second field specifies the word. The third field specifies the number.</li> |
561 |
<li><kbd>DOCNUM</kbd> : specifies the total number of documents in target nodes.</li> |
<li><kbd>DOCNUM</kbd> : specifies the total number of documents in target nodes.</li> |
562 |
<li><kbd>WORDNUM</kbd> : specifies the total number of words in target nodes.</li> |
<li><kbd>WORDNUM</kbd> : specifies the total number of words in target nodes.</li> |
563 |
<li><kbd>TIME</kbd> : specifies elapsed time in milliseconds.</li> |
<li><kbd>TIME</kbd> : specifies elapsed time in milliseconds.</li> |
622 |
|
|
623 |
<dl> |
<dl> |
624 |
<dt><kbd>int est_init_net_env(void);</kbd></dt> |
<dt><kbd>int est_init_net_env(void);</kbd></dt> |
625 |
<dd>The return value is true if success, else it is false.</dd> |
<dd>The return value is true if success, else it is false. As it is allowable to call this function multiple times, it is needed to call the function `est_free_net_env' at the same frequency.</dd> |
626 |
</dl> |
</dl> |
627 |
|
|
628 |
<p>The function `est_free_net_env' is used in order to free the networking environment.</p> |
<p>The function `est_free_net_env' is used in order to free the networking environment.</p> |
634 |
|
|
635 |
<h3>API for Nodes</h3> |
<h3>API for Nodes</h3> |
636 |
|
|
637 |
<p>The type of the structure `ESTNODE' is for abstraction of connection to a node. A node has its own URL. No entitiy of `ESTNODE' is accessed directly, but it is accessed by the pointer. The term of "node connection object" means the pointer and its referent. A node connection object is created by the function `est_node_new' and destroyed by `est_node_delete'. Every created node connection object should be destroyed.</p> |
<p>The type of the structure `ESTNODE' is for abstraction of connection to a node. A node has its own URL. No entity of `ESTNODE' is accessed directly, but it is accessed by the pointer. The term of "node connection object" means the pointer and its referent. A node connection object is created by the function `est_node_new' and destroyed by `est_node_delete'. Every created node connection object should be destroyed.</p> |
638 |
|
|
639 |
<p>The following is a typical use case of node connection object.</p> |
<p>The following is a typical use case of node connection object.</p> |
640 |
|
|
643 |
/* create a node connection object */ |
/* create a node connection object */ |
644 |
node = est_node_new("http://estraier.gov:1978/node/foo"); |
node = est_node_new("http://estraier.gov:1978/node/foo"); |
645 |
|
|
646 |
/* set the proxy, the timeout, and the autority */ |
/* set the proxy, the timeout, and the authentication */ |
647 |
est_node_set_proxy(node, "proxy.qdbm.go.jp", 8080); |
est_node_set_proxy(node, "proxy.qdbm.go.jp", 8080); |
648 |
est_node_set_timeout(node, 5); |
est_node_set_timeout(node, 5); |
649 |
est_node_set_auth(node, "mikio", "oikim"); |
est_node_set_auth(node, "mikio", "oikim"); |
668 |
<dd>`node' specifies a node connection object.</dd> |
<dd>`node' specifies a node connection object.</dd> |
669 |
</dl> |
</dl> |
670 |
|
|
|
<p>The function `est_node_status' is used in order to get the status code of the last request of a node.</p> |
|
|
|
|
|
<dl> |
|
|
<dt><kbd>int est_node_status(ESTNODE *<var>node</var>);</kbd></dt> |
|
|
<dd>`node' specifies a node connection object. The return value is the status code of the last request of the node. -1 means failure of connection.</dd> |
|
|
</dl> |
|
|
|
|
671 |
<p>The function `est_node_set_proxy' is used in order to set the proxy information of a node connection object.</p> |
<p>The function `est_node_set_proxy' is used in order to set the proxy information of a node connection object.</p> |
672 |
|
|
673 |
<dl> |
<dl> |
689 |
<dd>`node' specifies a node connection object. `name' specifies the name of authentication. `passwd' specifies the password of the authentication.</dd> |
<dd>`node' specifies a node connection object. `name' specifies the name of authentication. `passwd' specifies the password of the authentication.</dd> |
690 |
</dl> |
</dl> |
691 |
|
|
692 |
|
<p>The function `est_node_status' is used in order to get the status code of the last request of a node.</p> |
693 |
|
|
694 |
|
<dl> |
695 |
|
<dt><kbd>int est_node_status(ESTNODE *<var>node</var>);</kbd></dt> |
696 |
|
<dd>`node' specifies a node connection object. The return value is the status code of the last request of the node. -1 means failure of connection.</dd> |
697 |
|
</dl> |
698 |
|
|
699 |
<p>The function `est_node_put_doc' is used in order to add a document to a node.</p> |
<p>The function `est_node_put_doc' is used in order to add a document to a node.</p> |
700 |
|
|
701 |
<dl> |
<dl> |
745 |
<dd>`node' specifies a node connection object. `uri' specifies the URI of a registered document. `name' specifies the name of an attribute. The return value is the value of the attribute or `NULL' if it does not exist. Because the region of the return value is allocated with the `malloc' call, it should be released with the `free' call if it is no longer in use.</dd> |
<dd>`node' specifies a node connection object. `uri' specifies the URI of a registered document. `name' specifies the name of an attribute. The return value is the value of the attribute or `NULL' if it does not exist. Because the region of the return value is allocated with the `malloc' call, it should be released with the `free' call if it is no longer in use.</dd> |
746 |
</dl> |
</dl> |
747 |
|
|
748 |
<p>The function `est_node_uri_to_id' is used in order to get the ID of a document spacified by URI.</p> |
<p>The function `est_node_uri_to_id' is used in order to get the ID of a document specified by URI.</p> |
749 |
|
|
750 |
<dl> |
<dl> |
751 |
<dt><kbd>int est_node_uri_to_id(ESTNODE *<var>node</var>, const char *<var>uri</var>);</kbd></dt> |
<dt><kbd>int est_node_uri_to_id(ESTNODE *<var>node</var>, const char *<var>uri</var>);</kbd></dt> |
780 |
<dd>`node' specifies a node connection object. The return value is the number of unique words in the node. On error, -1 is returned.</dd> |
<dd>`node' specifies a node connection object. The return value is the number of unique words in the node. On error, -1 is returned.</dd> |
781 |
</dl> |
</dl> |
782 |
|
|
783 |
<p>The function `est_node_size' is used in order to get the size of the datbase of a node.</p> |
<p>The function `est_node_size' is used in order to get the size of the database of a node.</p> |
784 |
|
|
785 |
<dl> |
<dl> |
786 |
<dt><kbd>double est_node_size(ESTNODE *<var>node</var>);</kbd></dt> |
<dt><kbd>double est_node_size(ESTNODE *<var>node</var>);</kbd></dt> |
787 |
<dd>`node' specifies a node connection object. The return value is the size of the datbase of the node. On error, -1.0 is returned.</dd> |
<dd>`node' specifies a node connection object. The return value is the size of the database of the node. On error, -1.0 is returned.</dd> |
788 |
</dl> |
</dl> |
789 |
|
|
790 |
<p>The function `est_node_search' is used in order to search documents corresponding a condition for a node.</p> |
<p>The function `est_node_search' is used in order to search documents corresponding a condition for a node.</p> |
810 |
|
|
811 |
<h3>API for Search Results of Nodes</h3> |
<h3>API for Search Results of Nodes</h3> |
812 |
|
|
813 |
<p>The type of the structure `ESTNODERES' is for abstraction of search result from a node. A result is composed of a list of corresponding documents and information of hints. No entitiy of `ESTNODERES' is accessed directly, but it is accessed by the pointer. The term of "node result object" means the pointer and its referent. A node result object is created by the function `est_node_search' and destroyed by `est_noderes_delete'. Every created node connection object should be destroyed.</p> |
<p>The type of the structure `ESTNODERES' is for abstraction of search result from a node. A result is composed of a list of corresponding documents and information of hints. No entity of `ESTNODERES' is accessed directly, but it is accessed by the pointer. The term of "node result object" means the pointer and its referent. A node result object is created by the function `est_node_search' and destroyed by `est_noderes_delete'. Every created node connection object should be destroyed.</p> |
814 |
|
|
815 |
<p>The type of the structure `ESTRESDOC' is for abstraction of a document in search result. A result document is composed of some attributes and a snippet. No entitiy of `ESTRESDOC' is accessed directly, but it is accessed by the pointer. The term of "result document object" means the pointer and its referent. A result document object is gotten by the function `est_noderes_get_doc' but it should not be destroyed because the entity is managed inside the node result object.</p> |
<p>The type of the structure `ESTRESDOC' is for abstraction of a document in search result. A result document is composed of some attributes and a snippet. No entity of `ESTRESDOC' is accessed directly, but it is accessed by the pointer. The term of "result document object" means the pointer and its referent. A result document object is gotten by the function `est_noderes_get_doc' but it should not be destroyed because the entity is managed inside the node result object.</p> |
816 |
|
|
817 |
<p>The following is a typical use case of node connection object and result document object.</p> |
<p>The following is a typical use case of node connection object and result document object.</p> |
818 |
|
|
901 |
|
|
902 |
<h3>Paralleling</h3> |
<h3>Paralleling</h3> |
903 |
|
|
904 |
<p>Each of node connection objects, node result objects, and result document objects can not be shared by threads. If you use multi threads, make eath thread have its own objects. If the precondition is kept, functions of the node API can be treated as thread-safe functions.</p> |
<p>Each of node connection objects, node result objects, and result document objects can not be shared by threads. If you use multi threads, make each thread have its own objects. If the precondition is kept, functions of the node API can be treated as thread-safe functions.</p> |
905 |
|
|
906 |
<h3>Example of Gatherer</h3> |
<h3>Example of Gatherer</h3> |
907 |
|
|
921 |
fprintf(stderr, "error: network is unavailable\n"); |
fprintf(stderr, "error: network is unavailable\n"); |
922 |
return 1; |
return 1; |
923 |
} |
} |
924 |
/* create and configure the node connecton object */ |
/* create and configure the node connection object */ |
925 |
node = est_node_new("http://localhost:1978/node/test1"); |
node = est_node_new("http://localhost:1978/node/test1"); |
926 |
est_node_set_auth(node, "admin", "admin"); |
est_node_set_auth(node, "admin", "admin"); |
927 |
/* create a document object */ |
/* create a document object */ |
967 |
fprintf(stderr, "error: network is unavailable\n"); |
fprintf(stderr, "error: network is unavailable\n"); |
968 |
return 1; |
return 1; |
969 |
} |
} |
970 |
/* create the node connecton object */ |
/* create the node connection object */ |
971 |
node = est_node_new("http://localhost:1978/node/test1"); |
node = est_node_new("http://localhost:1978/node/test1"); |
972 |
/* create a search condition object */ |
/* create a search condition object */ |
973 |
cond = est_cond_new(); |
cond = est_cond_new(); |
986 |
if((value = est_resdoc_attr(rdoc, "@title")) != NULL) |
if((value = est_resdoc_attr(rdoc, "@title")) != NULL) |
987 |
printf("Title: %s\n", value); |
printf("Title: %s\n", value); |
988 |
/* display the snippet text */ |
/* display the snippet text */ |
989 |
value = est_resdoc_snippet(rdoc); |
printf("%s", est_resdoc_snippet(rdoc)); |
|
printf("%s", value); |
|
990 |
} |
} |
991 |
/* delete the node result object */ |
/* delete the node result object */ |
992 |
est_noderes_delete(nres); |
est_noderes_delete(nres); |
1040 |
|
|
1041 |
<dl> |
<dl> |
1042 |
<dt><kbd>estcall inform [-proxy <var>host</var> <var>port</var>] [-tout <var>num</var>] [-auth <var>user</var> <var>pass</var>] <var>nurl</var></kbd></dt> |
<dt><kbd>estcall inform [-proxy <var>host</var> <var>port</var>] [-tout <var>num</var>] [-auth <var>user</var> <var>pass</var>] <var>nurl</var></kbd></dt> |
1043 |
<dd>Outout the name, the label, the number of documents, and the number of unique words of a node.</dd> |
<dd>Output the name, the label, the number of documents, and the number of unique words of a node.</dd> |
1044 |
</dl> |
</dl> |
1045 |
|
|
1046 |
<dl> |
<dl> |
1048 |
<dd>Search a node for documents.</dd> |
<dd>Search a node for documents.</dd> |
1049 |
<dd><var>phrase</var> specifies the search phrase.</dd> |
<dd><var>phrase</var> specifies the search phrase.</dd> |
1050 |
<dd>If -vx is specified, XML including including attributes and snippets is output.</dd> |
<dd>If -vx is specified, XML including including attributes and snippets is output.</dd> |
1051 |
<dd>If -sf is specified, the phrase is treated as a simplefied form.</dd> |
<dd>If -sf is specified, the phrase is treated as a simplified form.</dd> |
1052 |
<dd>-attr specifies an attribute search condition. This option can be specified multiple times.</dd> |
<dd>-attr specifies an attribute search condition. This option can be specified multiple times.</dd> |
1053 |
<dd>-ord specifies the order expression. By default, it is descending by score.</dd> |
<dd>-ord specifies the order expression. By default, it is descending by score.</dd> |
1054 |
<dd>-max specifies the maximum number of show documents. Negative means unlimited. By default, it is 10.</dd> |
<dd>-max specifies the maximum number of show documents. Negative means unlimited. By default, it is 10.</dd> |
1072 |
|
|
1073 |
<dl> |
<dl> |
1074 |
<dt><kbd>estcall raw [-proxy <var>host</var> <var>port</var>] [-tout <var>num</var>] [-auth <var>user</var> <var>pass</var>] [-np] [-eh <var>expr</var>] <var>url</var> [<var>file</var>]</kbd></dt> |
<dt><kbd>estcall raw [-proxy <var>host</var> <var>port</var>] [-tout <var>num</var>] [-auth <var>user</var> <var>pass</var>] [-np] [-eh <var>expr</var>] <var>url</var> [<var>file</var>]</kbd></dt> |
1075 |
<dd>Outout response of an HTTP request.</dd> |
<dd>Output response of an HTTP request.</dd> |
1076 |
<dd><var>url</var> specifies the URL of a target.</dd> |
<dd><var>url</var> specifies the URL of a target.</dd> |
1077 |
<dd>If <var>file</var> is specified, the content is sent by POST method. If not, GET method is used. If "-" is specified, the standart input is read.</dd> |
<dd>If <var>file</var> is specified, the content is sent by POST method. If not, GET method is used. If "-" is specified, the standard input is read.</dd> |
1078 |
<dd>If -np is specified, output response headers also.</dd> |
<dd>If -np is specified, output response headers also.</dd> |
1079 |
<dd>-eh specifies an additional HTTP header. By default, "Host", "Connection", "User-Agent", and "Content-Length" is added.</dd> |
<dd>-eh specifies an additional HTTP header. By default, "Host", "Connection", "User-Agent", and "Content-Length" is added.</dd> |
1080 |
</dl> |
</dl> |