🐢 꼬부기 LV.1 | 개념•기초/💧물대포(핵심개념)

HTTP 메서드의 종류와 특징

서화 2026. 3. 26. 10:39

HTTP 메서드란?

클라이언트가 서버에 무엇을 하고 싶은지 알리는 동사다

GET(조회),POST(생성),PUT(전체 교체),PATCH(부분 수정),DELETE(삭제)로 REST API의 CRUD 연산을 표현한다

안전한(safe) 메서드는 서버상태를 변경하지 않기 때문에 브라우저가 자유롭게 캐시하거나 프리페치 할수 있다 또한 동일요청을 여러번 보내도 결과가 같은 것멱등한(Idempotent) 메서드라고한다 

캐시 : 자주 사용하는 데이터나 계산 결과의 복사본을 임시로 저장하여, 원본 저장소보다 빠르게 데이터를 가져오는 고속 데이터 저장소

프리페치 : 부팅 과정에서 필요한 파일이나 특정 프로그램 실행에 필요한 데이터를 미리 저장해 두었다가, 실행 시 이를 메모리에 빠르게 불러와 성능을 향상시키는 역할

PUT은 리소스를 완전히 교체하고 PATCH일부만수정한다 그리고 POST는 멱등하지 않기 때문에 결제 주문등 중요작업은 Idempotent -Key 헤더로 중복을 방지한다

HTTP 메서드로 요청하기

HTTP 메서드 요청은 Method(메서드),URL(리소스),본문(body)  3가지로 구성된다 

URL은 어디에 요청을하는지 나타내는것이고 메서드는 무엇을 하고싶은지를 나타낸다

메서드 중요속성 2가지 - 안정성(Safe)과 멱등성(Idempotent)

이 두가지가 메서드에 어떻게 적용되는지 표로 정리해보았다

메서드명 안정성 멱등성 상태변경
GET O O  
POST X X 리소스 생성/처리
PUT X O 리소스 전체 교체
PATCH X 조건부 리소스 부분 수정
DELETE X O 리소스 삭제
HEAD
(헤더만 조회
본문없음)
O O  
OPTIONS
(지원 메서드 조회)
O O  

PUT VS PATCH

PUT은 전체 교체,PATCH는 부분 교체라고 했다 예시를 통해 차이점을 확인해 보자

예시)

  • ID : 55
  • TITLE : HTTP 메서드 공부
  • BODY : PUT과 PATCH의 차이

여기서 PUT을 사용하여 제목을 HTTP로 변경한다고 해보자 그러면 결과는 바디는 사라지고

  • ID : 55
  • TITLE : HTTP

만 남게 되는것이다

여기서 바디가 사라진이유는 PUT이 전체를 교체하기 때문이다 따라서 바디가 남길원했다면 수정할 내용을 적어주던가 원래 상태 그대로를 다시 입력해주었어야한다

반대로 PATCH는 내가 제목을 HTTP로 변경한다고 했을때

  • ID : 55
  • TITLE : HTTP
  • BODY : PUT과 PATCH의 차이

이렇게 제목이 있는 부분만 바뀐것을 확인할수 있다

REST API - 메서드와 URL 조합

RESTful API의 핵심은 리소스 중심 URL  + 메서드로 동작을 표현하는것이다 URL에 동사는 포함 될 수 없다

각요청에 대한 성공 응답 코드도 메서드에 따라 달라진다

  • GET -> 200 OK
  • POST -> 201 Created  + Location 헤더
  • DELETE -> 204 No Content

 안정성과 멱등성의 차이가 뭔가요?

안정성과 멱등성은 서로 독립된 개념이지만 연관되어 있다 안전한 메서드는 반드시 멱등하기 때문이다 그러나 멱등해도 안전하지 않을 수 있다(PUT,DELETE 사용시)

POST가 멱등하지 않은 이유를 주문내역을 예시로 들어서 설명해보자

주문내역을 POST에 두번 보내면 주문이 두개 생긴다  따라서 이를 해결하려면 Idempotent -Key 헤더를 사용하는데 여기서 동일한 키로 재시도 하면 서버가 중복을 감지해서 한번만 처리한다

이 키 안에는 고유식별자가 들어있기 때문에 중복을 감지하고 처리가 가능하다