Sous le capot: WebDAV, un protocole de partage et de traitement collaboratif de fichiers

Lorsqu’on parle de fichiers distants, l’idée qui en découle naturellement pour tout habitué du web, est qu’il faut avant tout les télécharger, puis les traiter avant de les soumettre à nouveau au serveur, via le processus inverse de chargement. Dans le cadre d’un travail collaboratif, cette approche peut s’avérer lourde et chronophage, surtout si le nombre de fichiers est aussi important que le nombre de collaborateurs. C’est notamment dans ce genre de cas que le protocole WebDAV montre toute son importance. Protocole de « Web-based Distributed Authoring and Versioning » en anglais, que l’on peut traduire en français par « création et versionnage distribués sur le Web », il renvoie à un ensemble de règles et de normes qui régissent la manière dont les données sont partagées, modifiées, copiées, déplacées et bien plus encore, entre différents ordinateurs sur un réseau informatique, interagissant avec un serveur de fichiers central, capable de leur servir son contenu comme s’il se trouvait directement, chacun en ce qui le concerne, sur son disque dur local. Pour mieux saisir ces contours et avoir la maîtrise des spécificités de WebDAV, il faudrait explorer le contexte dans lequel il a été créé, démystifier son fonctionnement et se faire une idée plus concrète avec ses champs d’application.

Contexte de création

L’ensemble de règles et de normes qui permettent la communication entre plusieurs machines au sein d’un réseau informatique est appelé protocole. WebDAV est donc un protocole au regard de la définition que nous avons en introduction de ce billet. Entre autres protocole permettant de régir les communications entre équipements informatiques, le commun des mortels est particulièrement familier à HTTP ou dans sa version sécurisée HTTPS. Mais nous pouvons aussi citer SMTP qui intervient dans la messagerie électronique aux côtés de POP ou alternativement IMAP, permettant d’envoyer et de recevoir des emails.

Le rôle spécifique de WebDAV lui, réside dans le traitement des fichiers partagés. Ce dernier mot vaut tout son pesant d’or dans la mesure où, le fichier sur lequel on souhaite effectuer des opérations de copie vers un autre répertoire, de modification, de suppression, de mise à jour ou toute autre opération, ne se trouve pas sur le disque dur de l’ordinateur utilisé pour ce faire, il se trouve sur un serveur généralement accessible sur internet. Et justement, l’histoire de WebDAV est particulièrement liée à celle d’internet ou du web.

Au début du web, il n’était possible que de lire du contenu « hypertexte ». Ce type de contenu est formaté suivant des normes et transmis via le réseau internet selon des règles qui permettent à un serveur web de l’envoyer à un client, qui saura l’afficher à l’utilisateur sous forme de page web. D’où le protocole HTTP (en : Hypertext Transfer Protocol, fr : Protocole de transfert hypertexte). Mais face à un tel usage, le potentiel d’internet s’en trouvait encore limité. C’est du moins l’inspiration qu’ont eu certains précurseurs réunis au sein de 03 groupes de travail mis sur pied par l’IETF (en : Internet Engineering Task Force, fr : Groupe de travail sur l’ingénierie Internet), le principal organisme de normalisation de l’Internet. Ces groupes de travail ont été créés par Jim Whitehead, en 1996 après avoir rencontré Sir Tim Berners Lee, l’inventeur du Web.

Le protocole WedDAV sera donc créé sur la base du protocole HTTP, plus spécifiquement la version 1.1 de ce dernier. Dans certaines littératures, il est présenté comme une extension du protocole HTTP.

Spécifications et fonctionnement

Les spécifications de WebDAV ont été définies en 1999 dans un document technique appelé RFC (en : Request for Comments, fr : Demande de commentaires) 2518. Elles seront par la suite mises à jour dans un autre qu’est la RFC 4918. La RFC du protocole WebDAV définit les différentes méthodes et requêtes permettant l’organisation et la gestion des fichiers partagés. On y retrouve les suivantes:

  • PROPFIND : récupère les propriétés définies pour une ressource, qui peut être un fichier ou un répertoire, identifiable par une URI (en : « Uniform Resource Identifier », fr : « Identifiant de Ressource Uniforme ») ;
  • PROPPATCH : met à jour ou modifie les propriétés d’une ressource ;
  • COPY : copie des fichiers et des répertoires ;
  • MOVE : déplace des fichiers ou des répertoires ;
  • MKCOL : créé des collections de ressources ;
  • DELETE : supprime une ressource ;
  • LOCK : vérouillle une ressource, le plus souvent lorsqu’un autre utilisateur modifie un fichier, ce qui permet d’éviter des « collisions » ;
  • UNLOCK : libère un fichier précédemment vérouillé.
Figure illustrant une session de communication entre un client et un serveur utilisant le protocole WebDAV, source: https://easy-software.com/en/glossary/webdav-protocol/

Pour tirer parti de ces méthodes, le client et le serveur doivent tous deux prendre en charge WebDAV.

Champs d’application

Aucun logiciel intermédiaire n’est nécessaire pour mettre en œuvre les méthodes sus-évoquées. C’est ainsi, qu’il sera possible pour les applications suivantes, d’agir soit côté serveur mettant à disposition les fichiers pour traitement, soit côté client, effectuant des traitements sur les fichiers en exécutant les méthodes prises en charge par le protocole WebDAV au moyen de requêtes :

  • Côté serveurs nous pouvons avoir :
    • Des serveur web proposant des modules WebDAV : Apache, Microsofts IIS, NGINX, Lighttpd, Caddy, …
    • Des bibliothèques et bases de données permettant de gérer des ressources issues de sources de données en se servant du protocole WebDAV. Parmi elles nous pouvons citer : Milton, une bibliothèque WebDAV opensource côté serveur basée sur Java ; la base de données extensible XDB (eXtensible DataBase) publiée en opensource par le centre de recherche Ames de la NASA, …
    • Certaines applications collaboratives spécifiques dont P300 qui est un outil gratuit de partage de fichiers pour les réseaux privés et les VPN, prenant en charge WebDAV.
    • Certaines applications et protocoles calendaires utilisés côté serveur parmi lesquels Google Agenda qui de façon officielle, prend désormais en charge CalDAV qui lui même est basé sur WebDAV ; le serveur de calendrier partagé open source Zimbra pour Linux et Mac prend également en charge CalDAV ; …
    • Des solutions de stockage cloud permettent de se servir du protocole WebDAV dont OwnCloud, Nextcloud, etc.
  • Côté client nous pouvons avoir :
    • Les explorateurs de fichiers sous différents systèmes d’exploitation au premier rang desquels Windows Explorer qu’on ne présente plus. Peuvent également être cités : Dophin utilisé dans l’environnement Linux KDE Plasma ; Nemo, gestionnaire de fichiers officiel du bureau Cinnamon, un environnement de bureau Linux ; Finder sous Mac OS X ; …
    • Certaines applications et protocoles calendaires côté client utilisant CalDAV, basé sur WebDAV et utilisé pour synchroniser et gérer les données de calendrier (événements, rendez-vous, rappels, etc.), avec des serveurs distants supportant le même protocole ;
    • Plusieurs applications spécifiques dont DAV-E, un client WebDAV pour iPhone, permettant la téléchargement et la navigation distante de photos prises avec ce type de smartphone ; Git, un système de contrôle de version distribué, très utilisé dans le monde de la programmation ou par les développeurs, prend en charge mais de façon optionnelle, le protocole WebDAV ; Instaviz, une application de dessin de graphiques pour iPhone permettant de stocker les graphiques créés sur un serveur WebDAV distant ; VoodooPad, logiciel d’édition de documents et de prise de notes personnelles prend désormais en charge WebDAV dans sa version 4.0 ; …
Exemple de connexion à un serveur WebDAV depuis un explorateur de fichier sous Linux, source: https://www.jscape.com/blog/what-is-webdav

Nous noterons au passage que WebDAV utilise le port 80 ou 443, communément exploités par les protocoles HTTP et HTTPS.

De sa conception à sa mise en œuvre, le protocole WebDAV s’avère particulièrement pratique pour aller au-delà des usages basiques d’internet. Plusieurs applications enrichissantes peuvent donc y reposer, pour davantage de fonctionnalités et un usage collaboratif toujours plus poussé. Avec ce protocole, la frontière entre son ordinateur et des fichiers stockés sur des serveurs distants, devient comme nulle pour une expérience utilisateur toujours plus grande. Qui plus est, les perspectives en termes de stockage, de synchronisation et de flexibilité dans la gestion des fichiers, s’en trouvent toujours plus approfondies. Néanmoins, certaines similarités ne sauraient être perdues de vue à l’instar de FTP, SSH, SSHFS et bien d’autres, chacune présentant des atouts bien particuliers.

Références: