Formal proposal for limits on search size

This message addresses:

1) How a server signals in the reply that result set truncation has
occurred.  This is a must for DASL 1.0

2) How a client requests a limit to the number of results.

Result set truncation is signalled with status code 425 in the body of the
multistatus.  

We can't use 206, that is for partial GET, which is initiated by the
client, not the server.  Nor should we use 413 Request Entity Too Large.
For one thing, it's the response that's too large not the request entity,
and for another, the results could be truncated for other reasons than
size, e.g. cost.
Code 425 (Insufficient Space on Resource) has the right name, even though
the description in WebDAV speaks of properties that are too long, rather
than requests that generate too much output.  Still, I think it's better to
stretch the meaning of status code then to add yet another to HTTP.

Also the search as a whole should return 207 Multistatus, and the 425
status code should be attached to a response whose href is the request URI
(the arbiter.)

Here is some language to add to the draft:

A server MAY limit the number of resources in a reply, for example to limit
the amount of resources expended in processing a query.  If it does so, the
reply MUST include a response element whose href is that of the request URI
and whose status is 425.

SEARCH / HTTP/1.1
Host: gdr.com
Content-Type: text/xml
Connection: Close
Content-Length: xxxxx

<?xml version="1.0"?>
<?xml:namespace ns="DAV:" prefix="D"?>
<D:searchrequest>
	<D:simplesearch>
		… the query goes here …
	</D:simplesearch>
</D:searchrequest>

>> Response

HTTP/1.1 207 Multi-Status
Content-Type: text/xml
Content-Length: xxxxx
<?xml version="1.0"?>
<?xml:namespace ns="DAV:" prefix="D"?>
<D:multistatus>
   <D:response>
      <D:href>http://www.gdr.com/sounds/unbrokenchain.au</D:href>
      <D:status>HTTP/1.1 200 OK</D:status>
   </D:response>
   <D:response>
      <D:href>http://tech.mit.edu/archive96/photos/Lesh1.jpg</D:href>
      <D:status>HTTP/1.1 200 OK</D:status> 
   </D:response>
   ...
   <D:response>
      <D:href>http://gdr.com/</D:href>
      <D:status>HTTP/1.1 425 Insufficient Space on Resource</D:status>
      <D:responsedescription>Too many hits</D:responsedescription>
   </D:response>
</D:multistatus>

Clients request a limit to the number of results using the (new) XML
element dav:limit defined as

<!ELEMENT limit (nresults)>
<!ELEMENT nresults (#PCDATA)>

Received on Friday, 12 June 1998 23:11:32 UTC