일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Lesson3
- 자바
- Linux
- FLEX5
- QA엔지니어
- 리눅스
- 데이터의 무결성
- 1463번
- 엔테크서비스
- 레노보노트북
- 외래키설정
- FIDO 환불
- Java
- BC렌트
- 언마운트
- 부산입국
- Lesson2
- 프로그래머스
- 파이도 환불
- 백준알고리즘
- IntelliJ
- codility
- 벤쿠버렌트
- 설탕문제
- binaray_gap
- FK 설정
- 캐나다워홀
- database연결
- 벤쿠버 렌트
- 벤쿠버집구하기
- Today
- Total
대충이라도 하자
멱등(Idempotent) 본문
HTTP 메소드의 속성
- 안전 : 본질적으로 읽기 전용이며, 원본 서버의 리소스에 영향을 주지 않는 속성
- 멱등 : 요청을 재시도해도, 재실행해도 원래 의도한 바와 같이 동일하게 작동하는 속성을 의미
연산을 여러 번 반복해도 결과값은 변하지 않음.
- 캐시가능 : 요청한 응답의 리소스를 향후 재사용을 위해 저장할 수 있는 속성을 의미
멱등한 메소드는?
- GET : 같은 요청을 한 번 하든, 수 천 번 하든 클라이언트가 원하는 결과대로 작동
- PUT : 클라이언트가 요청을 반복할 경우,
PUT의 특성 상 클라이언트가 원한 결과대로 무조건 리소스가 갱신되거나 생성
- DELETE : 클라이언트가 원한 결과대로 삭제
결국, POST 제외 전부 멱등
POST는 클라이언트가 요청을 반복할 경우, 클라이언트의 의도대로 작동하지 않을 수 있다.
네트워크 상에서 어떤 요청을 했을 때, 네트워크 상에서 다양한 변수에 의해 요청이 실패할 수 있기 때문이다.
멱등은 RESTful 웹 서비스의 맥락에서 많이 언급된다.
REST는 웹 애플리케이션을 리소스(예: Twitter 사용자 또는 Flickr 이미지)로 구성한 다음 POST, PUT, GET 및 DELETE의 HTTP 메서드를 사용하여 해당 리소스를 생성, 업데이트, 읽기 및 삭제한다. 이중 POST를 제외한 나머지 HTTP 메서드를 사용하는 API(GET, PUT, DELETE)들이 멱등성이 유지되어야 한다.
멱등성은 REST에서 중요한 역할을 한다. REST 리소스 표현을 GET하고 작업이 실패하면 작업이 성공할 때까지 GET을 계속해서 반복할 수 있다. 웹 서비스의 경우 이미지를 몇 번 가져왔는지는 중요하지 않다. 마찬가지로 RESTful 웹 서비스를 사용하여 Twitter 계정 정보를 업데이트하는 경우 웹 서비스에서 확인을 받기 위해 필요한 만큼 새 정보를 PUT 할 수 있다. 천 번 PUT 하는 것은 한 번 PUT 하는 것과 같다. 마찬가지로 REST 리소스를 천 번 DELETE하는 것은 한 번 DELETE하는 것과 같다. 따라서 멱등성을 사용하면 통신 오류에 탄력적인 웹 서비스를 훨씬 쉽게 구성할 수 있다.
'꼬꼬마 개발자 노트' 카테고리의 다른 글
docker ps 시, permission denied 오류 (0) | 2023.01.05 |
---|---|
Docker (0) | 2022.08.12 |
API 설계 (0) | 2022.02.09 |
Stateless & Connectionless (0) | 2022.01.27 |
Elasticsearch 설치 및 사용 (Windows) (0) | 2022.01.18 |