[HTTP] Method

RESTful API를 위한 Http method의 이해

Http Method 의 종류

  • Http 메소드는 여러개 존재합니다. 그 중 가장 보편적으로 사용중인 4가지의 메소드에 대해 정리하겠습니다.
  • Http 프로토콜은 기본 CRUD에 해당하는 POST, GET, UPDATE, DELETE 메소드를 제공합니다.
  1. GET
  • GET 은 말 그대로 무엇인가를 얻어올 때 사용하는 메소드입니다. (read-only)
  • 웹 서버에 요청하여 원하는 값 또는 데이터를 가지고 오는데 사용합니다.
  • /notice/1GET 으로 요청하면, 게시판 글 중 id가 1인 게시글을 가지고오는 요청을 처리하게 됩니다.
  • GET 은 몇번을 요청해도 값이 변하지 않기 때문에 repeatable, idempotent1 메소드라고도 합니다.
  1. DELETE
  • DELETE 는 특정 값을 삭제하는 요청에 사용하는 요청입니다.
  • 웹서버 또는 데이터 베이스의 값을 삭제하는 요청에 사용됩니다.
  • /notice/1DELTE 로 요청하면, 게시판 글 중 id가 1인 게시글을 삭제하는 요청을 처리하게 됩니다.
  • DELTE 를 한번 처리하면 데이터가 삭제되고, 반복해서 요청을 하면 이미 값이 삭제되었기 때문에 아무일도 일어나지 않는다.
  • 따라서, 여러번 요청해도 문제가 발생하지 않기 때문에 DELETE 역시 repeatable, idempotent 메소드입니다.
  1. PUT
  • PUT 은 CRUD 중 UPDATE 에 속하는 메소드로 상태를 갱신하는데 사용합니다.
  • 이미 존재하는 기존의 데이터를 갱신(updata)하는 요청에 사용합니다.
  • /notice/1을 메세지와 함께 PUT 으로 요청하면 id가 10인 게시글의 데이터를 요청 메세지로 교체하게 됩니다.
  • 같은 요청을 100번 반복해도 메세지는 변하지 않기 때문에 마지막의 메세지 값은 갱신을 원하는 값과 정확히 일치합니다.
  • 따라서, 같은 요청을 여러번해도 값을 갱신하는 것에는 문제가 없기 때문에 PUT 역시 repeatable, idempotent 메소드 입니다.
  1. POST
  • POST 메소드는 특정 값을 생성하기 위해 사용되는 메소드 입니다.
  • 원하는 데이터를 데이터 베이스나 파일에 저장하기 위해 사용하는 메소드 입니다.
  • POST/notice 와 같이 파라미터를 포함하지 않고 요청하게 됩니다.
    • 실제 생성을 원하는 데이터는 요청의 header 에 담겨있습니다.
  • 같은 요청을 여러번 반복시킨다면 요청한 횟수만큼 데이터를 생성합니다.
    1. /notice 는 id = 10 인 게시글을 생성한다.
    2. 해당 요청이 반복된다면 /notice 요청은 id = 11 인 게시글을 또 생성하게 된다.
    3. 만약 요청이 10번 반복된다면 데이터는 같지만 id는 다른 10개의 데이터가 생성되게 됩니다.
  • 따라서 POSTnon-repeatable, non-idempotent 메소드 입니다.
  1. idempotent : 멱등법칙, 멱등, 여러번 처리해도 결과가 같은 법 

Comments