멱등성이란 동일한 요청을 여러 번 보내더라도 결과가 동일한 상태를 유지하는 성질을 말합니다.
즉, 서버의 리소스 상태가 첫 요청 이후 변하지 않음.
- 재시도 안전성: 네트워크 오류 등으로 인해 요청이 여러 번 전송되는 상황에서 멱등한 메서드는 서버의 상태를 의도하지 않게 바꾸지 않음
- 캐싱 및 최적화 가능: 클라이언트나 중간 프록시 서버가 요청을 재전송해도 안정적
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 |