| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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:
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
- 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