John Wilson wrote:

>Chunking, whilst a very nice feature, is explicitly forbidden by the XML-RPC
>spec. (http://www.xml-rpc.com/spec see the Header Requirements section -
>"The Content-Length must be specified and must be correct").
>
>We already do some things which are explicitly forbidden by the XML-RPC
>spec. (using ISO 8859/1 encoding, for example). However this is done in a
>way which minimises the impact on interoperability.
>
>If we are going to support chunking, compression, etc. we must be sure that
>it has zero impact on interoperability.
>
>Could you give us an impact assessment of the changes that you are proposing
>on the interoperability with existing XML-RPC systems.
>
>John Wilson
>The Wilson Partnership
>http://www.wilson.co.uk
>

No problem, and you are right about the spec.  I also agree with you on 
interoperability.

The change I am proposing is to build in full HTTP/1.1 support to the 
client piece.  This is in order to increase interoperability with 
service providers that do not adhere to the strict XML-RPC spec with 
their software.  For example, from the documentation for a service I 
need to consume: "The XML-RPC spec states that all responses must 
specify a predetermined response length using the HTTP Content-Length: 
header.  [My vendor] uses a more generalized form that allows the 
content length to be specified in any way that is valid for the version 
of HTTP that is being used."

It seems to be that we should be strict in what we send and lenient in 
what we accept (I think that's a Vixie quote, but don't "quote" me).  In 
other words, our client should only send strictly compliant requests but 
accept less compliant responses if possible.  I think this is possible 
with the Jakarta Commons HttpClient.  However, I don't think that it 
offers much benefit to build this into the XmlRpcClientLite.

Some specific HTTP/1.1 features that should be included are chunking, 
compression, authentication, and cookies.  I am only talking about a 
client here; our server should strictly follow the spec.  This doesn't 
necessarily rule out compression, incidentally.

Before I break my back filling out javadoc and making exhaustive test 
suites, please let me know if the committers think this is not a good 
fit for this library.

--
Ryan Hoegg
ISIS Networks


Reply via email to