Getting Started with IT Hit WebDAV Server Engine
This article describes various WebDAV server types and compares its characteristics.
WebDAV Server Compliance
An important WebDAV server characteristic is WebDAV server compliance. Using WebDAV Server Engine you can create Class 1, Class 2 or DeltaV server. With a Class 1 server you will be able to create files, manage file structure copying, moving and deleting items as well as create, read and delete custom properties for each file or folder. Class 2 server in addition to the features provided by Class 1 server enables files locking. Locking helps to protect files from modifications by other users while editing file or managing structure. With DeltaV server you can check-out / check-in items and track item versions.
Various WebDAV clients require different class of server compliance. For instance some clients like MS Office applications always lock files before modifications while others like KDE Konqueror does not. The table below lists minimum server requirements for some widely spread WebDAV clients:
| WebDAV Client |
WebDAV Server Requirements |
| Web Folders on Windows Vista |
Class 2 |
| Web Folders on Windows XP/2003/2000 |
Class 1 |
| MS Office 2007/2003/XP |
Class 2 |
| Max OS X |
Class 2 |
| KDE Konqueror |
Class 1 |
| GNOME Nautilus |
Class 1 |
| NetDrive |
Class 1 |
| DAVExplorer |
Class 1 |
| Notepad on Windows Vista |
Class 2 |
| Notepad on Windows XP/2003/2000 |
Class 1 |
Class 1 server implementation is usually simple and straightforward. Class 2 may require some additional affords for implementing locking interfaces and protecting items. The two articles below describe how create each type of server:
Creating Class 1 WebDAV Server Creating Class 2 WebDAV Server
Creating DeltaV WebDAV Server
As a starting point of your WebDAV server project you can use sample applications provided with IT Hit WebDAV Server engine. See the samples descriptions and how to setup them here: WebDAV Server Samples. The sample applications could be also useful for various servers’ features evaluation, testing WebDAV clients’ compliance and performance testing.
Hosting Environment
Another important question is to decide where to host your server. IT Hit WebDAV Server Engine is independent of hosting environment. Usually you can create your server based on ASP.NET HttpHandler and host it in IIS or you can create HttpLisener-based server. Both approaches have its advantages and disadvantages. The table below provides the comparison of these two types of servers:
|
HttpListener-based |
IIS / HttpHandler-based |
| .Net Framework |
2.0 or later |
2.0 or later |
| IIS |
Not required |
IIS 5.1/6.0/7.0 required |
| Maximum upload file size |
Unlimited |
2Gb |
| Maximum download file size |
Unlimited |
Unlimited |
| OS |
Windows 2008 / Vista / XP / 2003 |
Windows 2008 / Vista / XP / 2003 / 2000 |
| Session / application state |
No |
Yes |
| Configuration |
Depends on implementation |
Requires wildcard configuration in IIS 5.1 / 6.0 |
| Not allowed folder names |
None |
Bin, App_Code, App_Data, App_Browsers, App_LocalResources |
| Not supported characters in item names |
+ |
% & + |
| Chunked response |
All requests |
Only GET request |
| Disk space for temporary upload folder |
Not required |
Require disk space to keep ASP.NET temporary files |
The limitation on maximum file size upload for HttpHandler-based server could be critical for many systems. IIS and ASP.NET does not allow upload file larger than 2Gb. It also requires disk space to keep temporary files uploaded to server. To avoid common pitfalls with large files upload and download see Uploading and Downloading Large Files to WebDAV server. HttpListener does not have limitations on file size but may require more complicated SSL and security account configuration.
While HttpListener-based server is usually created as an exe or Windows Service and could be started either directly or via Services MMC, server created as HttpHandler will require some IIS configuration. The articles below describe steps specific to creating HttpHandler and configuring IIS:
Creating WebDAV HttpHandler Configuring WebDAV Server in IIS
Performance
The performance of your WebDAV server depends greatly on the storage type used. Usually storing files in file system provides better performance than storing files in a database. Below you can see the performance comparison of SqlStorage and FileSystemListenerService samples that run on Pentium IV 1.8Gz:
|
WebDAV HTTP Method |
Files stored in database requests/sec |
Files stored in file system requests/sec |
| GET |
64 |
146 |
| HEAD |
78 |
285 |
| MKCOL |
37 |
176 |
| OPTIONS |
149 |
333 |
| PROPFIND, Depth 0 |
62 |
298 |
| PROPFIND, Depth 1 |
5 |
102 |
| PUT |
33 |
108 |
Authentication
Your WebDAV server can utilize Basic, Digest, Ntlm, Kerberos or any custom authentication schema. You can authenticate users against Windows/Active Directory or you can keep users’ credentials in any custom store. In your WebDAV server interfaces implementations you can check permissions in any method prior to executing code and decide if a user has rights for calling specific method.
Various WebDAV clients may have specific requirements for authentication. For instance most WebDAV clients do not handle Forms authentication implemented on many websites and document management systems directly. Read the article about authentication to decide how to build your authentication or integrate authentication with your existing CMS/DMS: WebDAV Server Authentication.
See AlsoSample Servers
|