詞語解釋
“DAV”是一種網(wǎng)絡協(xié)議,它允許客戶端和服務器之間進行文件的讀寫操作。它的全稱是“Distributed Authoring and Versioning”,即分布式編輯和版本控制。 DAV是一種基于HTTP的網(wǎng)絡協(xié)議,它允許客戶端和服務器之間進行文件的讀寫操作。它的主要功能是支持客戶端和服務器之間的文件讀寫操作,它的主要目的是支持客戶端和服務器之間的文件共享和同步。 DAV的應用主要是用于文件共享和同步。它可以讓用戶從任何地方訪問和更新文件,而不必擔心文件的一致性和安全性。它可以幫助用戶在多臺計算機之間同步文件,可以讓用戶在任何地方訪問和更新文件,也可以讓多個用戶共享同一份文件。 DAV還可以用于網(wǎng)絡文件系統(tǒng),它可以讓用戶在網(wǎng)絡上共享文件,而不必擔心文件的一致性和安全性。它可以讓用戶在網(wǎng)絡上創(chuàng)建和管理文件夾,也可以讓用戶在網(wǎng)絡上分享文件。 DAV還可以用于WebDAV,它是一種基于HTTP的網(wǎng)絡協(xié)議,可以讓用戶在網(wǎng)絡上共享文件,而不必擔心文件的一致性和安全性。它可以讓用戶在網(wǎng)絡上創(chuàng)建和管理文件夾,也可以讓用戶在網(wǎng)絡上分享文件。 總之,DAV是一種網(wǎng)絡協(xié)議,它可以讓客戶端和服務器之間進行文件的讀寫操作,可以讓用戶從任何地方訪問和更新文件,也可以讓多個用戶共享同一份文件,可以讓用戶在網(wǎng)絡上共享文件,而不必擔心文件的一致性和安全性。它的應用非常廣泛,可以說是網(wǎng)絡文件系統(tǒng)的基礎。 DAV( http://www.webdav.org/ ) DAV不僅被看作HTTP的擴展,甚至被看作一種網(wǎng)絡文件系統(tǒng)(network filesystem ); A final goal of DAV is to leverage the success of HTTP in being a standard access layer for a wide range of storage repositories -- HTTP gave them read access, while DAV gives them write access. 當然,它不可能想本地文件系統(tǒng)一樣隨心所欲,它支持的操作還是有限的,以下三條: 1. 支持鎖定,Client可以先Lock Server上的file,然后操作; 2. 查找、定位,即DASL協(xié)議,DAV的一個子協(xié)議; 3. 拷貝、移動、創(chuàng)建、列舉,:不知道為什么叫做Namespace manipulation; 用FrontPage、Excess等打開、編輯遠程網(wǎng)站用的就是這個協(xié)議,它使得FrontPage可以編輯、覆蓋、刪除Server上的文件。 首先看看DASL協(xié)議是如何查找Server端的文件系統(tǒng): 最新草案:http://greenbytes.de/tech/webdav/draft-reschke-webdav-search-latest.html 總原則:使用Request發(fā)送XML格式的查詢字符串(Request-URI),得到Response,包含查詢結果(也是XML格式); Request-URL語法的一般形式: /container1/ infinity 10000 對于DAV:SELECT 和 DAV:PROP的解釋在 http://www.ietf.org/rfc/rfc2518.txt 下面是獲取url下所有目錄、文件信息的C#代碼,目的就是組合一個 HTTP頭+Request-URL: // url指定Server端的檢索目錄,我認為也可以通過Request-URL的DAV:where部分來定: HttpWebRequest Request = (HttpWebRequest)HttpWebRequest.Create(url); Request.Headers.Add("Translate: f"); Request.Credentials = CredentialCache.DefaultCredentials; string requestString = ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""; MessageBox.Show(requestString.ToString());// 只是顯示一下Request-URL Request.Method = "PROPFIND"; // 有 GET 、POST、PROPFIND..... if (deep == true) // 設定服務器上的檢索深度 Request.Headers.Add("Depth: infinity"); else Request.Headers.Add("Depth: 1"); Request.ContentLength = requestString.Length; Request.ContentType = "text/xml"; Stream requestStream = Request.GetRequestStream(); requestStream.Write(Encoding.ASCII.GetBytes(requestString),0,Encoding.ASCII.GetBytes(requestString).Length); requestStream.Close(); HttpWebResponse Response; StreamReader respStream; try { Response = (HttpWebResponse)Request.GetResponse(); respStream = new StreamReader(Response.GetResponseStream()); } catch (WebException e) { ..... }
DAV( http://www.webdav.org/ ) DAV不僅被看作HTTP的擴展,甚至被看作一種網(wǎng)絡文件系統(tǒng)(network filesystem ); A final goal of DAV is to leverage the success of HTTP in being a standard access layer for a wide range of storage repositories -- HTTP gave them read access, while DAV gives them write access. 當然,它不可能想本地文件系統(tǒng)一樣隨心所欲,它支持的操作還是有限的,以下三條: 1. 支持鎖定,Client可以先Lock Server上的file,然后操作; 2. 查找、定位,即DASL協(xié)議,DAV的一個子協(xié)議; 3. 拷貝、移動、創(chuàng)建、列舉,:不知道為什么叫做Namespace manipulation; 用FrontPage、Excess等打開、編輯遠程網(wǎng)站用的就是這個協(xié)議,它使得FrontPage可以編輯、覆蓋、刪除Server上的文件。 首先看看DASL協(xié)議是如何查找Server端的文件系統(tǒng): 最新草案:http://greenbytes.de/tech/webdav/draft-reschke-webdav-search-latest.html 總原則:使用Request發(fā)送XML格式的查詢字符串(Request-URI),得到Response,包含查詢結果(也是XML格式); Request-URL語法的一般形式: /container1/ infinity 10000 對于DAV:SELECT 和 DAV:PROP的解釋在 http://www.ietf.org/rfc/rfc2518.txt 下面是獲取url下所有目錄、文件信息的C#代碼,目的就是組合一個 HTTP頭+Request-URL: // url指定Server端的檢索目錄,我認為也可以通過Request-URL的DAV:where部分來定: HttpWebRequest Request = (HttpWebRequest)HttpWebRequest.Create(url); Request.Headers.Add("Translate: f"); Request.Credentials = CredentialCache.DefaultCredentials; string requestString = ""+ ""+ ""+ ""+ ""+ ""+ ""+ ""; MessageBox.Show(requestString.ToString());// 只是顯示一下Request-URL Request.Method = "PROPFIND"; // 有 GET 、POST、PROPFIND..... if (deep == true) // 設定服務器上的檢索深度 Request.Headers.Add("Depth: infinity"); else Request.Headers.Add("Depth: 1"); Request.ContentLength = requestString.Length; Request.ContentType = "text/xml"; Stream requestStream = Request.GetRequestStream(); requestStream.Write(Encoding.ASCII.GetBytes(requestString),0,Encoding.ASCII.GetBytes(requestString).Length); requestStream.Close(); HttpWebResponse Response; StreamReader respStream; try { Response = (HttpWebResponse)Request.GetResponse(); respStream = new StreamReader(Response.GetResponseStream()); } catch (WebException e) { ..... }
抱歉,此頁面的內容受版權保護,復制需扣除次數(shù),次數(shù)不足時需付費購買。
如需下載請點擊:點擊此處下載
掃碼付費即可復制
antenna-Folded Dipole | antenna-Flattop | antenna-Ferrite | antenna-Dummy | antenna-Directional | antenna-Dipole | antenna-Corner | antenna-Coaxial | antenna-Cassegrain | antenna-Broadband | antenna-Artificial | antenna-Aperiodic |
移動通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團隊博客 | 免責聲明 | 關于詞典 | 幫助