김영한 강사님의 HTTP 웹 기본 지식 내용 발췌!
안전 (safe) - 음 그니까 조회말고 무언가를 변경하는거에 대한 안전(safe) 같다!
- 호출해도 리소스를 변경하지 않는다.
- Q: 그래도 계쏙 호출해서, 로그같은게 쌓여서 장애가 발생하면요?
- A: 안전은 해당 리소스만 고려한다. 그런 부분까지 고려하지 않는다.
멱등 (Idempotent)
- f(f(x)) = f(x)
- 한번 호출하든 몇번을 호출하든 결과가 똑같음
- 멱등 메소드
Get: 한번 조회하든 몇번을 하든 같은 결과 조회 - 음... 헤깔리는데 소스가 바뀌면 조회하는 결과물도 바뀌는거 아닌가...?
Put: 결과를 대체한다. 따라서 같은 요청을 여러번 해도 최종 결과는 같다.
Delete: 결과 삭제: 같은 요청을 여러번해도 삭제된 결과는 똑같음
Post: 멱등이 아니다! 두번 호출하면 같은 결제가 중복해서 발생할 수 있다.
- 활용
자동 복구 메커니즘
서버가 TIMEOUT등으로 정상 응답을 못주었을 때, 클라이언트가 같은 요청을 다시 해도 되는가? 판단 근거
- Q: 재요청 중간에 다른 곳에서 리소스를 변경해버리면?
사용자1: GET -> user:A, age:20
사용자2: PUT -> user:A, age:30
사용자1: GET -> user:A, age:30 -> 사용자2의 영향으로 바뀐데이터 조회
- A: 멱등은 외부 요인으로 중간에 리소스가 변경되는것 까지 고려하지 않는다.
멱등 get 부분이 헤깔려서 찾아봄!
멱등 - 행복한 아빠님 블로그에서 가져온 멱등의 예시!
멱등이란 한 번 적용하나 여러 번 적용하나 항상 같은 결과를 나타내는 것을 이야기한다. 곱셈의 예를 들면 0으로 계속 곱하는 것은 멱등이다. ( 4 x 0 x 0 x 0 ...) 0으로 곱해도 마찬가지 결과이다. ( 4 x 1 x 1 x 1 ... 도 마찬가지이다.)
비슷하게 리소스에 동일한 오퍼레이션을 여러 번 요청해도 같은 결과일 경우 멱등이라 한다.
이부분은 개발자 Dion님의 블로그!
GET요청으로 목록을 불러옵니다. 이 행위를 여러 번 수행한다고, 서버의 상태가 변하지도 않고(단순히 조회만 하므로), 같은 효과를 기대할 수 있습니다.(요청한 데이터 목록을 조회하는 효과) 따라서 멱등성과 안전한 메소드가 성립함을 알 수 있습니다.
캐시가능 (Cacheable)
- 응답 결과 리소스를 캐시해서 사용해도 되는가?
- GET, HEAD, POST, PATCH 캐시가능
- 실제로는 GET, HEAD 정도만 캐시로 사용
POST, PATCH는 본문 내용까지 캐시 키로 고려해야 하는데 , 구현이 쉽지 않음.
[출처] www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard
모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의
실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., 웹 기술을 사용하는 개발자라면 누구나 OK!꼭 필요한 HTTP의 핵심을 알려드립니다. 📣 확인해주세요!본 강의는 자바 스
www.inflearn.com
[출처] greatkim91.tistory.com/14
[REST] The Resource-Oriented Architecture-2
이전의 RAO에 이어서... Uniform Interface 웹을 통해 리소스에 할 수 있는 일은 몇 가지 기본적인 것들이 있다. HTTP는 4가지의 가장 일바적인 동작에 대하 4가지 기본 방법(메소드)를 제공한다. 리소스
greatkim91.tistory.com
HTTP 메소드의 멱등성? 그게 뭔데?
멱등성이 무엇인지 알고계신가요? 멱등성이란, 수학에서 사용하는 용어에서 유래한 것으로. 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 뜻합니다.이 멱등성은 왜 HTTP Method와 연
velog.io
** 그냥 하루하루 개인 공부한 것을 끄적 거리는 공간입니다.
이곳 저곳에서 구글링한 것과 강의들은
내용이 정리가 되었습니다.
그림들은 그림밑에 출저표시를 해놓았습니다.
문제가 될시 말씀해주시면 해당 부분은 삭제 하도록하겠습니다. **
'public void static main > Lecture' 카테고리의 다른 글
[Design Patterns] Singleton Pattern feat. 백기선 강사님 (0) | 2022.08.30 |
---|---|
[HTTP웹기본지식] HTTP 메서드 - PUT, PATCH, DELETE (0) | 2021.03.10 |
[SpringBoot] SpringBoot_02_스프링웹개발기초 (0) | 2021.01.18 |
[HTTP웹기본지식] HTTP_03_2 (0) | 2021.01.12 |
[HTTP웹기본지식] HTTP_03_1 (0) | 2021.01.12 |
댓글