Interval.cz
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.

DalÜφ zdroje



èt∞pßn Kouba (5.5. 2003)

Redakce Interval.cz |  Inzerce na Interval.cz |  Hledßme novΘ autory ISSN 1212-8651 
 ⌐ Zoner software, s.r.o., vÜechna prßva vyhrazena, tento server dodr₧uje prßvnφ p°edpisy o ochran∞ osobnφch ·daj∙.