HTTP 메소드란

서버에 임무를 부여

서버에 임무를 부여 할 수 있습니다.
주어진 메소드에 해당하는 일을 한다고 생각하면 됩니다.

클라이언트에 지시를 내림

클라이언트에서 리퀘스트 전달 시 메소드에따른 지시를 내릴수 있습니다.
이는 서버에서 부여한 임무에 해당할 경우 동작합니다.

HTTP메소드의 종류

메소드설명
GET리소스 취득
POST엔티티 바디 전송
PUT파일 전송
HEAD메시지 헤더 취득
DELETE파일 삭제
OPTIONS서포트하고 있는 메소드 문의
TRACE경로 조사
CONNECT프록시에의 터널링 요구

GET - 리소스 획득

GET메소드는 리퀘스트 URI로 식별된 리소스를 가져올 수 있도록 요구합니다.
가져올 리소스 내용은 지정된 리소스를 서버가 해석한 결과입니다.

POST - 엔티티 전송

POST 메소드는 엔티티를 전송하기 위해서 사용됩니다.
GET으로도 엔티티를 전송할 수 있지만 구분을 위하여 POST를 사용합니다.
GET과 기능이 비슷하지만 리스폰스에 의한 엔티티를 획득하는 것만이 목적은 아닙니다.

PUT - 파일전송

파일 전송을 위하여 사용됩니다.
FTP에 의한 파일 업로드와 같이 리퀘스트중에 포함된 엔티티를 리퀘스트 URI로 지정한 곳에 보존하도록 요구합니다.
단 인증기능이 없어서 누구든지 파일을 업로드가능하다는 보안문제가 있어서 일반적인 웹사이트에서는 사용하지 않습니다.
웹 애플리케이션 등에 의한 인증 기능과 짝을 이루는 경우나 REST(Respresentational State Transfer)와 같이 웹 깨리 연계하는 설계양식을 사용할때 주로 사용됩니다.

HEAD - 메시지 헤더 취득

GET과 같은 기능이지만 메시지 바디는 돌려주지 않습니다.
URI유효성과 리소스갱신 시간을 확인할때 사용됩니다.

DELETE - 파일 삭제

파일을 삭제하기 위하여 사용됩니다.
PUT과 같이 웹 애플리케이션 등에 의한 인증 기능과 짝을 이루는 경우나 REST와 같이 웹 깨리 연계하는 설계양식을 사용할때 주로 사용됩니다.

OPTIONS - 제공하고 있는 메소드 문의

리퀘스트 URI로 지정한 리소스가 제공하고 있는 메소드를 확인 할 수 있습니다.

TRACE - 경로조사

리퀘스트를 보낸곳에 어떤 리퀘스트가 가공되어있는지 등을 조사할 수 있으나
거의 사용되지 않으며, 크로스 사이트 트레이싱(XST)와 같은 공격을 일으키는 보안상 문제로인하여 보통 사용되고 있지 않습니다.

CONNECT - 프록시에 터널링 요구

프록시에 터널접속 확립을 요청합니다. TCP 통신을 터널링 시키기 위해서 사용됩니다.
주로 SSL과 TLS등의 프로톹콜로 암호화된 것을 터널링 시키기 위해서 사용하고 있습니다.

마치며

HTTP메소드의 경우 RestFul한 API를 사용하거나 하는 경우에 실제로 매우 자주 이용되는 요소입니다.
다음시간에는 HTTP 상태코드에 대해서 알아보도록 하겠습니다.