이번에는 HTTP 메서드에 대해서 정리를 해 보았다. HTTP 메소드의 종류는 총 9가지가 있으며, 이 중 주로 쓰이는 메소드는 5가지에 대해서 정리하였다.
HTTP 메서드
HTTP 메서드는 클라이언트와 서버 사이의 데이터를 전송하는 방식으로, 서버에서 수행해야 할 동작을 정의하는 메서드이다.
멱등성(Idempotence)
동일한 요청을 한번 보내는 것과, 여러번 보내는 것이 서로 동일한 효과를 지니고, 서버의 상태도 동일하게 남을 때 해당 HTTP Method 가 멱등성을 갖는다고 이야기한다. 멱등성의 핵심은 "요청에 대한 서버의 상태가 항상 같은가?" 이다.
안전한 메서드 (Safe Methods)
안전한 메소드란, 서버의 상태를 변경시키지 않는 HTTP 메소드를 의미한다. GET, OPTIONS, HEAD 와 같이 조회에 사용되는 메소드를 안전하다고 이야기할 수 있다. 모든 안전한 메소드는 멱등성을 갖지만, 그 역은 성립하지 않는다.
GET
- 데이터를 조회하는 메서드이다.
- 조회할 때 POST를 사용해도 되지만 GET을 사용할 경우에는 캐싱이 가능하므로 더 유리하다.
- 정적 데이터인 경우에는 쿼리 파라미터 없이 리소스 경로로 조회가 가능하고 동적 데이터인 경우에는 쿼리 파라미터를 사용하여 조회를 한다.
POST
- 데이터를 생성/처리하는 메서드이다.
- 메시지 바디(body)를 통해 서버로 요청 데이터 전달하면 서버는 요청 데이터를 처리하여 업데이트한다.
- 만일 데이터를 GET 하는데 있어, JSON으로 조회 데이터를 넘겨야 하는 애매한 경우 POST를 사용 한다.
Content-Type 헤더 종류
- Content-Type: application/x-www-form-urlencoded
- Form의 내용을 HTTP 메시지 바디를 통해서 전송(key=value, 쿼리 파라미터 형식)한다.
- application/json
- TEXT, XML, JSON 데이터 전송 시 사용한다.
PUT
- 데이터를 대체(수정)하는 메서드이다.
- 만일 요청 메세지에 리소스가 있으면 덮어쓰고, 없으면 새로 생성한다.
PATCH
- 데이터를 일부 부분을 변경하는 메서드이다.
- 만일 PATCH를 지원하지 않는 서버에서는 대신에 POST를 사용할 수 있다.
DELETE
참고 문서 및 링크