728x90
- GET: 멱등성과 안전성이 모두 있다.
- POST: 멱등성과 안전성이 모두 없다.
- PUT, DELETE: 멱등성은 있지만 안전성은 없다.
- PATCH: 멱등성과 안전성이 없다.
멱등성 이란 ?
멱등성은 같은 요청을 여러 번 보내도 같은 결과가 나오는 특성을 말한다.
- Post 요청의 경우
같은값을 요청시 항상 새로운 리소스가 생성 되기 때문에 멱등성이 없다고 할 수 있다.
*보기엔 응답값이 같아도 실제로는 리소스가 추가 되기 때문에 안정성과 멱등성이 없다.
- Get 요청의 경우
같은값으로 조회시 항상 같은 응답값이 나온다.
- Put 요청의 경우
클라이언트가 리소스 A 를 PUT 메서드로 업데이트하면 해당 리소스는 변경되어 A'로 대체된다.
이후에 같은 요청을 다시 보내더라도, 서버는 이전과 동일한 리소스 A'를 반환하게 된다.
따라서, PUT 메서드는 멱등성을 가지고 있다고 할 수 있다.
안정성 이란 ?
안전성은 요청을 보내더라도 서버의 상태를 변경시키지 않는 특성을 말한다.
서버의 상태가 변경 됏다. 예시
- 새로운 리소스 추가 (POST)
- 기존 리소스 업데이트 (PUT 또는 PATCH)
- 리소스 삭제 (DELETE)
- 세션 생성 (로그인) 등
HTTP 메서드의 멱등성이라는 것은 HTTP 스펙의 규약일 뿐이기에 꼭 지켜야하는 것은 아니다. 다만, 이러한 규약들을 제대로 지키지 않는다면 해당 API의 동작을 유추하기 힘들어질 것이다. 이는 원치않는 동작을 야기할 가능성이 크기에, 가능한 규약을 지켜 그에 맞는 동작을 하도록 구현하는 게 좋다고 생각한다.
참고 : https://velog.io/@gidskql6671/HTTP-Method%EC%9D%98-%EB%A9%B1%EB%93%B1%EC%84%B1
728x90
'개-발 > 이론' 카테고리의 다른 글
[CS] Spring Web MVC의 Dispatcher Servlet의 동작 원리 (0) | 2023.11.03 |
---|---|
[CS]쓰레드와 쓰레드 풀 (0) | 2023.05.23 |
[CS]웹 브라우저에 URL 입력하면 일어나는 일 (0) | 2023.04.14 |
[CS지식] JVM(Java Virtual Machine) 이해하기 (1) | 2022.11.30 |
[CS지식] 프로세스 와 스레드 (0) | 2022.11.18 |