HTTP Methods

  • HTTP Method 는 client 가 server 에게 요청하는 “동작” 을 의미한다.

종류

Common methods

  • GET: 특정 데이터의 표현(데이터 자체가 아닌 데이터에 대한 정해진 형식의 표현)를 얻기 위하여 사용하는 메소드
    • 특징1: 안전한 (safe) 메소드로 분류된다
    • 특징2: (확실하지는 않으나) Request body 를 사용할 수 없고 path 과 query 으로만 조회하고자 하는 데이터를 특정해야 한다.
      • 이때문에 민감한 정보를 서버에 보낼 때에는 권장되지 않는다.
    • 특징3: 캐싱을 사용하기 때문에 캐싱을 사용하지 않는 요청에는 적합하지 않음
  • POST: 특정 자원에 대한 데이터를 서버에 저장하기 위해 사용하는 메소드
    • 특징1: 서버의 상태(저장 상태)가 바뀐다.
    • 특징2: 따라서 서버에 부작용을 미칠 가능성이 있다.
    • 특징3: 멱등성을 보장하지 않는다.
  • PUT: 요청한 자원에 대한 데이터를 전부 교체 (replace, overwrite) 한다. 자원을 찾지 못하면 새로 생성한다.
  • DELETE: 요청한 자원을 삭제한다.
  • PATCH: 요청한 자원에 대한 데이터를 부분적으로 수정한다.

Uncommon methods

  • HEAD: GET 과 동일하지만, Response body 가 제외된다. 즉, GET 과 동일하지만 Response header 만을 얻고자 할 때 사용된다.
  • CONNECT: 요청한 자원에 대한 터널 (?) 을 생성한다.
  • OPTIONS: 요청한 자원에 대한 통신 옵션을 제공한다.
    • 즉, 해당 자원에 대해 사용할 수 있는 HTTP Method 들을 조회하는데 사용된다.
  • TRACE: 요청한 리소스에 대해 loop-back 테스트를 진행한다.