Zaklínadlo jménem WebDAV
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
- www.webdav.org (hlavní stránky projektu WebDAVu)
- www.webdav.org/mod_dav (modul mod_dav pro Apache)
- rfc-2518.rfc-index.com (RFC 2518 – WebDAV)
- rfc-2616.rfc-index.com (RFC 2616 – HTTP 1.1)
- software.formiginal.com/webdav (další materiály týkající se WebDAVu)
- Slabikář XML
- Požadavky protokolu HTTP a jejich zpracování v PHP
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Vlastní web pomocí AI už může vytvořit opravdu každý
8. srpna 2024 -
Proč investovat do nejvýkonnějších VPS s AMD EPYC procesory
14. června 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024