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 概览的更多相关文章

  1. Activity之概览屏幕(Overview Screen)

    概览屏幕 概览屏幕(也称为最新动态屏幕.最近任务列表或最近使用的应用)是一个系统级别 UI,其中列出了最近访问过的 Activity 和任务. 用户可以浏览该列表并选择要恢复的任务,也可以通过滑动清除 ...

  2. Atitit 软件工程概览attilax总结

    Atitit 软件工程概览attilax总结 1.1. .2 软件工程的发展 进一步地,结合人类发展史和计算机世界演化史来考察软件工程的发展史. 表2 软件工程过程模型 表2将软件工程的主要过程模型做 ...

  3. webdav不识别软链接?解决办法?

    webdav不识别软链接?解决办法? 在使用webdav实现公网存储共享的时候,发现webdav并不支持软链接的共享,如下源代码可以100%确定这个问题 /* ### for now, only pr ...

  4. iOS开发系列—Objective-C之基础概览

    概览 前面我们已经用了几章内容进行C语言介绍,当然要通过几篇文章完整的介绍C语言的知识是不太现实的,例如C语言的文件操作.内存申请等我们都没有重点介绍,当然核心知识点基本都已经提到了,后面有时间我们会 ...

  5. iOS开发系列--IOS程序开发概览

    概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...

  6. Azure SQL Database (19) Stretch Database 概览

    <Windows Azure Platform 系列文章目录>  Azure SQL Database (19) Stretch Database 概览      Azure SQL Da ...

  7. Web前端开发大系概览 (前端开发技术栈)

    前言 互联网建立50多年了,网站开发技术日新月异,但web前端始终离不开浏览器,最终还是HTML+JavaScript+CSS这3个核心,围绕这3个核心而开发出来大量技术框架/解决方案. 我从2000 ...

  8. Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx

    Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx 1. 摘要算法的大概流程2 2. 旧约圣经 (39卷)2 2.1. 与古兰经的对 ...

  9. 【WPF系列】基础学习-WPF架构概览

    引言 WPF从.net framewok3.0加入以来,经历了很多跟新.每次更新都给用户带来了新的功能或者优化性能.下面我们首先看下WPF再.netFramework中的位置,接着介绍下WPF的架构框 ...

随机推荐

  1. python第十六天

    一.包 1.什么是包? 一系列模块的集合 2.有什么用? 包通过文件夹来管理一系列功能相近的模块 3.包重点? 包中一定有一个专门用来管理包中所有模块的文件   __init__ 4.什么是包名? 包 ...

  2. java编程(1)——servlet和Ajax异步请求的接口编程(没有调用数据库的数据)

    编程应用背景: 使用HttpServlet接口来编写一个动态登录的接口(需要在Tomcat容器发布) 登录的 LoginSample 类代码: package com.zhang.java; publ ...

  3. C++ 初读vector

    vector 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container).跟任意其它类型容器一样,它能够存放各种类型的对象. Character 高效 C++标准要 ...

  4. BZOJ.4184.shallot(线段树分治 线性基)

    BZOJ 裸的线段树分治+线性基,就是跑的巨慢_(:з」∠)_ . 不知道他们都写的什么=-= //41652kb 11920ms #include <map> #include < ...

  5. 2018-4-5-cadence skill

    skill 是 Cadence 提供的二次开发语言,可以做很多有用的二次开发. 开发参考手册:<algroskill><sklangref><sklanguser> ...

  6. C++入门笔记(二)变量和基本类型

    变量和基本类型 一.基本内置类型 1.除去布尔类型和扩展的字符型外,其他整型可以分为带符号的和无符号的. 2.与其他整型不同,字符型被分为了三种:char.signed char 和 unsigned ...

  7. 利用jquery-barcode.js实现生成条形码

    jquery-barcode官网 js下载地址-github 代码示范(官网上也有) <!DOCTYPE html> <html> <head> <meta ...

  8. 解析时间parse time

    下面是一个解析时间的一个类 <?php /** * @purpose : 解析时间 * author: 袋鼠 * date: 2019/3/1 * time: 19:43 */ class Pa ...

  9. 新建一个express项目的流程

    1.先创建一个文件夹,然后创建一个项目,默认有一个:package.json 文件 #初始化项目 npm init 2.初始化项目会出现一个默认的提醒 #这个实用程序将指导您创建一个包,json文件. ...

  10. Python 版本管理anaconda

    下载安装 下载地址 :anaconda官网 下载后直接命令行安装,默认安装按enter 和yes bash Anaconda3-5.2.0-Linux-x86_64.sh 按照官网上下一步直接用con ...