HTTP 에서 사용 가능한 다양한 메소드에 대해서 알아보자.
GET : 리소스 획득
GET 메소드는 리퀘스트 URI 로 식별된 리소스를 가져올 수 있도록 요구한다.
가져올 리소스 내용은 지정된 리소스를 서버가 해석한 결과이다.
POST : 엔티티 전송
POST 메소드는 엔티티를 전송하기 위해서 사용된다.
GET 으로도 엔티티를 전송할 수 있지만, 자주 사용하지 않고 일반적으로 POST 를 사용한다.
PUT : 파일 전송
PUT 메소드는 파일을 전송하기 위해서 사용된다.
FTP 에 의한 파일 업로드와 같이, 리퀘스트 중에 포함된 엔티티를 리퀘스트 URI 로 지정한 곳에 보존하도록 요구한다.
다만 HTTP/1.1 PUT 에는 인증 기능이 없어 누구든지 파일 업로드가 가능하다는 보안 문제가 있어서 일반적인 웹사이트에서는 사용하지 않는다. 웹 애플리케이션 등에 의한 인증 기능과 짝을 이루는 경우나, REST 와 같이 웹끼리 연계하는 설계의 경우에 사용하는 경우가 있다.
관련해서 PUT 은 파일의 전체를 업데이트 한다면, PATCH 는 지정된 리소스에 대해서만 업데이트 하는 메소드이다.
HEAD : 메시지 헤더 취득
HEAD 메소드는 GET 과 같은 기능이지만 메시지 바디는 돌려주지 않는다.
URI 유효성과 리소스 갱신 시간을 확인하는 목적 등으로 사용된다.
DELETE : 파일 삭제
DELETE 메소드는 파일을 삭제하기 위해 사용된다.
PUT 메소드와는 반대로 동작하며, 리퀘스트 URI 로 지정된 리소스의 삭제를 요구한다.
DELETE 또한 PUT 과 마찬가지로 HTTP/1.1 에서 인증기능이 없어 일반적인 웹사이트 에서는 사용되지 않으며, 마찬가지로 웹 애플리케이션 등에 의한 인증 기능과 짝을 이루는 경우나, REST 와 같이 웹끼리 연계하는 설계의 경우에 사용하는 경우가 있다.
OPTIONS : 제공하고 있는 메소드 문의
OPTIONS 메소드는 리퀘스트 URI 로 지정한 리소스가 제공하고 있는 메소드를 조사하기 위해 사용된다.
TRACE : 경로 조사
TRACE 메소드는 Web 서버에 접속해서 자신에게 통신을 되돌려 받는 루프백(loop-back) 을 발생시킨다.
리퀘스트를 보낼 때에 "Max-Forwards" 라는 헤더 필드에 수치를 포함시켜 서버를 통과할 때마다 해당 수치를 줄여나간다.
수치가 0이 된 곳을 끝으로, 리퀘스트를 마지막으로 수신한 곳에서 상태 코드 200 OK 리스폰스를 되돌려 준다.
클라이언트는 TRACE 메소드를 사용함으로써, 리퀘스트를 보낸 곳에 어떤 리퀘스트가 가공되어 있는지 알 수 있다.
이것은 프록시 등을 중계하여 오리진(origin) 서버에 접속할 때 그 동작을 확인하기 위해 사용되고 있다.
CONNECT : 프록시에 터널링 요구
CONNECT 메서드는 프록시에 터널 접속을 요구하여, TCP 통신을 터널링 시키기 위해서 사용된다.
주로 SSL 이랑 TLS 등의 프로토콜로 암호화 된 것을 터널링 시키기 위해서 사용된다.
'Stg' 카테고리의 다른 글
HTTP 상태코드 (0) | 2023.04.11 |
---|---|
Persistent connection / Stateless (0) | 2023.04.06 |
HTTP (0) | 2023.04.04 |
URI 와 URL (0) | 2023.04.01 |
IP / TCP / DNS (0) | 2023.03.30 |
댓글