Zaklínadlo jménem WebDAV

5. května 2003

V posledních dvou letech se stalo módou nových a dokonalejších verzí populárních programů podporovat WebDAV. V následujících článcích se pokusím přiblížit „pozadí“ fungování této velmi zajímavé technologie. Zaměřím se hlavně na to, jakým způsobem spolu server a klient komunikují, jaké lze používat příkazy a jaké existují možnosti využití.

Předpokládám, že čtenář je seznámen s principy fungování protokolu HTTP a chápe základy XML (hlavně jmenné prostory). Na konci textu najdete odkazy na články, které vám tato témata připomenou. Abychom neztráceli čas, začneme hned zostra…

Komunikace

Nejdříve si ukážeme příklad komunikace klienta s WebDAV serverem. Člověk znalý XML a protokolu HTTP si může oddychnout, nic nového pod sluncem. Pro nás ostatní trocha vysvětlení. Uživatel (klient) zašle prostřednictvím protokolu HTTP příkaz (slovo PROPPATCH), který je dále specifikován v následném XML dokumentu. Server zpracuje dotaz a výsledek opět zašle ve formátu XML. Prozatím necháme význam jednotlivých klíčových slov stranou. Po přečtení některého z následujících dílů vám bude zde uvedený příklad jasný.

Teorie

WebDAV (World Wide Web Distributed Authoring and Versioning) je standardem IETF (Internet Engeneering Task Force) pro vzdálenou správu souborů, který je specifikován v dokumentu RFC 2518 z roku 1999. Dle tohoto dokumentu je WebDAV „rozšířením exitujícího protokolu HTTP/1.1, které umožňuje provádět vzdálenou správu souborů uložených na webových serverech“.

WebDAV spojuje dvě již propracované technologie: HTTP (Hypertext Transfer Protocol) a XML (Extensible Markup Language). Protokol HTTP je používán pro zajištění způsobu komunikace. Kromě standardních příkazů využívaných v rámci protokolu HTTP (GET, COPY, OPTIONS…) zavádí WebDAV pro své potřeby některé nové. XML naopak WebDAV využívá jako nositele strukturovaných informací, které upřesňují jak dotaz klienta, tak i výsledek zasílaný serverem. V XML části komunikace jsou odesílány výsledky zpracování příkazů pro jednotlivé soubory, informace o souborech a adresářích a podobně. V hlavním DTD (Definice Typu Dokumentu) pojmenovaném DAV: jsou definovány všechny potřebné elementy a atributy nutné pro základní použití WebDAVu.

Pojďme se na chvíli vrátit k předešlému příkladu. Bude nás zajímat následující řádka:

<D:multistatus xmlns:D=“DAV:“ xmlns:Z=“http://www.muj-webdav.cz/standards/dtd-one“>

Kromě standardní definice typu dokumentu WebDAVu, používá klient vlastní DTD (http://www.muj-webdav.cz/standards/dtd-one), ve kterém si definuje vlastní elementy, které mají být použity. V našem případě se jedná o elementy authors, Author a Copyright-Owner. Jmenné prostory nám dávají do rukou velmi silný nástroj, jak upravit informace poskytované WebDAVem tak, aby přesně odpovídaly našim požadavkům.

Funkce

Jaké funkce nám dává WebDAV k dispozici? Především se jedná o základní operace se soubory (kopírování, přesunutí, mazání) a adresáři. Rád bych na tomto místě upozornil, že WebDAV chápe adresáře trochu jinak, než jak je známe z běžné práce na lokálním počítači. Bližší definici adresářů (WebDAV je nazývá kolekce) najdete níže. WebDAV dále umožňuje připojovat k jednotlivým souborům a adresářům informace (vlastnosti), které můžeme později číst, upravovat nebo mazat. Při ukládání vlastností není uživatel omezen jen standardními vlastnostmi WebDAVu. Proč si například se soubory nespojit informaci o tom, jaké bylo v době vytvoření souboru počasí? Využitím těchto funkcí může uživatel spravovat své internetové prezentace bez nutnosti instalace protokolu FTP.

WebDAV přináší do protokolu HTTP a do využití webových serverů vůbec řadu novinek. První z nich jsou zámky. Základním principem zámku je uzamčení souboru proti manipulaci, čímž uživatel zabrání nechtěné změně dokumentu. WebDAV rozeznává dva typy zámků: Exclusive Lock (individuální) a Shared Lock (společný). Exclusive Lock odpovídá asi nejrozšířenější podobě zámku, kdy majitelem zámku je jen jeden uživatel. Shared Lock naopak umožňuje manipulovat se zdrojem většímu počtu uživatelů, přičemž je možné kombinovat oba dva typy zámků. (Rád bych upozornil, že server kompatibilní se specifikací WebDAV nemusí zámky podporovat. A pokud už je podporuje, nemusí nutně podporovat oba typy zámků. Pro používání zámků je tedy nutné důkladně prostudovat dokumentaci k používanému serveru.)

Nyní se krátce zastavíme u kolekcí. WebDAV zavádí nový pojem kolekce, který je definován jako „zdroj, který se skládá ze seznamu interních členů a souboru vlastností“. Hlavním rozdílem mezi adresáři a kolekcemi je v tom, že kolekce jsou určeny pomocí URI, nikoli umístěním na pevném disku serveru. Může tedy nastat situace, kdy adresář specifikovaný adresou www.muj-web.cz/webdav/files je fyzicky umístěn na jiném počítači než adresář www.muj-web.cz/webdav/documents. Z pohledu WebDAVu se však stále jedná o tutéž kolekci danou adresou www.muj-web.cz/webdav. Pojmy kolekce a adresář budeme od teď důsledně oddělovat.

Jak už jsem se zmínil dříve, jsou k souborům připojovány vlastnosti. Jednou z vlastností, kterou může uživatel využít, jsou odkazy mezi soubory (Media Independent Links). WebDAV neomezuje ani počet odkazů, ani typ souborů, které odkazy spojují. Použitím odkazů mezi soubory lze výrazně zjednodušit správu a vývoj rozsáhlejších projektů.

Úroveň kompatibility

Server podporující možnosti WebDAVu si může vybrat jednu ze dvou úrovní kompatibility, kterou bude podporovat. První úroveň je zaměřena na základní operace bez podpory zámků. Druhá úroveň zajišťuje maximální kompatibilitu se specifikací. Úroveň kompatibility lze vyčíst z hodnoty hlavičky DAV, kterou získáme po odeslání HTTP příkazu OPTIONS.

Podpora ze strany serverů

V současné době podporují WebDAV všechny významné webové servery, například Internet Information Server (od verze 5.0), Apache, Apache Tomcat, PyDAV (implementace v jazyku Python), Jigsaw a další. Většina serverů podporuje širší (druhou) úroveň kompatibility, takže můžete po nainstalování využívat všech možností WebDAVu.

Odkazy, zdroje

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Předchozí článek Popup okno ještě trochu jinak 2.
Další článek yamaha
Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *