For very long and probably repetitive query strings, which should compress well, you could use a representation based on gzip + base64 of the query string.
Florent On Fri, Jun 7, 2013 at 11:03 AM, Florian Müller <[email protected]> wrote: > Hi Mark, > > The specification does not explicitly say that the entire query string must > be in the header. > The specification says for the AtomPub binding: > "Upon submission (creation) of a query document, a response must be returned > with a Location header representing the feed for that query." > > That is, a client should be able to repeat the query by just calling the URL > in Location header (via HTTP GET). That means the URL must contain all > necessary information about this query. > There are two approaches to implement that. OpenCMIS uses a stateless > approach and puts everything into the URL, which could be become very long. > An alternative approach would be to store the query on the server, assign > the query statement an id, and return an URL with that id. But that would > require some sort of storage on the server side and opens up the question > how long do you want to maintain these ids. > > > - Florian > > > >> Hello >> >> I have question which appears to have been raised some time ago: >> >> >> http://mail-archives.apache.org/mod_mbox/chemistry-dev/201106.mbox/%3C4DF8D70D.7000200%40alfresco.com%3E >> >> In that thread, there is reference made to this: >> >> >> http://tomcat.apache.org/tomcat-6.0-doc/config/http.html#Standard_Implementation >> -> maxHttpHeaderSize >> >> In the thread, it is also mentioned that: >> >> *The CMIS specification says that the server has to add a Location >> header to its query response >> that is "representing the feed for that query". That basically means >> that the query is repeated >> in the HTTP header*. >> The default header buffer size in Tomcat 6 and 7 is 8k. If you remove >> all other headers you >> end up with about 7884 byte -- plus/minus a few bytes. >> You can increase header buffer size in Tomcat. >> in the HTTP header. >> The default header buffer size in Tomcat 6 and 7 is 8k. If you remove >> all other headers you >> end up with about 7884 byte -- plus/minus a few bytes. >> You can increase header buffer size in Tomcat. >> >> Just curious - is this something in the specification that can only be >> addressed by placing the entire query String in the header? >> >> We have a use case for which the WHERE IN( ) clause could contain up to >> 1000 or more 16-digit String values inside the WHERE acme:userID IN( >> value1, value2, value3....) part of the query - the acme:employeeID is a >> custom metadata property of the implemented content model. >> >> FWIW... we use: >> >> OpenCMIS 0.8.0 >> Alfresco Enterprise 4.1.3 >> >> >> Thanks >> >> Mark >> * * > > -- Florent Guillaume, Director of R&D, Nuxeo Open Source, Java EE based, Enterprise Content Management (ECM) http://www.nuxeo.com http://www.nuxeo.org +33 1 40 33 79 87
