WebDAV (Web Distributed Authoring and Versioning) is an extension to the HTTP protocol enabling file management on remote servers. In addition to the usual file system-like operations (copy, move, delete, etc) WebDAV adds a flexible property mechanism (based on name/value pairs) and resource locking. WebDAV is a critical component in Microsoft's web publishing story, used by Web Folders, the HTTP redirector, SMS, and many other components.
IIS 7 will have a new "clean sheet" WebDAV implementation.
"But", you ask, "why rewrite WebDAV? Didn't IIS versions 5, 5.5, and 6 include a WebDAV ISAPI? Doesn't IIS 7 support ISAPI? Why can't you just run the old WebDAV ISAPI under IIS 7?"
Good questions. There are several reasons for creating a new WebDAV implementation:
- Compatibility - The old WebDAV was not a "normal" ISAPI - the core server contained special hooks and knowledge of the WebDAV ISAPI. The IIS 7 native module interface is sufficiently rich that these hacks are unnecessary.
- Performance - The old WebDAV shared a lot of code with the Microsoft Exchange WebDAV module. This design included an abstraction layer between the WebDAV protocol and the native file system. The new implementation will support the native file system only -- it will be lean, mean, and fast.
- Configuration/Administration - The old WebDAV "overloaded" a number of IIS configuration settings. For example, the standard IIS "directory browsing" setting also controlled directory access via the WebDAV PROPFIND verb. This is a problem for some site administrators who would like to enable PROPFIND access without enabling directory browsing. The new implementation will leverage IIS 7's extensible configuration schema and extensible administration tool to decouple these settings and provide more fine-grained control over WebDAV behavior.
- New OS Goodies - There are number of new OS features in Vista and Longhorn that can be used to great benefit. For example, the new implementation will use Transactional NTFS to ensure multi-file operations either complete atomically, or not at all.
- RFC 2518 Compliance - The old WebDAV was reasonably RFC compliant, but there are a few "holes" and corner cases that should be addressed.
We have a small team focused on WebDAV. I will be in charge of development, Robert McMurray is the Program Manager, and Marchel Cohn (no blog yet, hint hint) is in charge of testing.
Comments