멱등성 (Idempotency)과 안전한 메서드 (Safe Methods)의 비교
멱등성과 안전한 메서드는 HTTP 메서드의 중요한 특성으로, 서버의 상태 변화와 관련이 있다.
멱등성(Idempotency)은 동일한 요청을 여러 번 수행해도 서버의 상태가 동일하게 유지되는 특성을 말한다.
즉, 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 유지된다.
안전한 메서드(Safe Methods)는 서버의 상태를 변경하지 않는 HTTP 메서드를 의미한다.
이는 주로 리소스를 조회하는 용도로 사용되며, 서버의 데이터나 상태를 수정하지 않는다.
특성 | 멱등성 | 안전한 메서드 |
---|---|---|
정의 | 동일한 요청을 여러 번 수행해도 서버의 상태가 같음 | 서버의 상태를 변경하지 않음 |
서버 상태 변경 | 변경 가능, 단 여러 번 수행해도 결과가 같아야 함 | 변경하지 않음 |
해당하는 HTTP 메서드 | GET, HEAD, PUT, DELETE, OPTIONS, TRACE | GET, HEAD, OPTIONS |
관계 | 모든 안전한 메서드는 멱등성을 가짐 | 안전한 메서드는 항상 멱등성을 가짐 |
주요 목적 | 네트워크 오류 시 안전한 재시도 가능 | 서버 상태 보호 및 캐싱 최적화 |
예시 | PUT: 리소스 대체, 여러 번 실행해도 결과 동일 | GET: 리소스 조회, 서버 상태 변경 없음 |
멱등성을 가진 메서드가 반드시 안전한 것은 아니다.
예를 들어, PUT과 DELETE는 멱등성은 있지만 안전하지 않다.
반면, 모든 안전한 메서드는 멱등성을 갖는다.