HTTP Methods
HTTP Method는 서버에게 무엇을 해야할지 알려주는 HTTP 문법 요소이다. HTTP Request 메시지에서 작성해야 한다.
HTTP 요청(Request) 메시지는 메소드를 포함해야만 한다. 메소드를 통해 서버는 자신이 어떤 작업을 해야하는지 알 수 있기 때문이다. HTTP/1.1에는 7개의 메소드가 있으며 별도로 확장 메소드를 사용할 수 있다.
GET
일반적으로 가장 많이 사용하는 메소드이다. GET 메소드는 서버에 리소스를 요청하는 메소드이다. Accept 헤더 필드를 통해 어떤 타입의 리소스를 받을 수 있는지 알려주는 것도 가능하다.
HEAD
HEAD 메소드는 GET 메소드와 같은 역할을 하지만 HTTP 응답(Response)에는 본문이 없고 헤더만을 돌려준다. GET과 달리 아래의 상황에서 사용할 수 있을 것이다.
- 리소스의 타입만을 알고 싶을 때
- 응답의 상태 코드를 통해 리소스가 존재하는지 알고 싶을 때
- 헤더를 통해 리소스가 변경되었는지 여부를 알고 싶을 때
GET 메소드와 HEAD 메소드의 HTTP 응답은 본문이 없다는 것 외에는 항상 일치해야 한다.
PUT
PUT 메소드는 GET과 달리 서버에 문서를 쓰는 기능을 가지고 있다. 서버가 요청의 본문을 가지고 URL의 이름대로 새 문서를 만들거나, 이미 URL이 존재한다면 본문을 사용해서 교체한다.
PUT 메소드는 서버의 데이터를 변경하기 때문에 ID, 비밀번호 인증 등의 보안 요소가 필요하다.
POST
POST 메소드는 서버에 입력 데이터를 전송한다. PUT 메소드와 다른 점은 PUT 메소드는 리소스에 데이터를 입력하기 위한 메소드이고 POST 메소드는 서버에 데이터를 보내기 위한 메소드이다. 서버는 이 데이터를 활용해 새로운 HTTP 응답을 생산해낸다.
TRACE
클라이언트가 어떤 요청을 할 때 그 요청은 [프락시, 게이트웨이 등의 애플리케이션]을 통과할 수 있다. 이 과정에서 원래 HTTP 요청은 다른 요청으로 변경될 수 있는데 TRACE 메소드는 이 변화는 알아볼 수 있다.
TRACE 메소드로 인한 HTTP 응답에는 자신이 받은 요청 메시지가 본문에 들어간다. 클라이언트는 자신이 전송한 HTTP 요청과 HTTP 응답에 있는 메시지를 서로 비교할 수 있게 된다. 그렇기 때문에 TRACE 메소드는 진단을 위해 사용할 수 있다.
TRACE 메소드로는 HTTP 요청에 본문을 넣을 수 없다.
OPTIONS
OPTIONS 메소드는 서버에 여러 가지 종류의 지원 범위에 대해 물어본다. 서버에 특정 리소드에 대하여 어떤 메소드가 지원되는지 물어볼 수 있다. HTTP 응답에는 Allow 헤더 필드에 지원 가능한 메소드 리스트가 담겨서 온다.
DELETE
DELETE 메소드는 서버의 리소스를 삭제하는 기능을 한다. 하지만 서버는 DELETE 메소드의 수행을 보장하지 않는다. HTTP는 서버가 클라이언트에게 알리지 않고 요청을 무시할 수 있기 때문이다.