viernes, diciembre 27, 2013

Una explicación de andar por casa de WebDAV

En mi anterior entrada hablada de una forma de tener los ficheros de claves de aplicaciones tipo keepass disponibles en internet para que fueran accesibles desde diferentes ubicaciones, permitiendo la posibilidad de realizar actualizaciones a las mismas desde cualquier sitio. Para poder hacer esto había recurrido a WebDAV, pero muchos de nosotros nos preguntaremos por ese desconocido.

De forma breve se puede decir que WebDAV no es más que el intento de establecer que la world wide web que conocemos disponga de la posibilidad de poder realizar modificaciones sobre los documentos publicados en la web. En realidad WebDAV son dos cosas, por un lado es un grupo de trabajo para definir el estándar que permita la funcionalidad descrita y por otro lado es un protocolo, surgido de ese grupo de trabajo, que lo define mediante una RFC de internet.

Lo que hace WebDAV es añadir varios métodos a los que define el estándar HTTP, que es el que se emplea en la comunicación entre los navegadores webs y los servidores webs. Típicamente, los métodos HTTP son GET, POST, PUT, CONNECT, HEAD (y algunos más) que nos permiten solicitar una página, enviar los datos de un formulario, subir un archivo, conectarnos al servidor y mandar las cabeceras (la información por ejemplo de las cookies se envía en el HEAD). Como vemos, aquí no hay nada que sirva para modificar el contenido de una página web (explícitamente, claro). El protocolo HTTP no lo permite.

En este punto es donde interviene WebDAV, proporcionando algunos métodos adicionales como COPY, MOVE, LOCK, UNLOCK, PROPFIND, PROPPATCH y MKCOL al protocolo HTTP para permitir copiar un recurso, moverlo de una ubicación a otra, bloquearlo/desbloquearlo, buscar propiedades, modificar propiedades, crear directorios (colecciones).

Como curiosidad sobre WebDAV, los sistemas de control de versiones como Subversion o Git lo utilizan internamente (clientes y servidor) cuando se accede al repositorio mediante HTTP. Es decir, ellos no han inventado la rueda para realizar las modificaciones sobre el servidor web que publica el contenido de sus repositorios, han utilizado el protocolo WebDAV implementando el cliente para comunicarse con un servidor HTTP como Apache, que dispone de la funcionalidad WebDAV activada (mediante los modulos dav y dav_fs para proporcionar la infraestructura necesaria).

También sistemas operativos permiten montar un recurso remoto del servidor web que dispone de la funcionalidad WebDAV como si fuera un directorio local, dejándonos modificar a nuestro gusto los contenidos que allí encontremos. O navegadores web que disponen de un cliente WebDAV (mediante plugins que se instala en el navegador) que ofrece la posibilidad de modificar al vuelo el contenido del servidor web sin recurrir a aplicaciones de terceros.

Esto también tiene una implicación interesante, al ser WebDAV un añadido al HTTP, podemos agregarle la capa de seguridad SSL para disponer de WebDAVS simplemente ofreciendo el contenido mediante el HTTPS, sin cambiar para nada el protocolo WebDAV.

De todas formas, las entradas de la wikipedia son mucho más amplias.

No hay comentarios:

Publicar un comentario