SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
HTTP 완벽가이드
19장 배포시스템
1. FrontPage 서버 확장
2. WebDAV
FrontPage 서버 확장
• MS FrontPage 제작을 지원하고 웹 서버 기능을 확장하는 프로그램과 스크립트 집합
(https://www.microsoft.com/korea/technet/prodtechnol/
sharepnt/proddocs/admindoc/
glossary.mspx#frontpageserverextensions)
• RPC를 HTTP Post 요청 위에 구현
https://www.microsoft.com/korea/technet/
prodtechnol/sharepnt/proddocs/admindoc/owsa03.mspx
POST /_vti_bin/_vti_aut/author.dll HTTP/1.1
Date: Sat, 12 Aug 2000 20:32:54 GMT
User-Agent: MSFrontPage/4.0
..........................................
<BODY>
method=list+documents%3a4%2e0%2e2%2e3717&service%5fname=&listHiddenDocs=false&listExp
lorerDocs=false&listRecurse=false&listFiles=true&listFolders=true&listLinkInfo=true&l
istIncludeParent=true&listDerived=false
&listBorders=false&listChildWebs=true&initialUrl=&folderList=%5b%3bTW%7c12+Aug+2000+2
0%3a33%3a04+%2d0000%5d
WebDAV
역사
• 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
• 짐 화이트헤드, 팀 버너스 리
• 팀 버너스 리의 최초의 웹 브라우저 월드와이드웹은 웹 페이지를 보고 편집하는 것이 가능했다!
WebDAV 새로운 HTTP 메서드
• PROPFIND: 리소스의 속성을 읽는다
• PROPATCH: 한 개 이상의 리소스에 대한 한 개 이상의 속성을 정의한다
• MKCOL: 콜렉션을 생성
• COPY: 리소스나 리소스의 집합을 복사
• MOVE: 리소스나 리소스의 집합을 이동
• LOCK: 하나 이상의 리소스를 잠금
• UNLOCK: 잠긴 리소스 해제
책이 RFC 2518 기준임
https://tools.ietf.org/html/rfc2518
RFC 4918을 참조 하는게..
https://tools.ietf.org/html/rfc4918
DAV HTTP Header
• DAV = “DAV” “:” “1” [“,” “2”] [“,” 1#extend]
• 모든 리소스는 OPTIONS 요청에 이 헤더를 포함해야 됨
Depth HTTP Header
• Depth = “Depth” “:” (“0” | “1” | “infinity”)
• LOCK, COPY, MOVE가 사용
• 하위 리소스를 얼만큼의 깊이까지 포함할지
Destination HTTP Header
• Destination = “Destination” “:” absoluteURI
• COPY, MOVE 메서드가 사용함
If HTTP Header
If = "If" ":" ( 1*No-tag-list | 1*Tagged-list)
No-tag-list = List
Tagged-list = Resource 1*List
Resource = Coded-URL
List = "(" 1*(["Not"](State-token | "[" entity-tag "]")) ")"
State-token = Coded-URL
Coded-URL = "<" absoluteURI ">"
• 정의된 상태 토큰은 lock 토큰뿐
• 전제 조건이 틀리면 요청 실패
• COPY, PUT 메소드는 If 헤더에 전제 조건을 기술
• 흔한 전제 조건은 LOck을 사전에 획득 하는것
Lock-Token HTTP Header
• Lock-Token = “Lock-Token” “:” Coded-URL
• UNLOCK 메서드에서 해제할 잠금을 명시
• LOCK 메서드는 응답으로 lock 토큰에 필요한 정보를 전달하는 Lock-Token 헤더를
포함
Overwrite HTTP Header
• Overwrite = “Overwrite” “:” (“T” | “F”)
• COPY, MOVE 메서드에서 리소스를 덮어 쓸지를 기술
Timeout HTTP Header
TimeOut = "Timeout" ":" 1#TimeType
TimeType = ("Second-" DAVTimeOutVal | "Infinite" | Other)
DAVTimeOutVal = 1*digit
Other = "Extend" field-value
• 클라이언트가 필요한 잠금 타임아웃 기술
19-3 변경의 유실문제
잠금 지원
• 리소스 소유자만 쓸 수 있게 배타적 쓰기 잠금
• 여러 사람으로 이루어져 있는 그룹이 하나의 문서를 작업 할 수 있는 공유된 쓰기 잠금
• PROPFIND 메서드를 통해 지원할 잠금과 형식 결정
• LOCK, UNLOCK
• 저자를 식별하기위해 다이제스트 인증 요구
• 잠금이 승인되면 도메인 전체에서 유일한 토큰을 클라이언트에 반환
• (RFC 2518 6.4 opaquelocktoken Lock Token URI Scheme)
Lock 메서드
LOCK /ch-publish.fm HTTP/1.1
Host: minstar
Content-Type: text/xml
User-Agent: Mozilla/4.0 (compatible; MSIE 5.0;
Windows NT)
Content-Length: 201
<?xml version="1.0"?>
<a:lockinfo xmlns:a="DAV:">
<a:lockscope><a:exclusive/></a:lockscope>
<a:locktype><a:write/></a:locktype>
<a:owner><a:href>AuthorA</a:href></a:owner>
</a:lockinfo>
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Fri, 10 May 2002 20:56:18 GMT
Content-Type: text/xml
Content-Length: 419
<?xml version="1.0"?>
<a:prop xmlns:a="DAV:">
<a:lockdiscovery><a:activelock>
<a:locktype><a:write/></a:locktype>
<a:lockscope><a:exclusive/></a:lockscope>
<a:owner xmlns:a="DAV:"><a:href>AutherA</
a:href></a:owner>
<a:locktoken><a:href>opaquelocktoken:*****</
a:href></a:locktoken>
<a:depth>0</a:depth>
<a:timeout>Second-180</a:timeout>
</a:activelock></a:lockdiscovery>
</a:prop>
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 메서드의
상태 코드
속성과 META 데이터
• 동적 수정되는 속성(Live 속성)
• e.g., 저작자, 수정 일시, 내용 등급…
• 거의 변하지 않는 속성(Dead 속성)
• e.g., Content-type
• PROPFIND, PROPPATCH로 HTTP를 확장해서 속성의 발견과 수정을함
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., 디렉터리의 목록, 그안의 모든 개
별 엔터티의 속성까지 한큐 가능
PROPPATCH 메서드
<d:propertyupdate xmlns:d="DAV:"
xmlns:o="http://name-space/scheme/">
<d:set>
<d:prop>
<o:owner>Author A</o:owner>
</d:prop>
</d:set>
<d:remove>
<d:prop>
<o:owner/>
</d:prop>
</d:remove>
</d:propertyupdate>
• atomic
• 표 19-2 PROPFIND와 PROPPATCH
메서드에 대한 상태 코드 요약
콜렉션과 이름 공간
• 콜렉션은 리소스들의 논리 또는 물릭적 그룹 e.g., 디렉토리
• xml 이름공간 메커니즘 처럼 충돌 X, 명확한 구조적 제어 기능
• DELETE, MKCOL, MOVE, COPY, PROPFIND 들이 사용
MKCOL 메서드
MKCOL /publishing HTTP/1.1
Host: minstar
Content-Length: 0
Connection: Keep-Alive
HTTP/1.1 201 Created
Server: Microsoft-IIS/5.0
Date: Fri, 10 May 2002 23:20:36 GMT
Location: http://minstar/publishing/
Content-Length: 0


• PUT, POST 대신 MKCOL메서드를
사용
DELETE 메서드
DELETE /publishing HTTP/1.1
Host: minstar
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Fri, 10 May 2002 23:20:36 GMT
Location: http://minstar/publishing/
Content-Length: 0


or
HTTP/1.1 207 Multi-Status
Server: Microsoft-IIS/5.0
Content-Location: http://minstar/publishing/
..............
<?xml version="1.0"?>
<a:multistatus xmlns:a="DAV:">
<a:response>
<a:href>http://minstar/index3/ch-publish.fm</
a:href>
<a:status> HTTP/1.1 423 Locked </a:status>
</a:response>
</a:multistatus>
• Depth 헤더 없으면 무한 infiniy
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 메서드에 대한 상
태코드
향상된 HTTP/1.1 메서드
• WebDAV는 원래 HTTP의 DELETE, PUT, OPTIONS 의미를 수정함
• GET, POST, HEAD는 그대로
• PUT
• if 헤더를 같이 기술해서 잠금 토큰을 맞춘후 컨텐츠를 사이트에 전송
• OPTIONS
• 응답에 지원 클래스 헤더가 있다
• class 1: RFC 2518의 모든 MUST 요구 사항 지원
• class 2: class 1 + LOCK관련 스펙 지원
버전관리
• 초반 RFC에 없음
• RFC 3253에 추가됨
끝

Mais conteúdo relacionado

Mais procurados

Http 완벽가이드(3장 http 메시지)
Http 완벽가이드(3장 http 메시지)Http 완벽가이드(3장 http 메시지)
Http 완벽가이드(3장 http 메시지)Choonghyun Yang
 
Http 헤더
Http 헤더Http 헤더
Http 헤더kidoki
 
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HyeonSeok Choi
 
실무로 배우는 시스템 성능 최적화 - 4부. 프로세스 이해하기
실무로 배우는 시스템 성능 최적화 - 4부. 프로세스 이해하기실무로 배우는 시스템 성능 최적화 - 4부. 프로세스 이해하기
실무로 배우는 시스템 성능 최적화 - 4부. 프로세스 이해하기Minchul Jung
 
Nginx basic configurations
Nginx basic configurationsNginx basic configurations
Nginx basic configurationsJohn Kim
 
서버성능개선 류우림
서버성능개선 류우림서버성능개선 류우림
서버성능개선 류우림우림 류
 
Http 완벽 가이드(2장 url과 리소스)
Http 완벽 가이드(2장 url과 리소스)Http 완벽 가이드(2장 url과 리소스)
Http 완벽 가이드(2장 url과 리소스)Choonghyun Yang
 
Web App Security 2015.10
Web App Security 2015.10Web App Security 2015.10
Web App Security 2015.10Chanjin Park
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee dockerDK Lee
 
Browser Principle에 대해 알아보자.pdf
Browser Principle에 대해 알아보자.pdfBrowser Principle에 대해 알아보자.pdf
Browser Principle에 대해 알아보자.pdfHo Jeong Im
 
더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2EungJun Yi
 
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기SangJin Kang
 
Mongodb 관리
Mongodb 관리Mongodb 관리
Mongodb 관리흥배 최
 
HTTP/2와 웹 성능 최적화 방안
HTTP/2와 웹 성능 최적화 방안HTTP/2와 웹 성능 최적화 방안
HTTP/2와 웹 성능 최적화 방안SangJin Kang
 
SPDY : 더 빠른 웹을 위한 프로토콜
SPDY : 더 빠른 웹을 위한 프로토콜SPDY : 더 빠른 웹을 위한 프로토콜
SPDY : 더 빠른 웹을 위한 프로토콜Yunsang Choi
 
F5 spdy 솔루션 선관
F5 spdy 솔루션 선관F5 spdy 솔루션 선관
F5 spdy 솔루션 선관itian-f5
 

Mais procurados (20)

Http 완벽가이드(3장 http 메시지)
Http 완벽가이드(3장 http 메시지)Http 완벽가이드(3장 http 메시지)
Http 완벽가이드(3장 http 메시지)
 
Http redirection
Http redirectionHttp redirection
Http redirection
 
Http 헤더
Http 헤더Http 헤더
Http 헤더
 
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HTTP 완벽가이드 21장
HTTP 완벽가이드 21장
 
실무로 배우는 시스템 성능 최적화 - 4부. 프로세스 이해하기
실무로 배우는 시스템 성능 최적화 - 4부. 프로세스 이해하기실무로 배우는 시스템 성능 최적화 - 4부. 프로세스 이해하기
실무로 배우는 시스템 성능 최적화 - 4부. 프로세스 이해하기
 
Node.js 첫걸음
Node.js 첫걸음Node.js 첫걸음
Node.js 첫걸음
 
Nginx basic configurations
Nginx basic configurationsNginx basic configurations
Nginx basic configurations
 
서버성능개선 류우림
서버성능개선 류우림서버성능개선 류우림
서버성능개선 류우림
 
Http 완벽 가이드(2장 url과 리소스)
Http 완벽 가이드(2장 url과 리소스)Http 완벽 가이드(2장 url과 리소스)
Http 완벽 가이드(2장 url과 리소스)
 
게이트단의 보안
게이트단의 보안게이트단의 보안
게이트단의 보안
 
Web App Security 2015.10
Web App Security 2015.10Web App Security 2015.10
Web App Security 2015.10
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee docker
 
Browser Principle에 대해 알아보자.pdf
Browser Principle에 대해 알아보자.pdfBrowser Principle에 대해 알아보자.pdf
Browser Principle에 대해 알아보자.pdf
 
더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2더 빠른 웹을 위해: HTTP/2
더 빠른 웹을 위해: HTTP/2
 
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
 
Mongodb 관리
Mongodb 관리Mongodb 관리
Mongodb 관리
 
HTTP/2와 웹 성능 최적화 방안
HTTP/2와 웹 성능 최적화 방안HTTP/2와 웹 성능 최적화 방안
HTTP/2와 웹 성능 최적화 방안
 
SPDY : 더 빠른 웹을 위한 프로토콜
SPDY : 더 빠른 웹을 위한 프로토콜SPDY : 더 빠른 웹을 위한 프로토콜
SPDY : 더 빠른 웹을 위한 프로토콜
 
F5 spdy 솔루션 선관
F5 spdy 솔루션 선관F5 spdy 솔루션 선관
F5 spdy 솔루션 선관
 
Http method
Http methodHttp method
Http method
 

Destaque

HTTP 완벽가이드- 12 기본 인증
HTTP 완벽가이드- 12 기본 인증HTTP 완벽가이드- 12 기본 인증
HTTP 완벽가이드- 12 기본 인증박 민규
 
HTTP 완벽가이드- 13 다이제스트 인증
HTTP 완벽가이드- 13 다이제스트 인증HTTP 완벽가이드- 13 다이제스트 인증
HTTP 완벽가이드- 13 다이제스트 인증박 민규
 
HTTP 완벽가이드- 18 웹 호스팅
HTTP 완벽가이드- 18 웹 호스팅HTTP 완벽가이드- 18 웹 호스팅
HTTP 완벽가이드- 18 웹 호스팅박 민규
 
실무로 배우는 시스템 성능 최적화 - 프로세스의 메모리 구조 2
실무로 배우는 시스템 성능 최적화 - 프로세스의 메모리 구조 2실무로 배우는 시스템 성능 최적화 - 프로세스의 메모리 구조 2
실무로 배우는 시스템 성능 최적화 - 프로세스의 메모리 구조 2박 민규
 
함수형사고 4장 열심히보다는현명하게
함수형사고 4장 열심히보다는현명하게함수형사고 4장 열심히보다는현명하게
함수형사고 4장 열심히보다는현명하게박 민규
 
실무로 배우는 시스템 성능 최적화
실무로 배우는 시스템 성능 최적화실무로 배우는 시스템 성능 최적화
실무로 배우는 시스템 성능 최적화박 민규
 
Industrial internet
Industrial internetIndustrial internet
Industrial internetEMC
 
Letter to grijalva friday
Letter to grijalva fridayLetter to grijalva friday
Letter to grijalva fridayTravis Klein
 
Tues examples thinking at the margin
Tues examples thinking at the marginTues examples thinking at the margin
Tues examples thinking at the marginTravis Klein
 
Using EMC Symmetrix Storage in VMware vSphere Environments
Using EMC Symmetrix Storage in VMware vSphere EnvironmentsUsing EMC Symmetrix Storage in VMware vSphere Environments
Using EMC Symmetrix Storage in VMware vSphere EnvironmentsEMC
 
Rethink Storage: Transform the Data Center with EMC ViPR Software-Defined Sto...
Rethink Storage: Transform the Data Center with EMC ViPR Software-Defined Sto...Rethink Storage: Transform the Data Center with EMC ViPR Software-Defined Sto...
Rethink Storage: Transform the Data Center with EMC ViPR Software-Defined Sto...EMC
 
Basic stack, queue
Basic stack, queueBasic stack, queue
Basic stack, queue박 민규
 
PD21: EduCon presentation on professional development in the 21st century
PD21: EduCon presentation on professional development in the 21st centuryPD21: EduCon presentation on professional development in the 21st century
PD21: EduCon presentation on professional development in the 21st centuryTech with Intent
 
การออกแบบและตกแต่งห้องนอนสวยๆ ด้วยไอเดียการตกแต่งห้องนอนหลายแนว
การออกแบบและตกแต่งห้องนอนสวยๆ ด้วยไอเดียการตกแต่งห้องนอนหลายแนวการออกแบบและตกแต่งห้องนอนสวยๆ ด้วยไอเดียการตกแต่งห้องนอนหลายแนว
การออกแบบและตกแต่งห้องนอนสวยๆ ด้วยไอเดียการตกแต่งห้องนอนหลายแนวKamthon Sarawan
 
BIOENERGY TECHNOLOGY STATUS IN THAILAND: CHALLENGES AND OPPORTUNITIES
BIOENERGY TECHNOLOGY STATUS IN THAILAND: CHALLENGES AND OPPORTUNITIESBIOENERGY TECHNOLOGY STATUS IN THAILAND: CHALLENGES AND OPPORTUNITIES
BIOENERGY TECHNOLOGY STATUS IN THAILAND: CHALLENGES AND OPPORTUNITIESSrichattra Chaivongvilan
 
02 allocative efficiency
02 allocative efficiency02 allocative efficiency
02 allocative efficiencyTravis Klein
 

Destaque (20)

HTTP 완벽가이드- 12 기본 인증
HTTP 완벽가이드- 12 기본 인증HTTP 완벽가이드- 12 기본 인증
HTTP 완벽가이드- 12 기본 인증
 
HTTP 완벽가이드- 13 다이제스트 인증
HTTP 완벽가이드- 13 다이제스트 인증HTTP 완벽가이드- 13 다이제스트 인증
HTTP 완벽가이드- 13 다이제스트 인증
 
HTTP 완벽가이드- 18 웹 호스팅
HTTP 완벽가이드- 18 웹 호스팅HTTP 완벽가이드- 18 웹 호스팅
HTTP 완벽가이드- 18 웹 호스팅
 
Pig
PigPig
Pig
 
실무로 배우는 시스템 성능 최적화 - 프로세스의 메모리 구조 2
실무로 배우는 시스템 성능 최적화 - 프로세스의 메모리 구조 2실무로 배우는 시스템 성능 최적화 - 프로세스의 메모리 구조 2
실무로 배우는 시스템 성능 최적화 - 프로세스의 메모리 구조 2
 
함수형사고 4장 열심히보다는현명하게
함수형사고 4장 열심히보다는현명하게함수형사고 4장 열심히보다는현명하게
함수형사고 4장 열심히보다는현명하게
 
실무로 배우는 시스템 성능 최적화
실무로 배우는 시스템 성능 최적화실무로 배우는 시스템 성능 최적화
실무로 배우는 시스템 성능 최적화
 
Tribe game
Tribe gameTribe game
Tribe game
 
Industrial internet
Industrial internetIndustrial internet
Industrial internet
 
Letter to grijalva friday
Letter to grijalva fridayLetter to grijalva friday
Letter to grijalva friday
 
Tues examples thinking at the margin
Tues examples thinking at the marginTues examples thinking at the margin
Tues examples thinking at the margin
 
Using EMC Symmetrix Storage in VMware vSphere Environments
Using EMC Symmetrix Storage in VMware vSphere EnvironmentsUsing EMC Symmetrix Storage in VMware vSphere Environments
Using EMC Symmetrix Storage in VMware vSphere Environments
 
Rethink Storage: Transform the Data Center with EMC ViPR Software-Defined Sto...
Rethink Storage: Transform the Data Center with EMC ViPR Software-Defined Sto...Rethink Storage: Transform the Data Center with EMC ViPR Software-Defined Sto...
Rethink Storage: Transform the Data Center with EMC ViPR Software-Defined Sto...
 
Basic stack, queue
Basic stack, queueBasic stack, queue
Basic stack, queue
 
Editing trailer
Editing trailerEditing trailer
Editing trailer
 
Recording Reccy
Recording ReccyRecording Reccy
Recording Reccy
 
PD21: EduCon presentation on professional development in the 21st century
PD21: EduCon presentation on professional development in the 21st centuryPD21: EduCon presentation on professional development in the 21st century
PD21: EduCon presentation on professional development in the 21st century
 
การออกแบบและตกแต่งห้องนอนสวยๆ ด้วยไอเดียการตกแต่งห้องนอนหลายแนว
การออกแบบและตกแต่งห้องนอนสวยๆ ด้วยไอเดียการตกแต่งห้องนอนหลายแนวการออกแบบและตกแต่งห้องนอนสวยๆ ด้วยไอเดียการตกแต่งห้องนอนหลายแนว
การออกแบบและตกแต่งห้องนอนสวยๆ ด้วยไอเดียการตกแต่งห้องนอนหลายแนว
 
BIOENERGY TECHNOLOGY STATUS IN THAILAND: CHALLENGES AND OPPORTUNITIES
BIOENERGY TECHNOLOGY STATUS IN THAILAND: CHALLENGES AND OPPORTUNITIESBIOENERGY TECHNOLOGY STATUS IN THAILAND: CHALLENGES AND OPPORTUNITIES
BIOENERGY TECHNOLOGY STATUS IN THAILAND: CHALLENGES AND OPPORTUNITIES
 
02 allocative efficiency
02 allocative efficiency02 allocative efficiency
02 allocative efficiency
 

Semelhante a HTTP 완벽가이드- 19장 배포시스템

XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXpressEngine
 
REST API 설계
REST API 설계REST API 설계
REST API 설계Terry Cho
 
Mongo db 시작하기
Mongo db 시작하기Mongo db 시작하기
Mongo db 시작하기OnGameServer
 
The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)Eunjeong (Lucy) Park
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014Gruter
 
[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How ToJi-Woong Choi
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine LearningJEEHYUN PAIK
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처Sunggon Song
 
막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js연웅 조
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)NAVER D2
 
한국청소년정보과학회 1회 세미나 - RestFul API Basic
한국청소년정보과학회 1회 세미나 - RestFul API Basic한국청소년정보과학회 1회 세미나 - RestFul API Basic
한국청소년정보과학회 1회 세미나 - RestFul API Basic한국청소년정보과학회
 
Android Network
Android NetworkAndroid Network
Android Networkcooddy
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)DK Lee
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기Ted Won
 

Semelhante a HTTP 완벽가이드- 19장 배포시스템 (20)

Html5
Html5 Html5
Html5
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
 
REST API 설계
REST API 설계REST API 설계
REST API 설계
 
Mongo db 시작하기
Mongo db 시작하기Mongo db 시작하기
Mongo db 시작하기
 
The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)The beginner’s guide to 웹 크롤링 (스크래핑)
The beginner’s guide to 웹 크롤링 (스크래핑)
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
 
[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처
 
막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
 
2-2. html5
2-2. html52-2. html5
2-2. html5
 
Servlet3
Servlet3Servlet3
Servlet3
 
Web server
Web serverWeb server
Web server
 
한국청소년정보과학회 1회 세미나 - RestFul API Basic
한국청소년정보과학회 1회 세미나 - RestFul API Basic한국청소년정보과학회 1회 세미나 - RestFul API Basic
한국청소년정보과학회 1회 세미나 - RestFul API Basic
 
4-3. jquery
4-3. jquery4-3. jquery
4-3. jquery
 
Android Network
Android NetworkAndroid Network
Android Network
 
Hacosa jquery 1th
Hacosa jquery 1thHacosa jquery 1th
Hacosa jquery 1th
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
 

HTTP 완벽가이드- 19장 배포시스템

  • 2. 1. FrontPage 서버 확장 2. WebDAV
  • 4. • MS FrontPage 제작을 지원하고 웹 서버 기능을 확장하는 프로그램과 스크립트 집합 (https://www.microsoft.com/korea/technet/prodtechnol/ sharepnt/proddocs/admindoc/ glossary.mspx#frontpageserverextensions) • RPC를 HTTP Post 요청 위에 구현
  • 6. POST /_vti_bin/_vti_aut/author.dll HTTP/1.1 Date: Sat, 12 Aug 2000 20:32:54 GMT User-Agent: MSFrontPage/4.0 .......................................... <BODY> method=list+documents%3a4%2e0%2e2%2e3717&service%5fname=&listHiddenDocs=false&listExp lorerDocs=false&listRecurse=false&listFiles=true&listFolders=true&listLinkInfo=true&l istIncludeParent=true&listDerived=false &listBorders=false&listChildWebs=true&initialUrl=&folderList=%5b%3bTW%7c12+Aug+2000+2 0%3a33%3a04+%2d0000%5d
  • 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: 잠긴 리소스 해제
  • 10. 책이 RFC 2518 기준임 https://tools.ietf.org/html/rfc2518 RFC 4918을 참조 하는게.. https://tools.ietf.org/html/rfc4918
  • 11. DAV HTTP Header • DAV = “DAV” “:” “1” [“,” “2”] [“,” 1#extend] • 모든 리소스는 OPTIONS 요청에 이 헤더를 포함해야 됨
  • 12. Depth HTTP Header • Depth = “Depth” “:” (“0” | “1” | “infinity”) • LOCK, COPY, MOVE가 사용 • 하위 리소스를 얼만큼의 깊이까지 포함할지
  • 13. Destination HTTP Header • Destination = “Destination” “:” absoluteURI • COPY, MOVE 메서드가 사용함
  • 14. If HTTP Header If = "If" ":" ( 1*No-tag-list | 1*Tagged-list) No-tag-list = List Tagged-list = Resource 1*List Resource = Coded-URL List = "(" 1*(["Not"](State-token | "[" entity-tag "]")) ")" State-token = Coded-URL Coded-URL = "<" absoluteURI ">" • 정의된 상태 토큰은 lock 토큰뿐 • 전제 조건이 틀리면 요청 실패 • COPY, PUT 메소드는 If 헤더에 전제 조건을 기술 • 흔한 전제 조건은 LOck을 사전에 획득 하는것
  • 15. Lock-Token HTTP Header • Lock-Token = “Lock-Token” “:” Coded-URL • UNLOCK 메서드에서 해제할 잠금을 명시 • LOCK 메서드는 응답으로 lock 토큰에 필요한 정보를 전달하는 Lock-Token 헤더를 포함
  • 16. Overwrite HTTP Header • Overwrite = “Overwrite” “:” (“T” | “F”) • COPY, MOVE 메서드에서 리소스를 덮어 쓸지를 기술
  • 17. Timeout HTTP Header TimeOut = "Timeout" ":" 1#TimeType TimeType = ("Second-" DAVTimeOutVal | "Infinite" | Other) DAVTimeOutVal = 1*digit Other = "Extend" field-value • 클라이언트가 필요한 잠금 타임아웃 기술
  • 19. 잠금 지원 • 리소스 소유자만 쓸 수 있게 배타적 쓰기 잠금 • 여러 사람으로 이루어져 있는 그룹이 하나의 문서를 작업 할 수 있는 공유된 쓰기 잠금 • PROPFIND 메서드를 통해 지원할 잠금과 형식 결정 • LOCK, UNLOCK • 저자를 식별하기위해 다이제스트 인증 요구 • 잠금이 승인되면 도메인 전체에서 유일한 토큰을 클라이언트에 반환 • (RFC 2518 6.4 opaquelocktoken Lock Token URI Scheme)
  • 20. Lock 메서드 LOCK /ch-publish.fm HTTP/1.1 Host: minstar Content-Type: text/xml User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT) Content-Length: 201 <?xml version="1.0"?> <a:lockinfo xmlns:a="DAV:"> <a:lockscope><a:exclusive/></a:lockscope> <a:locktype><a:write/></a:locktype> <a:owner><a:href>AuthorA</a:href></a:owner> </a:lockinfo> HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Fri, 10 May 2002 20:56:18 GMT Content-Type: text/xml Content-Length: 419 <?xml version="1.0"?> <a:prop xmlns:a="DAV:"> <a:lockdiscovery><a:activelock> <a:locktype><a:write/></a:locktype> <a:lockscope><a:exclusive/></a:lockscope> <a:owner xmlns:a="DAV:"><a:href>AutherA</ a:href></a:owner> <a:locktoken><a:href>opaquelocktoken:*****</ a:href></a:locktoken> <a:depth>0</a:depth> <a:timeout>Second-180</a:timeout> </a:activelock></a:lockdiscovery> </a:prop>
  • 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., 디렉터리의 목록, 그안의 모든 개 별 엔터티의 속성까지 한큐 가능
  • 24. PROPPATCH 메서드 <d:propertyupdate xmlns:d="DAV:" xmlns:o="http://name-space/scheme/"> <d:set> <d:prop> <o:owner>Author A</o:owner> </d:prop> </d:set> <d:remove> <d:prop> <o:owner/> </d:prop> </d:remove> </d:propertyupdate> • atomic • 표 19-2 PROPFIND와 PROPPATCH 메서드에 대한 상태 코드 요약
  • 25. 콜렉션과 이름 공간 • 콜렉션은 리소스들의 논리 또는 물릭적 그룹 e.g., 디렉토리 • xml 이름공간 메커니즘 처럼 충돌 X, 명확한 구조적 제어 기능 • DELETE, MKCOL, MOVE, COPY, PROPFIND 들이 사용
  • 26. MKCOL 메서드 MKCOL /publishing HTTP/1.1 Host: minstar Content-Length: 0 Connection: Keep-Alive HTTP/1.1 201 Created Server: Microsoft-IIS/5.0 Date: Fri, 10 May 2002 23:20:36 GMT Location: http://minstar/publishing/ Content-Length: 0 
 • PUT, POST 대신 MKCOL메서드를 사용
  • 27. DELETE 메서드 DELETE /publishing HTTP/1.1 Host: minstar HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Fri, 10 May 2002 23:20:36 GMT Location: http://minstar/publishing/ Content-Length: 0 
 or HTTP/1.1 207 Multi-Status Server: Microsoft-IIS/5.0 Content-Location: http://minstar/publishing/ .............. <?xml version="1.0"?> <a:multistatus xmlns:a="DAV:"> <a:response> <a:href>http://minstar/index3/ch-publish.fm</ a:href> <a:status> HTTP/1.1 423 Locked </a:status> </a:response> </a:multistatus> • Depth 헤더 없으면 무한 infiniy
  • 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관련 스펙 지원
  • 30. 버전관리 • 초반 RFC에 없음 • RFC 3253에 추가됨
  • 31.