4. • MS FrontPage 제작을 지원하고 웹 서버 기능을 확장하는 프로그램과 스크립트 집합
(https://www.microsoft.com/korea/technet/prodtechnol/
sharepnt/proddocs/admindoc/
glossary.mspx#frontpageserverextensions)
• RPC를 HTTP Post 요청 위에 구현
8. 역사
• Distributed Authoring
• Versioning
• 1999 RFC 2518(HTTP Extensions for Distributed Authoring)
• 2002 RFC 3253(Versioning Extensions to WebDAV)
• 2007 RFC 4918(HTTP Extensions for Web Distributed Authoring and Versioning)
• 80, 443 Port
• 짐 화이트헤드, 팀 버너스 리
• 팀 버너스 리의 최초의 웹 브라우저 월드와이드웹은 웹 페이지를 보고 편집하는 것이 가능했다!
9. WebDAV 새로운 HTTP 메서드
• PROPFIND: 리소스의 속성을 읽는다
• PROPATCH: 한 개 이상의 리소스에 대한 한 개 이상의 속성을 정의한다
• MKCOL: 콜렉션을 생성
• COPY: 리소스나 리소스의 집합을 복사
• MOVE: 리소스나 리소스의 집합을 이동
• LOCK: 하나 이상의 리소스를 잠금
• UNLOCK: 잠긴 리소스 해제
19. 잠금 지원
• 리소스 소유자만 쓸 수 있게 배타적 쓰기 잠금
• 여러 사람으로 이루어져 있는 그룹이 하나의 문서를 작업 할 수 있는 공유된 쓰기 잠금
• PROPFIND 메서드를 통해 지원할 잠금과 형식 결정
• LOCK, UNLOCK
• 저자를 식별하기위해 다이제스트 인증 요구
• 잠금이 승인되면 도메인 전체에서 유일한 토큰을 클라이언트에 반환
• (RFC 2518 6.4 opaquelocktoken Lock Token URI Scheme)
21. UNLock 메서드
UNLOCK /ch-publish.fm HTTP/1.1
Host: minstar.inktomi.com
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0;
Windows NT)
Lock-Token:
opaquelocktoken:*********
HTTP/1.1 204 OK
Server: Microsoft-IIS/5.0
Date: Fri, 10 May 2002 20:56:18 GMT
• 다이제스트 인증, Lock-Token 맞아
야 성공
• 표 19-1 LOCK과 UNLOCK 메서드의
상태 코드
22. 속성과 META 데이터
• 동적 수정되는 속성(Live 속성)
• e.g., 저작자, 수정 일시, 내용 등급…
• 거의 변하지 않는 속성(Dead 속성)
• e.g., Content-type
• PROPFIND, PROPPATCH로 HTTP를 확장해서 속성의 발견과 수정을함
23. PROPFIND 메서드
PROPFIND /ch-publish.fm HTTP/1.1
Host: minstar.inktomi.com
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)
Depth: 0
Cache-Control: no-cache
Connection: Keep-Alive
Content-Length: 0
HTTP/1.1 207 Multi-Status
Server: Microsoft-IIS/5.0
<?xml version="1.0"?>
<a:multistatusxmlns:b="urn:uuid:********/"
xmlns:c="xml:" xmlns:a="DAV:">
<a:response>
<a:href>http://minstar/ch-publish.fm </a:href>
<a:propstat>
<a:status>HTTP/1.1 200OK</a:status>
<a:prop>
<a:getcontentlength b:dt="int">1155</
a:getcontentlength>
......................
<a:ishidden b:dt="boolean">0</a:ishidden>
<a:iscollection b:dt="boolean">0</a:iscollection>
</a:prop>
</a:propstat>
</a:response></a:multistatus>
• 모든 속성과 그 값을 요청
• 선택된 속성과 그 값의 집합을 요청
• 모든 속성의 이름을 요청
• e.g., 디렉터리의 목록, 그안의 모든 개
별 엔터티의 속성까지 한큐 가능
28. COPY/MOVE 메서드
{COPY,MOVE} /publishing HTTP/1.1
Destination: http://minstar/pub-new
Depth: infinity
Overwrite: T
Host: minstar
HTTP/1.1 201 Created
Server: Microsoft-IIS/5.0
Date: Wed, 15 May 2002 18:29:53 GMT
Location: http://minstar.inktomi.com/pub-new/
Content-Type: text/xml
Content-Length: 0
• Destination 헤더
• Depth가 0이면 해당 리소스만
• Depth infinity는 MOVE만 가능
• Overwirte가 T이고 해당 Destination이 있으면 DELETE 후
에 해당 메서드 실행
• Overwrite가 F이고 해당 Destination이 있으면 무조건 실패
• 해당 리소스를 복제하면 속성도 복제됨
• 복제시 추가로 속성을 같이 기술 가능
• 표 19-3 MKCOL, DELETE, COPY, MOVE 메서드에 대한 상
태코드
29. 향상된 HTTP/1.1 메서드
• WebDAV는 원래 HTTP의 DELETE, PUT, OPTIONS 의미를 수정함
• GET, POST, HEAD는 그대로
• PUT
• if 헤더를 같이 기술해서 잠금 토큰을 맞춘후 컨텐츠를 사이트에 전송
• OPTIONS
• 응답에 지원 클래스 헤더가 있다
• class 1: RFC 2518의 모든 MUST 요구 사항 지원
• class 2: class 1 + LOCK관련 스펙 지원