ZeroBase/CS

HTTP 멱등성

Red_Horse 2025. 8. 6. 17:13

멱등성이란 동일한 요청을 여러 번 보내더라도 결과가 동일한 상태를 유지하는 성질을 말합니다.
즉, 서버의 리소스 상태가 첫 요청 이후 변하지 않음.

  • 재시도 안전성: 네트워크 오류 등으로 인해 요청이 여러 번 전송되는 상황에서 멱등한 메서드는 서버의 상태를 의도하지 않게 바꾸지 않음
  • 캐싱 및 최적화 가능: 클라이언트나 중간 프록시 서버가 요청을 재전송해도 안정적

HTTP 메서드별 멱등성

메서드 멱등성 설명
GET O 리소스를 가져옴. 여러 번 요청해도 서버 상태 불변 (📌 안전한 메서드)
HEAD O GET과 동일하지만 응답 본문 없이 헤더만 반환 (📌 안전한 메서드)
OPTIONS O 지원되는 메서드나 통신 옵션 확인용. 상태 변화 없음 (📌 안전한 메서드)
PUT O 리소스를 전체 대체. 동일 데이터로 반복 요청 시 상태 불변
DELETE O 리소스를 삭제. 이미 삭제된 리소스를 다시 삭제해도 상태 변화 없음

멱등하지 않은 메서드

메서드 멱등성 설명
POST X 리소스 생성에 사용. 반복 요청 시 여러 개의 리소스 생성 가능
PATCH (경우에 따라) 부분 수정. 값 증가, 배열 추가 등은 멱등하지 않음
단, 고정값으로 덮어쓰기는 멱등하게 구현 가능
 

안전한 메서드

  • 서버 상태를 절대 변경하지 않는 메서드
  • GET, HEAD, OPTIONS는 안전(safe)하고 멱등(idempotent)
메서드 멱등성 안정성 설명
GET O O 리소스 조회
HEAD O O 헤더만 조회
OPTIONS O O 통신 옵션 조회
PUT O X 리소스 전체 대체
DELETE O X 리소스 삭제
POST X X 리소스 생성
PATCH X X 리소스 일부 수정 (조건부 멱등 가능)

 

 

 

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

CSRF(Cross-Site Request Forgery)  (3) 2025.08.08
XXS(Cross-Site Scripting)  (0) 2025.08.07
네이글 알고리즘  (0) 2025.08.05
CORS  (1) 2025.08.04
이더넷 프레임  (2) 2025.08.04