Network

HTTP 메서드란? 멱등성

경딩 2025. 4. 1. 13:15

http 메서드의 기본 개념을 알아보고 주요메서드인 GET, POST, PUT, DELETE, PATCH 등의 역할과 차이에 대해 알아보자.

실무에서 적절한 HTTP 메서드를 선택해보자. 또한 멱등이라는 개념을 잘 이해하는 것이 중요하다.

API 설계 뿐 아니라 IO(특히 네트워크) 가 포함된 실행흐름을 설계할 때 꼭꼭 신경써야한다.

 

 

HTTP 메서드란?

HTTP 메서드를 클라이언트가 서버에 요청을 보낼 때 수행할 동작을 지정하는 방식

image , 영상, 음성, html, text 등 우리가 생각할 수 있는 모든 데이터를 바이너리로 전송가능하다.

http 은 요청과 응답 메시지 구조가 약간 다르다.

HTTP 요청과 응답 메시지는 시작라인, 헤더, message body 부분으로 이루어져 있다.

 

요청메시지

  • 요청메시지의 시작라인 : get + path + http version 정보
  • 헤더
  • 공백라인
  • 전송할 데이터가 없으면 한 줄 공백후 끝. 있으면 바디 넣어주기.

응답 메시지

  • 응답메시지의 시작라인 : http version 정보 + 응답 코드
  • 헤더
  • 공백라인
  • 필요한 http 응답 메시지가 들어옴

 

HTTP 메서드 종류

 

현업에서는  API 설계시 가장 중요한 것이 리소스 식별이다.

Rest 설계 규칙은 URI 는 정보의 자원만 표현해야 하며, 자원의 상태와 행위는 HTTP Method 에 명시하는 것을 말한다.

 

주요 메서드

GET : 리소스 조회

POST : 요청 데이터 처리, 주로 등록에 사용

PUT : 리소스를 대체, 해당 리소스가 없으면 생성

PATCH : 리소스 부분 변경

DELETE: 리소스 삭제

 

기타 메서드 

HEAD : GET 과 동일하지만 메시지 부분을 제외하고,상태 줄과 헤더만 반환

OPTIONS: 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS 에서 사용) - 참고로만 알아두기

CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정 - 거의 사용안함

TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트 수행 - 거의 사용안함

 

"HTTP 메서드에 대해 설명해 주세요."

HTTP 메서드는 클라이언트가 서버에 요청을 보낼 때 사용됩니다.

  • GET: 리소스를 조회할 때 사용되며, 캐싱이 가능합니다.
  • POST: 새로운 리소스를 생성하거나 프로세스를 처리할 때 사용됩니다.
  • PUT: 리소스를 전체 수정할 때 사용되며, 여러 번 요청해도 같은 결과가 유지되므로 멱등성을 가집니다.
  • PATCH: 리소스의 일부를 수정할 때 사용되며, 일반적으로 비멱등적일 수 있습니다.
  • DELETE: 리소스를 삭제할 때 사용되며, 멱등성을 가집니다.

또한, GET은 캐싱이 가능하지만, POST, PUT, PATCH, DELETE는 일반적으로 캐싱되지 않습니다.

멱등한 메서드(GET, PUT, DELETE)는 동일한 요청을 여러 번 보내도 결과가 변하지 않지만, 비멱등한 메서드(POST, PATCH)는 요청을 반복하면 서버의 상태가 변할 수 있습니다.

RESTful API를 설계할 때는 각 메서드의 용도와 특징을 고려하여 적절하게 사용하는 것이 중요합니다.

 

POST와 PUT의 차이점은?"

POST는 새로운 데이터를 생성하고, PUT은 기존 리소스가 있으면 대체 (덮어버림), 없으면 생성

또한, PUT은 같은 요청을 여러 번 보내도 결과가 같지만(멱등성), POST는 호출할 때마다 새로운 데이터가 생성될 수 있습니다.