본문 바로가기
리눅스

(번역) WebDAV

by 다움위키 2025. 2. 18.

원문 보기: https://dawoum.duckdns.org/wiki/WebDAV

 

Original article: w:WebDAV

WebDAV (Web Distributed Authoring and Versioning)는 Hypertext Transfer Protocol (HTTP)에 대한 확장의 집합으로, 사용자 에이전트에게 동시성 제어이름공간 작업에 대해 기능을 제공함으로써 HTTP 웹 서버에서 직접 컨텐츠를 만들도록 허용하며, 따라서 을 읽기 전용 매체가 아닌 쓰기-가능한 협업 매체로 볼 수 있도록 허용합니다. WebDAV는 Internet Engineering Task Force (IETF)의 작업 그룹에 의해 RFC 4918에 정의되어 있습니다.

WebDAV 프로토콜은 사용자에 대해 서버에서 문서를 만들고, 변경하고, 이동하기 위한 프레임워크를 제공합니다. 가장 중요한 기능에는 작성자 또는 수정 날짜에 대한 속성의 유지 관리, 이름공간 관리, 컬렉션, 및 덮어쓰기 방지를 포함합니다. 속성 유지 관리에는 파일 정보의 생성, 제거, 및 질의와 같은 것이 포함됩니다. 이름공간 관리에서는 서버의 이름공간 내에서 웹 페이지를 복사하고 이동하는 기능을 다룹니다. 컬렉션에서는 다양한 자원의 생성, 제거, 및 목록을 다룹니다. 마지막으로 덮어쓰기 방지는 파일 잠금과 관련된 측면을 처리합니다. 그것은 전송 계층 보안, 다이제스트 접근 인증, 또는 XML과 같은 기존 기술을 이들 요구 사항을 충족하기 위해 사용합니다.

많은 현대 운영 시스템은 WebDAV에 대한 내장 클라이언트-측 지원을 제공합니다.

History

WebDAV는 1996년 Jim WhiteheadWorld Wide Web Consortium (W3C)과 협력하여 관심 있는 사람들과 World Wide Web에서 분산 저작 문제를 논의하기 위해 두 번의 회의를 주최했을 때 시작되었습니다. Tim Berners-Lee의 원래 웹 비전에는 읽기와 쓰기를 모두 위한 매체가 포함되었습니다. 사실, Berners-Lee의 첫 번째 웹 브라우저는, WorldWideWeb이라고 불리며, 웹 페이지를 보고 편집할 수 있었지만, 웹이 성장함에 따라, 대부분 사용자에게는 읽기 전용 매체가 되었습니다. Whitehead와 같은 생각을 가진 다른 사람들은 그 제한을 극복하고자 했습니다.

이 회의에서 IETF 실무 그룹이 구성되었는데, 왜냐하면 새로운 노력으로 IETF가 표준화를 시작한 HTTP를 확장하는 작업이 이루어졌기 때문입니다.

프로토콜 작업이 시작되면서, 분산 저작과 버전 관리를 함께 처리하는 데 너무 많은 작업이 필요하고 작업을 분리해야 한다는 것이 분명해졌습니다. WebDAV 그룹은 분산 저작에 집중하고, 버전 관리 작업은 나중으로 미루었습니다. (Delta-V 확장은 나중에 버전 관리를 추가했습니다  – 아래 확장 섹션 참조)

WebDAV 작업 그룹Internet Engineering Steering Group (IESG)가 RFC 2518에 대한 증분 업데이트를 수락한 후 2007년 3월에 작업을 마쳤습니다. BIND 방식과 같이 그 당시 미완성으로 남아 있던 다른 확장은 공식 작업 그룹과 별개로 개별 작성자에 의해 완료되어 왔습니다.

Implementation

WebDAV는 요청 방법에 허용되는 표준 HTTP 동사 및 헤더의 집합을 확장합니다. 추가된 동사는 다음과 같습니다:

Properties

WebDAV 프로토콜의 속성은 이름-값 쌍으로, 여기서 "이름"은 Uniform Resource Identifier (URI)이고 "값"은 XML 요소를 통해 표현됩니다. 더욱이, 속성을 처리하는 방법PROPFINDPROPPATCH입니다.

Documents produced by the working group

WebDAV 작업 그룹은 여러 임무를 산출했습니다:

  • 요구 사항 문서: "World Wide Web에 대해 분산 저작 및 버전 관리 프로토콜에 대한 요구 사항" RFC 2291, 1998년 2월 발행
  • 기본 프로토콜 문서 (제목과 달리 버전 관리를 제외): "웹 분산 저작과 버전 관리 (WebDAV)에 대한 HTTP 확장" RFC 4918, 2007년 6월 발행 (이는 1999년 2월 발행된 "HTTP Extensions for Distributed Authoring – WebDAV" RFC 2518을 업데이트하고 대체)
  • 순서화된 컬렉션 프로토콜: "웹 분산 저작 및 버전 관리 (WebDAV) 정렬된 컬렉션 프로토콜" RFC 3648, 2003년 12월 발행
  • 젭근 제어 프로토콜: "Web Distributed Authoring and Versioning (WebDAV) 액세스 제어 프로토콜"  RFC 3744, 2004년 5월 발행
  • 할당량 사양: "분산 저작 및 버전 관리 (DAV) 컬렉션에 대한 할당량 및 크기 속성" RFC 4331, 2006년 2월 발행
  • 리다이렉션 사양: "웹 분산 저작 및 버전 관리 (WebDAV) 리디렉션 참조 리소스"  RFC 4437, 2006년 3월 발행

Other documents published through IETF

  • 버전 관리 프로토콜: "WebDAV (웹 분산 저작 및 버전 관리)에 대한 버전 관리 확장" RFC 3253 (Delta-V 작업 그룹에서 생성)
  • WebDAV 속성 데이터-유형의 사양: "웹 분산 저작 및 버전 관리 (WebDAV) 속성에 대한 데이터 유형"  RFC 4316
  • WebDAV 자원의 마운팅을 시작하는 방법을 정의하는 문서: "웹 분산 저작 및 버전 관리 (WebDAV) 서버 마운팅"  RFC 4709
  • 달력 접근 프로토콜: "WebDAV에 대한 달력 확장 (CalDAV)" RFC 4791
  • 쿼리 프로토콜: "웹 분산 저작 및 버전 관리 (WebDAV) 검색"  RFC 5323
  • WebDAV ACL 사양에 대한 확장: "WebDAV Current Principal Extension"  RFC 5397
  • WebDAV MKCOL 방법에 대한 확장: "웹 분산 저작 및 버전 관리 (WebDAV)를 위한 확장된 MKCOL"  RFC 5689
  • 추가 바인딩의 생성과 자원 검색을 정의하는 컬렉션 모델의 확장: "웹 분산 저작 및 버전 관리 (WebDAV)에 대한 바인딩 확장"  RFC 5842
  • WebDAV 컬렉션에 대한 POST의 응용 프로그램: "POST를 사용하여 웹 분산 저장 및 버전 관리 (WebDAV) 컬렉션에 멤버 추가"  RFC 5995
  • 대규모 컬렉션을 효율적으로 동기화할 수 있는 확장: "웹 분산 저작 및 버전 관리 (WebDAV)를 위한 컬렉션 동기화"  RFC 6578

Extensions and derivatives

버전 관리를 위해, 웹 버전 관리 및 구성 관리 작업 그룹의 Delta-V 프로토콜은 RFC 3253에 게시된 자원 개정 추적을 추가합니다.

검색과 위치 지정을 위해, DAV 검색과 위치 지정 (DASL) 작업 그룹은 마지막 초안을 구현한 여러 가지가 있지만 공식 표준을 제작한 적이 없습니다. 임무는 작업 그룹이 아닌 활동으로 계속되었습니다. WebDAV 검색 사양은 작업 그룹이 중단한 부분을 이어가려고 시도했고, 2008년 11월에 RFC 5323으로 게시되었습니다.

캘린더링을 위해, CalDAV는 WebDAV를 통한 달력 접근을 허용하는 프로토콜입니다. CalDAV는 달력 이벤트를 iCalendar 형식에서 HTTP 자원로 모델링하고, 이벤트를 포함하는 달력을 WebDAV 컬렉션으로 모델링합니다.

그룹웨어에 대해, GroupDAV는 WebDAV의 변형으로, 클라이언트/서버 그룹웨어 시스템이 웹 페이지 대신 일정 항목, 주소록 항목과 같은 객체를 저장하고 가져올 수 있도록 해줍니다.

MS Exchange 상호 운용성을 위해, WebDAV는 사서함이나 공용 폴더의 항목을 읽고/업데이트하고/삭제하는 데 사용될 수 있습니다. Exchange에 대해 WebDAV는 Microsoft에 의해 메시징 데이터를 갖는 작업을 수용하도록 확장되어 왔습니다. Exchange Server 버전 2000, 2003, 및 2007은 WebDAV를 지원합니다. 어쨌든, WebDAV 지원은 SOAP/XML 기반 API, Exchange Web Services (EWS)를 선호하여 Exchange 2010에서 중단되었습니다.

Additional Windows-specific extensions

Windows Server Protocols (WSPP) 문서 모음의 일부로, Microsoft는 WebDAV에 대한 확장을 자세히 설명하는 다음 프로토콜 문서를 게시했습니다:

  • [MS-WDVME]: 웹 분산 저작 및 버전 관리 (WebDAV) 프로토콜: Microsoft 확장. 이들 확장은 새로운 동사와 새로운 헤더를 포함하고, 이전에는 관리할 수 없었던 파일 유형을 활성화하고 파일 시스템 클라이언트에 대한 프로토콜 상호 작용을 최적화하는 속성을 포함합니다. 이들 확장은 WebDAV에 새로운 기능을 도입하고, 처리를 최적화하고, 특수한-경우 처리에 대한 필요성을 제거합니다.
  • [MS-WDV]: 웹 분산 저작 및 버전 관리 (WebDAV) 프로토콜: 클라이언트 확장. 이 사양에서 클라이언트 확장은 현재 관리할 수 없는 파일 유형을 활성화하고 파일 시스템 클라이언트에 대한 프로토콜 상호 작용을 최적화하는 새로운 헤더를 도입함으로써 WebDAV 프로토콜을 확장합니다. 이들 확장은 WebDAV 프로토콜에 새로운 기능을 도입하지 않지만, 대신 처리를 최적화하고 특수한-경우 처리에 대한 필요성을 제거합니다.
  • [MS-WDVSE]: 웹 분산 저작 및 버전 관리 (WebDAV) 프로토콜: 서버 확장. 이 사양에서 서버 확장은 현재 관리할 수 없는 파일 유형을 활성화하고 파일 시스템 클라이언트에 대한 프로토콜 상호 작용을 최적화하는 새로운 HTTP 요청 및 응답 헤더를 도입함으로써 WebDAV를 확장합니다. 이 사양은 역시 서로 다른 검색 공급자에게 검색 쿼리를 보내기 위해 사용되는 새로운 WebDAV 방법을 도입합니다.
  • [MS-WEBDAVE]: 웹 분산 작성 및 버전 관리 오류 확장 프로토콜 사양. 이 SharePoint 프런트-엔드 프로토콜은 [MS-WDV]에 지정된 확장 오류 코드 및 확장 오류 처리 메커니즘을 설명하여 호환 서버가 서버 응답에 대한 오류 조건 세부 정보를 보고할 수 있도록 합니다.

WebDAV clients

WebDAV libraries

Alternatives to WebDAV

  • 파일 전송 프로토콜 (FTP), IP 기반의 간단하고 널리 채택된 네트워크 프로토콜로, 사용자에게 네트워크 호스트 사이에 파일을 전송하도록 허용합니다. FTPS 는 안전한 트래픽을 위해 FTP를 확장합니다.
  • SSH 파일 전송 프로토콜 (SFTP), 보안 쉘 프로토콜 (SSH) 버전 2.0의 확장으로, 보안 파일-전송 기능을 제공합니다; 그리고, scp, 쉘에서 정규 cp (복사) 명령과 유사한 단일 명령으로 실행되는 SFTP의 한 형태.
  • Rsync, scp와 비슷한 프로토콜과 명령으로, 동일한 파일이나 파일의 일부를 다시 쓰는 것을 건너뛰거나, 새로운 파일, 등을 건너뛸 수 있습니다.
  • 서버 메시지 블록 (SMB) 프로토콜과 같은 분산 파일 시스템Microsoft Windows 및 오픈-소스 Samba 클라이언트에게 적합한 파일 서버에서 원격으로 파일과 폴더에 접근하고 관리하는 것을 허용합니다. 공통적으로 이더넷을 통한 멀티미디어 스트리밍에 사용되고 스마트 TV에서 널리 지원됩니다.
  • AtomPub, 웹 자원을 만들고 업데이트하기 위한 HTTP 기반 프로토콜로서, WebDAV의 일부 사용 사례에 사용될 수 있습니다. 그것은 WebDAV 디렉토리 모델과 다소 유사하게 동작하는 표준화된 컬렉션 자원을 갖는 표준 HTTP 동사를 기반으로 합니다.
  • CMIS, 다양한 컨텐츠 저장소 사이에 정보를 공유하기 위한 웹 서비스의 모음으로 구성된 표준, 여러 컨텐츠 저장소를 사용하는 사람과 응용 프로그램의 상호 운용성을 보장하는 것을 목표로 합니다. 그것은 SOAP-기반 및 AtomPub-기반 인터페이스를 모두 가집니다.
  • 위키 소프트웨어, 예를 들어 MediaWiki.
  • 연결 데이터 플랫폼 (LDP), RDF 데이터의 읽기-쓰기가 가능한 RESTful HTTP 서비스를 구축하기 위한 일련의 통합 패턴을 정의하는 연결 데이터 사양입니다.
  • Object storage, 예를 들어 OpenStack Swift 또는 Amazon S3