[JS] HTTP 메소드 (GET, POST, PUT, DELETE, PATCH)

2024. 1. 28. 16:42개발/프론트엔드 개념

HTTP 메소드란

클라이언트가 웹 서버에게 사용자 리퀘스트의 목적이나 종류를 알리는 수단이다.

Request의 종류

  • 데이터 조회 GET
  • 데이터 추가 POST
  • 데이터 수정 PUT
  • 데이터 삭제 DELETE

모든 Request는 Head와 Body로 나뉜다.

  • Head : Reqest에 대한 부가 정보 (메서드)
  • Body : 실제 데이터를 담는 부분 (data)

데이터를 추가하는 POST, 수정하는 PUT은 Body 부분의 데이터가 필요하지만 단순히 조회하는 GET과 DELETE는 Body 부분이 필요로 하지 않다.

GET method

  • 데이터를 읽거나 검색할 때 사용
  • 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)를 통해서 전달
  • 데이터 전달 가능하지만 권장하지 않음
  • 불필요한 리퀘스트를 제한하기 위해 리퀘스트가 캐시될 수 있음
  • 서버의 데이터 변경이 일어나지 않음
  • 멱등성을 가짐 (= GET으로 동일한 리퀘스트를 반복하여 전송하더라도 동일한 응답이 돌아옴)

POST method

  • 새로운 리소스를 생성하거나 기존 리소스를 수정하기 위해 서버에 데이터를 보낼 때 사용
  • Request의 Body 부분을 통해 서버로 데이터 전달
  • 일반적으로 캐시되지 않음
  • 리소스 생성할 경우, 이미 리소스가 있더라도 새로운 리소스를 생성
  • 서버의 데이터 변경이 일어날 수 있음
  • 멱등성을 가지지 않음 (= POST으로 동일한 리퀘스트를 반복하면 동일한 응답을 보장할 수 없음)

PUT method

  • 데이터 생성 및 수정하기 위해 사용 (POST와 동일한 역할)
  • 기존에 리소스가 있으면 대체, 없으면 추가
  • 데이터 생성한다는 점에서 POST와 공통점이 있지만 PUT은 클라이언트가 리소스 위치를 식별해서 URL 지정
  • 멱등성을 가짐

DELETE method

  • 지정한 기존 리소스 제거
  • 서버의 데이터를 삭제하는 변경
  • 멱등성을 가짐

PATCH method

  • 리소스 부분 변경
  • 지원 안하는 서버에서는 POST 메서드 사용
  • PUT은 해당 리소스 전부 수정, PATCH는 해당 리소스 일부분만 수정