netzwerke:webdav

WebDAV (Web-based Distributed Authoring and Versioning)

WebDAV (Web-based Distributed Authoring and Versioning) ist ein offener Standard zur Bereitstellung von Dateien im Internet. Dabei können Benutzer auf ihre Daten wie auf eine Online-Festplatte zugreifen.

Technisch gesehen ist WebDAV eine Erweiterung des Protokolls HTTP/1.1, die bestimmte Einschränkungen von HTTP aufhebt. Bisher kennt man aus Online-Formularen meist nur die Möglichkeit, einzelne Dateien hochzuladen (HTTP-POST). Mit WebDAV können ganze Verzeichnisse übertragen werden. Zudem ist eine Versionskontrolle spezifiziert.

Quelle: Wikipedia

normale Benutzer sollen webdav ohne root-Rechte mounten dürfen (nur Debian/Ubuntu):

sudo dpkg-reconfigure davfs2

in /etc/fstab:

https://SERVER/owncloud/remote.php/webdav /media/SERVER davfs user,rw,noauto 0 0
  net use <gewünschter und freier Laufwerksbuchstabe>: https://<WebDAV-Pfad>:<Port> /user:<Benutzername> <Passwort> /persistent:yes

Bei einem konkreten Beispiel (hier Strato) sieht das folgendermaßen aus:

  net use Y: https://webdav.hidrive.strato.com:443 /user:maxmuster GeheimesPasswort /persistent:yes

Das geht auch mit einer Verknüpfung auf dem Desktop.

Anbieterspezifisch

Gültig für alle:

  • Dateien werden komplett übertragen obwohl Webdav Teiluploads („Partial Write“) spezifiziert
  • Parameteraushandlung uneinheitlich (mal im Header mal im Body) jeweils als XML übertragen
  • unterschiedliche Formate für Zeitstempel
  • Unklare Spec bei Groß- und Kleinschreibung
  • Auskunft über freien Speicherplatz u.U. nicht korrekt, das liegt an Clients die den RFC 4331 1) nicht (korrekt) implementieren (z.B. zeigt der Client des Windows-Explorers lediglich den freien Platz von Laufwerk C: an)
  • Fähigkeiten des Server (Class 1 oder 2) werden meist vom Client ignoriert
  • Windows 98 bis 2000: Anzeige über Webbrowser
  • Windows XP: Einbindung ähnlich normaler Laufwerke
  • lokaler WebDAV-Cache (mit Administrator-rechten kann man die Dateien anderer Benutzer einsehen)
    • XP: C:\Dokumente und Einstellungen\LocalService\Lokale Einstellungen\TemporaryInternetFiles\Content.IE5\
    • Win7: C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp\TfsStore\Tfs_DAV

Fehlerliste

alle Windows Versionen

Windows XP

  • ab XP SP2 bis incl. Win7: no-basic-auth: Lösung: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\UseBasicAuth auf 1 setzen
  • XP: künstliche Größenbeschränkung bei der Dateigröße auf 50MB (Lösung und Beschreibung in der knowledgebase von MS)
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\FileSizeLimitInBytes auf einen höheren Wert als 50000000 (=50 MB), maximal möglich sind 4G
  • XP Probleme bei mehr als 1000 Dateien auf der Freigabe (in der Registry Erhöhung des Puffers nötig):
  • HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\FileAttributesLimitInBytes auf z. B. 1000

Den folgenden Text als Reg-Datei abspeichern und Zusammenführen:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters]
"UseBasicAuth"=dword:00000001
"FileSizeLimitInBytes"=dword:ffffffff
"FileAttributesLimitInBytes"=dword:0000c350

Windows Vista

  • ab XP SP2 bis incl. Win7: no-basic-auth
    • Lösung:
      • XP: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters auf 1 setzen
      • Vista: auf 2 setzen um auch Verbindung ohne SSL zuzulassen
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters]
"UseBasicAuth"=dword:00000002
"FileSizeLimitInBytes"=dword:ffffffff
"FileAttributesLimitInBytes"=dword:0000c350

Windows 7

  • ab XP SP2 bis incl. Win7: no-basic-auth
    • Lösung:
      • XP: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters auf 1 setzen
      • Vista: auf 2 setzen um auch Verbindung ohne SSL zuzulassen
  • Sonderzeichenkodierung (Win7 streikt bei „&“ mit Fehlermeldung „Datei zu groß“, ältere Windows-versionen kodieren es korrekt als „%26“)
  • u.U. sehr langsam, siehe KB2445570 (Lösung: bei Internetoptionen die automatische Suche der Einstellungen / Automatically detect settings abschalten)
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters]
"UseBasicAuth"=dword:00000001
"FileSizeLimitInBytes"=dword:ffffffff
"FileAttributesLimitInBytes"=dword:0000c350

Server 2003

  • spontane Reboots bei Windows Server 2003 (wenn mit „net start|stop Webclient“ gearbeitet wird)

Finder

  • stürzt u. U. ab was praktisch einen Neustart bedeutet
  • Fähigkeitenaushandlung fehlerhaft, bei Class 1 (kein file-locking) Einbindung als schreibgeschützt, bei Class 2 wird locking ignoriert

transmit

  • transmit funktioniert nicht mit allen Webserver/PHP-Modul-Kombinationen, scheint aber deutlich robuster zu sein als der Finder

Bei davfs bzw. davfs2 sind mir keine Bugs bekannt.

Anleitungen und Informationen

SSL

Apache Beispielkonfiguration Webdav

Apache-Module aktivieren (Debian):

a2enmod dav_fs dav_lock

:!: Die Konfiguration von SSL wird auf der Apache-Seite erklärt.

<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	Servername webdav.domain.tld
 
	DocumentRoot /srv/www/webdav.domain.tld
 
	<Location / >
 
	DAV On
	<LimitExcept GET HEAD OPTIONS>
        	Require valid-user 
	</LimitExcept>
 
	AuthType Basic
	AuthName "Restricted data"
	AuthUserFile /srv/www/.DAVlogin
	Require valid-user
 
	</Location>
 
	ErrorLog /var/log/apache2/webdav.domain.tld_error.log
 
	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn
 
	CustomLog /var/log/apache2/webdav.domain.tld_access.log combined
 
</VirtualHost>