HTTP 요청 메소드 종류

HTTP 요청 메소드 종류

HTTP 요청 메소드는 표준 HTTP 메소드와 WebDAV 확장 HTTP 메소드로 구분됩니다.

표준 HTTP 요청 메소드

HTTP 프로토콜은 클라이언트와 서버 간의 상호작용을 위한 일련의 메소드를 정의합니다. 이들 메소드에는 데이터 가져오기, 데이터 제출, 리소스 삭제 등의 기본적인 요청 유형이 포함됩니다.

GET /items HTTP/1.1
Host: example.com

POST /items HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "itemName": "Sample Item"
}

PUT /items/1 HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "itemName": "Updated Item"
}

DELETE /items/1 HTTP/1.1
Host: example.com

HEAD /items HTTP/1.1
Host: example.com

OPTIONS /items HTTP/1.1
Host: example.com

PATCH /items/1 HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "itemName": "Partially Updated"
}

TRACE /items HTTP/1.1
Host: example.com

CONNECT www.example.com:443 HTTP/1.1

WebDAV 확장 HTTP 메소드

WebDAV(Web Distributed Authoring and Versioning)는 문서 관리 및 편집을 지원하기 위해 HTTP 프로토콜을 확장한 것입니다. 이는 파일 시스템 작업(생성, 복사, 이동, 잠금 등)을 지원하는 새로운 요청 메소드를 추가합니다.

MKCOL: 새 컬렉션(일반적으로 폴더) 생성.
COPY: 리소스를 새 위치로 복사.
MOVE: 리소스를 새 위치로 이동하거나 이름 변경.
PROPFIND: 리소스 속성 가져오기.
PROPPATCH: 리소스 속성 수정.
LOCK: 다른 사용자가 수정하지 못하도록 리소스 잠금.
UNLOCK: 리소스 잠금 해제.

공통점과 차이점

공통점:

  • WebDAV 메소드는 HTTP 프로토콜을 통해 이루어지며 동일한 요청 및 응답 메커니즘을 사용합니다.
  • WebDAV 메소드는 일반 HTTP 메소드와 함께 사용될 수 있으며, 일반적으로 동일한 HTTP 서버에서 작동합니다.

차이점:

  • WebDAV 메소드는 파일 및 문서 관리에 집중하며 파일 시스템 작업을 지원합니다.
  • 일반 HTTP 메소드는 더 일반적이며 주로 데이터 가져오기 및 제출에 사용됩니다.

예시 코드

GET /data/items HTTP/1.1
Host: sample.com

POST /data/items HTTP/1.1
Host: sample.com
Content-Type: application/json

{
    "item": "New Sample Item"
}

PUT /data/items/1 HTTP/1.1
Host: sample.com
Content-Type: application/json

{
    "item": "Updated Sample Item"
}

DELETE /data/items/1 HTTP/1.1
Host: sample.com

HEAD /data/items HTTP/1.1
Host: sample.com

OPTIONS /data/items HTTP/1.1
Host: sample.com

PATCH /data/items/1 HTTP/1.1
Host: sample.com
Content-Type: application/json

{
    "item": "Partially Updated Item"
}

TRACE /data/items HTTP/1.1
Host: sample.com

CONNECT www.sample.com:443 HTTP/1.1

PROPFIND /webdav/resource HTTP/1.1
Host: sample.com
Depth: 1

PROPPATCH /webdav/resource HTTP/1.1
Host: sample.com
Content-Type: text/xml

<propertyupdate xmlns="DAV:">
    <set>
        <prop>
            <displayname>New Name</displayname>
        </prop>
    </set>
</propertyupdate>

MKCOL /webdav/newfolder HTTP/1.1
Host: sample.com

COPY /webdav/resource HTTP/1.1
Host: sample.com
Destination: /webdav/newresource

MOVE /webdav/resource HTTP/1.1
Host: sample.com
Destination: /webdav/newresource

LOCK /webdav/resource HTTP/1.1
Host: sample.com
Content-Type: text/xml

<lockinfo xmlns="DAV:">
    <timeout>Second-600</timeout>
    <owner>user@sample.com</owner>
</lockinfo>

UNLOCK /webdav/resource HTTP/1.1
Host: sample.com
Lock-Token: <opaquelocktoken:54321>

태그: HTTP WebDAV RESTful_API HTTP_Methods

7월 9일 00:40에 게시됨