본문 바로가기

cs(with 매일메일)

[251015수] HTTP 메서드에서 멱등성이란 무엇인가요?

멱등성 : 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질

HTTP메서드의 멱등성 : 동일한 요청을 여러번 보내도 서로 동일한 효과를 지니며, 서버의 상태도 동일하게 남는 경우

> 멱등한 메서드 : GET, HEAD, PUT, DELETE, TRACE, OPTIONS

 

프로젝트에서 멱등성을 활용할 수 있는 경우는? 

모종의 이유로 커넥션이 끊어졌을때, 멱등성은 클라이언트가 동일한 요청을 다시 보내도 되는지 쉽게 파악할 수 있다. 

예를 들어, 

사용자가 결제 타이밍에 정상 응답을 받지 못할 경우 > 멱등하지 않은 API는 결제 성공 여부를 수동으로 파악

                                                                              > 멱등한 API는 안심하고 여러번 요청 가능 

 

 

 

-----

🌐 1. REST API에서 주로 사용하는 HTTP 메서드

메서드설명REST 의미비고
GET 리소스를 조회 조회(Read) 서버의 상태나 데이터를 가져올 때 사용
POST 리소스를 생성 생성(Create) 보통 새 리소스를 만들 때 사용
PUT 리소스를 전체 수정 수정(Update) 리소스를 전체 덮어씌움 (idempotent)
PATCH 리소스를 일부 수정 수정(Update) 리소스의 일부분만 수정
DELETE 리소스를 삭제 삭제(Delete) 리소스 제거

💡 idempotent(멱등성): 동일 요청을 여러 번 해도 같은 결과가 나오는 성질 → GET, PUT, DELETE는 멱등적입니다.


🛠️ 2. REST API 외에 자주 사용되지는 않지만 중요한 HTTP 메서드

✅ HEAD

  • 설명: GET과 동일하지만 응답 본문(body)은 없음
  • 용도: 리소스의 메타데이터 확인 (예: Content-Length, Last-Modified 등)
  • 예시: 다운로드 전에 파일 크기를 확인하고 싶을 때

🔍 TRACE

  • 설명: 서버에서 요청을 그대로 반사(loopback)하여 응답
  • 용도: 클라이언트와 서버 사이의 통신 경로를 디버깅할 때
  • 주의: 보안상 위험할 수 있어서 대부분 서버에서 비활성화됨

⚙️ OPTIONS

  • 설명: 해당 리소스에서 지원하는 HTTP 메서드 목록 반환
  • 용도: 서버가 어떤 메서드를 허용하는지 확인할 때
  • 예시: 브라우저에서 CORS 사전 요청(Preflight Request) 시 사용