본문 바로가기
CS/Http

HTTP 메서드

by HwaHyun 2023. 7. 16.

HTTP 메서드란, 클라이언트가 서버에게 요청할 때 기대하는 행동을 말한다.

 

HTTP 메서드 종류

주요메서드

  • GET : 리소스 조회
  • POST : 요청 데이터 처리, 주로 등록에 사용
  • PUT : 리소스를 대체, 해당 리소스가 없으면 생성
  • PATCH : 리소스 부분 변경
  • DELETE : 리소스 삭제

기타 메서드

  • HEAD : GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환
  • OPTIONS : 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)
  • CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정
  • TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행

 

GET

  • 리소스 조회
  • 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)를 통해서 전달
  • 메시지 바디를 사용해서 데이터를 전달할 수 있지만, 지원하지 않는 곳이 많아서 권장하지 않음

 

POST

  • 요청 데이터 처리
  • 메시지 바디를 통해 서버로 요청 데이터 전달
  • 서버는 요청 데이터를 처리
    • 메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행한다.
  • 주로 전달된 데이터로 신규 리소스 등록, 프로세스 처리에 사용

 

PUT

  • 리소스를 대체
    • 리소스가 있으면 대체
    • 리소스가 없으면 생성
    • 데이터 자체를 덮어버림 (Replace)
  • 클라이언트가 리소스를 식별
    • 클라이언트가 리소스 위치를 알고 URI 지정
    • POST와 차이점

 

주의!

PUT 메서드는, 리소스를 아예 대체 해버린다.

예를들어 아래의 데이터에

{
username : "kim",
age: 15
}

해당 바디를 담은 PUT 메서드를 전송하게되면

{
age: 20
}

결과는 

{
age: 20
}

과 같이 username 필드가 아예 없어 지게된다. 해당 부분을 각별히 주의하자

 

 

PATCH

  • 리소스 부분변경

위의 PUT과 다르게 아래의 데이터에

{
username : "kim",
age: 15
}

아래의 바디를 담은 PATCH 메서드를 전송하게 되면

{
age: 20
}

결과는 아래와 같이 수정한 값만 반영이 되고 나머지는 유지된다.(부분수정 가능)

{
username : "kim",
age: 20
}

 

DELETE

  • 리소스를 삭제한다.

 

일부 HTTP에서는 PATCH를 지원하지 않는 경우가 있다. 

이런 경우에는 POST로 대체하여 사용하면 된다.

 

'CS > Http' 카테고리의 다른 글

HTTP 상태코드  (0) 2023.07.18
HTTP 메서드의 속성  (0) 2023.07.17
HTTP 특징  (0) 2023.07.15
HTTP 기본  (0) 2023.07.14
URI, URL, URN란 ?  (0) 2023.07.13