<?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>What Is WebDAV?</title> <link rel="stylesheet" type="text/css" href="styles.css" /> <meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /> <style type="text/css"> body { background-image: url('images/draft.png'); background-repeat: no-repeat; background-position: top left; /* The following properties make the watermark "fixed" on the page. */ /* I think that's just a bit too distracting for the reader... */ /* background-attachment: fixed; */ /* background-position: center center; */ }</style> <link rel="home" href="index.html" title="Version Control with Subversion [DRAFT]" /> <link rel="up" href="svn.webdav.html" title="Appendix C. WebDAV and Autoversioning" /> <link rel="prev" href="svn.webdav.html" title="Appendix C. WebDAV and Autoversioning" /> <link rel="next" href="svn.webdav.autoversioning.html" title="Autoversioning" /> </head> <body> <div xmlns="" id="vcws-version-notice"> <p>This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit <a href="http://www.svnbook.com/">http://www.svnbook.com/</a> for stable versions of this book.</p> </div> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center">What Is WebDAV?</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="svn.webdav.html">Prev</a> </td> <th width="60%" align="center">Appendix C. WebDAV and Autoversioning</th> <td width="20%" align="right"> <a accesskey="n" href="svn.webdav.autoversioning.html">Next</a></td> </tr> </table> <hr /> </div> <div class="sect1"> <div class="titlepage"> <div> <div> <h2 class="title" style="clear: both"><a id="svn.webdav.basic"></a>What Is WebDAV?</h2> </div> </div> </div> <p> <a id="idm16838" class="indexterm"></a><em class="firstterm">DAV</em> stands for <span class="quote">“<span class="quote">Distributed Authoring and Versioning.</span>”</span> RFC 2518 defines a set of concepts and accompanying extension methods to HTTP 1.1 that make the Web a more universal read/write medium. The basic idea is that a WebDAV-compliant web server can act like a generic file server; clients can <span class="quote">“<span class="quote">mount</span>”</span> shared folders over HTTP that behave much like other network filesystems (such as NFS or SMB).</p> <p>The tragedy, though, is that despite the acronym, the RFC specification doesn't actually describe any sort of version control. Basic WebDAV clients and servers assume that only one version of each file or directory exists, and that it can be repeatedly overwritten.</p> <p>Because RFC 2518 left out versioning concepts, another committee was left with the responsibility of writing RFC 3253 a few years later. The new RFC adds versioning concepts to WebDAV, placing the <span class="quote">“<span class="quote">V</span>”</span> back in <span class="quote">“<span class="quote">DAV</span>”</span>—hence the term <span class="quote">“<span class="quote">DeltaV.</span>”</span> WebDAV/DeltaV clients and servers are often called just <span class="quote">“<span class="quote">DeltaV</span>”</span> programs, since DeltaV implies the existence of basic WebDAV.</p> <p>The original WebDAV standard has been widely successful. Every modern computer operating system has a general WebDAV client built in (details to follow), and a number of popular standalone applications are also able to speak WebDAV—Microsoft Office, Dreamweaver, and Photoshop, to name a few. On the server end, Apache HTTP Server has been able to provide WebDAV services since 1998 and is considered the de facto open source standard. Several other commercial WebDAV servers are available, including Microsoft's own IIS.</p> <p>DeltaV, unfortunately, has not been so successful. It's very difficult to find any DeltaV clients or servers. The few that do exist are relatively unknown commercial products, and thus it's very difficult to test interoperability. It's not entirely clear as to why DeltaV has remained stagnant. Some opine that the specification is just too complex. Others argue that while WebDAV's features have mass appeal (even the least technical users appreciate network file sharing), its version control features just aren't interesting or necessary for most users. Finally, some believe that DeltaV remains unpopular because there's still no open source server product that implements it well.</p> <p>When Subversion was still in its design phase, it seemed like a great idea to use Apache as a network server. It already had a module to provide WebDAV services. DeltaV was a relatively new specification. The hope was that the Subversion server module (<span class="command"><strong>mod_dav_svn</strong></span>) would eventually evolve into an open source DeltaV reference implementation. Unfortunately, DeltaV has a very specific versioning model that doesn't quite line up with Subversion's model. Some concepts were mappable; others were not.</p> <p>What does this mean, then?</p> <p>First, the Subversion client is not a fully implemented DeltaV client. It needs certain types of things from the server that DeltaV itself cannot provide, and thus is largely dependent on a number of Subversion-specific HTTP <code class="literal">REPORT</code> requests that only <span class="command"><strong>mod_dav_svn</strong></span> understands.</p> <p>Second, <span class="command"><strong>mod_dav_svn</strong></span> is not a fully realized DeltaV server. Many portions of the DeltaV specification were irrelevant to Subversion, and thus were left unimplemented.</p> <p>A long-held debate in the Subversion developer community about whether it was worthfile to remedy either of these situations eventually reached closure, with the Subversion developers officially deciding to abandon plans to fully support DeltaV. As of Subversion 1.7, Subversion clients and servers introduce numerous non-standard simplifications of the DeltaV standards<a href="#ftn.idm16860" class="footnote" id="idm16860"><sup class="footnote">[85]</sup></a>, with more customizations of this sort likely to come. Those versions of Subversion will, of course, continue to provide the same DeltaV feature support already present in older releases, but no new work will be done to increase coverage of the specification—Subversion is intentionally moving away from strict DeltaV as its primary HTTP-based protocol.</p> <div class="footnotes"> <br /> <hr style="width:100; text-align:left;margin-left: 0" /> <div id="ftn.idm16860" class="footnote"> <p><a href="#idm16860" class="para"><sup class="para">[85] </sup></a>The Subversion developers colloquially refer to this deviation from the DeltaV standard as <span class="quote">“<span class="quote">HTTPv2</span>”</span>.</p> </div> </div> </div> <div class="navfooter"> <hr /> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"><a accesskey="p" href="svn.webdav.html">Prev</a> </td> <td width="20%" align="center"> <a accesskey="u" href="svn.webdav.html">Up</a> </td> <td width="40%" align="right"> <a accesskey="n" href="svn.webdav.autoversioning.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top">Appendix C. WebDAV and Autoversioning </td> <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> <td width="40%" align="right" valign="top"> Autoversioning</td> </tr> </table> </div> <div xmlns="" id="vcws-footer"> <hr /> <img src="images/cc-by.png" style="float: right;" /> <p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.8), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.</p> <p>This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.</p> <p>To submit comments, corrections, or other contributions to the text, please visit <a href="http://www.svnbook.com/">http://www.svnbook.com/</a>.</p> </div> </body> </html>