> My problem is this. Gisle's LibWWW modules only supports HTTP/1.0. But
> so far I haven't noticed a problem communicating as an HTTP/1.0 WebDAV
> client to an HTTP/1.1 WebDAV server (well mod_dav 0.9.14 actually).
>
> Can you please tell me, why was WebDAV built on top of HTTP/1.1 instead
> of just HTTP/1.0. Or more specifically, are there specific features
> available in HTTP/1.1 that will prevent my client from being a fully
> Class1 and Class2 compliant WebDAV client? If so, I've got a lot more
> work because I'll have to write an HTTP/1.1 version of Gisle's LibWWW.
There were several reasons for using HTTP/1.1.
1) HTTP/1.0 is an Informational standard, and not a standards track document
within the IETF. Since we wanted WebDAV to be a standards track protocol,
we needed to build upon another standards track protocol. HTTP/1.1 is
standards track.
2) HTTP/1.1 provides persistent connections, which provide significant
performance improvements over HTTP/1.0, since a TCP connection does not need
to be created for each method. Since WebDAV clients often send bursts of
several methods, it is better for WebDAV clients to use HTTP/1.1 style
persistent connections.
3) Digest authentication was defined to work with HTTP/1.1 (although I
suspect it would also work with HTTP/1.0), and WebDAV needed to require a
better authentication mechanism than HTTP Basic authentication.
4) HTTP/1.1 requires HTTP/1.1 compliant proxies to pass through unknown
methods. HTTP/1.0 proxies have no such restriction. This allows new
methods, such as those defined in WebDAV, to be passed through proxies.
5) The Host header, required for HTTP/1.1 clients, allows servers to manage
multiple DNS hosts at the same time.
Which of these features do you need to implement to be compliant?
- you must ensure the Host header is sent with every method
- you must implement Digest authentication
- you must support persistent connections
There may be other features too (these are just the most important ones that
I can remember off the top of my head).
- Jim