webdav 概览
webdav 概览
WebDav(Web Distributed Authoring and Versioning) 是一个控制远端Web资源的协议,它基于HTTP1.1。它的定义在RFC 4918(https://tools.ietf.org/html/rfc4918)。这个协议的场景可以是分布式协同办公,也可以是一个文件存储服务器。WebDav的语义是基于XML的。微软的sharepoint,Dropbox, iCloud,offic365等都使用了这个协议。
webdav支持哪些方法?
首先必然支持普通的HTTP1.1的一些方法:
- GET
- POST
- PUT
- DELETE
- PROPFIND
- PROPPATCH
- MKCOL
- COPY
- MOVE
- LOCK
- UNLOCK
PROPFIND 和 GET
PROPFIND 是查找资源的信息,并不包括资源的内容。而 GET 方法是直接返回资源的具体内容。在PROPFIND中,你可以指定返回资源的哪些属性信息,也可以返回资源的所有属性信息(allprop)。
PROPPATCH
对资源的某个或者某些属性进行操作,这个操作可以是增加,删除,修改等。
MKCOL
就是创建Collection,Collection的意思就是文件夹,它对应一个URI路径。这个命令创建的Collection如果事先存在,或者前置的路径不存在,都会报错。
POST
POST方法的实际作用在Webdav的协议中没有做强制定义,一般都是由具体的应用场景的Server进行定义的。
DELETE
DELETE 就是删除操作,它可以删除资源,也可以删除一个Collection。但是删除资源的时候,要求被删除的资源不能有锁。
如果是删除一个Collection,要求这个Collection。
LOCK 和 UNLOCK
对一个已经存在的资源加锁或者解锁操作。
COPY
COPY复制一个文件到目标文件夹,目标文件夹必须存在
PUT
PUT是用来更新服务器上的一个文件的,它不能作用于文件夹。
搭建nginx服务支持webdav
使用nginx就能很简单搭建一个支持webdav的文件服务,但是这个webdav只支持几个方法:PUT,DELETE,MKCOL,COPY,MOVE。基于这几个操作,你可以很方便操作这个文件服务器。但是需要使用PROPFIND等命令,你就需要加上nginx-dav-ext-module这个模块,只有支持了PROFIND命令,mac的finder才能打开webdav服务文件。
nginx-dav-ext-module里面还有一个OPTIONS方法,这个是HTTP1.1的方法,服务端返回它支持的方法。
webdav 概览的更多相关文章
- Activity之概览屏幕(Overview Screen)
概览屏幕 概览屏幕(也称为最新动态屏幕.最近任务列表或最近使用的应用)是一个系统级别 UI,其中列出了最近访问过的 Activity 和任务. 用户可以浏览该列表并选择要恢复的任务,也可以通过滑动清除 ...
- Atitit 软件工程概览attilax总结
Atitit 软件工程概览attilax总结 1.1. .2 软件工程的发展 进一步地,结合人类发展史和计算机世界演化史来考察软件工程的发展史. 表2 软件工程过程模型 表2将软件工程的主要过程模型做 ...
- webdav不识别软链接?解决办法?
webdav不识别软链接?解决办法? 在使用webdav实现公网存储共享的时候,发现webdav并不支持软链接的共享,如下源代码可以100%确定这个问题 /* ### for now, only pr ...
- iOS开发系列—Objective-C之基础概览
概览 前面我们已经用了几章内容进行C语言介绍,当然要通过几篇文章完整的介绍C语言的知识是不太现实的,例如C语言的文件操作.内存申请等我们都没有重点介绍,当然核心知识点基本都已经提到了,后面有时间我们会 ...
- iOS开发系列--IOS程序开发概览
概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...
- Azure SQL Database (19) Stretch Database 概览
<Windows Azure Platform 系列文章目录> Azure SQL Database (19) Stretch Database 概览 Azure SQL Da ...
- Web前端开发大系概览 (前端开发技术栈)
前言 互联网建立50多年了,网站开发技术日新月异,但web前端始终离不开浏览器,最终还是HTML+JavaScript+CSS这3个核心,围绕这3个核心而开发出来大量技术框架/解决方案. 我从2000 ...
- Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx
Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx 1. 摘要算法的大概流程2 2. 旧约圣经 (39卷)2 2.1. 与古兰经的对 ...
- 【WPF系列】基础学习-WPF架构概览
引言 WPF从.net framewok3.0加入以来,经历了很多跟新.每次更新都给用户带来了新的功能或者优化性能.下面我们首先看下WPF再.netFramework中的位置,接着介绍下WPF的架构框 ...
随机推荐
- Anconda 3.7安装以及使用详细教程
Anconda 3.7安装以及使用详细教程 2019-04-17 22:42:03 一.下载anconda 3.7 链接地址:官方地址 二.安装 双击下载好的Anaconda3-2019.03- ...
- maya cmds pymel 'ESC' 退出 while, for 循环
maya cmds pymel 'ESC' 退出 while, for 循环 import maya.cmds as cmds cmds.progressWindow(isInterruptable= ...
- 【ORM框架】Spring Data JPA(一)-- 入门
本文参考:spring Data JPA入门 [原创]纯干货,Spring-data-jpa详解,全方位介绍 Spring Data JPA系列教程--入门 一.Spring Data JPA介 ...
- python 获取mac地址zz
通过python获取当前mac地址的方法如下:(1)通用方法,借助uuid模块def get_mac_address(): import uuid node = uuid.getnode() ...
- C# 去除\0
在做项目的时候遇到了这种情况,如图 这个字符串包含了好多的\0,等你放大查看的时候又什么都不显示,十分惹人烦,哈哈 网上有的解决办法说 tmpStr.TrimEnd("\0");但 ...
- 针对 jQuery Gridly 控件显示多少列的问题。
针对 jQuery Gridly 控件显示多少列的问题,完全根据 columns 的值来显示. 但是显示columns,并不是给多少值显示几列.到目前还是很模糊的.官方文档没有给出具体的一个解释. $ ...
- thrift小试--C++
[转自]http://blog.csdn.net/poechant/article/details/6618284# Thrift可以实现C++.Java.Python等多种语言的自动生成,此处以C+ ...
- JS for循环 if判断、white循环。小练习
1----输入正整数n,求1-n的和. var n=prompt("请输入一个正整数"); var sum=0; for (var i=1;i<=n;i++) { sum=s ...
- 【类与对象】--------java基础学习第六天
类与对象 1. 对于面向对象的开发来讲也分为三个过程: OOA(面向对象分析) OOD(面向对象设计) OOP(面向对象编程) 2. 面向对象的基本特征 2.1. 封装:保护内部操作(属性,方法)不被 ...
- 201771010126 王燕《面向对象程序设计(Java)》第十二周学习总结
实验十二 图形程序设计 实验时间 2018-11-14 1.实验目的与要求 (1) 掌握Java GUI中框架创建及属性设置中常用类的API: 创建空框架 . 在Java中,常采用框架(Frame) ...