[From trunk/notes/http-protocol-v2.txt]
GOAL
====
Write a new HTTP protocol for svn -- one which has no pretense of
adhering to some pre-existing standard, and which is designed for
speed and comprehensibility. This ain't your Daddy's WebDAV.
PURPOSE / HISTORY
=================
Subversion standardized on Apache and the WebDAV/DeltaV protocol as a
back in the earliest days of development, based on some very strong
value propositions:
A. Able to go through corporate firewalls
B. Zillions of authn/authz options via Apache
C. Standardized encryption (SSL)
D. Excellent logging
E. Built-in repository browsing
F. Caching within intermediate proxies
G. Interoperability with other WebDAV clients
Unfortunately, DeltaV is an insanely complex and inefficient protocol,
and doesn't fit Subversion's model well at all. The result is that
Subversion speaks a "limited portion" of DeltaV, and pays a huge
performance price for this complexity.
REQUIREMENTS
============
Write a new HTTP protocol for svn ("HTTP v2"). Map RA requests
directly to HTTP requests.
* svn over HTTP should be much faster (eliminate extra turnarounds)
* svn over HTTP should be almost as easy to extend as svnserve.
* svn over HTTP should be comprehensible to devs and users both
(require no knowledge of DeltaV concepts).
* svn over HTTP should be designed for optimum cacheability by web
proxies.
* svn over HTTP should make use of pipelined and parallel requests
when possible.