개발자's Life

[Network] HTTP 메소드의 속성 정리 by 김영한님 (Rowen Jobs) 본문

Back-end/Network

[Network] HTTP 메소드의 속성 정리 by 김영한님 (Rowen Jobs)

Rowen Jobs 2023. 8. 5. 09:00
728x90
반응형

출처:위키피디아[https://ko.wikipedia.org/wiki/HTTP]

 

안전, 멱등 ,캐시가능이 있고 아래와 같이 정의가 된다. 

 

안전 safe : 호출해도 리소스를 변경하지 않는다.
  • GET, HEAD 제외하고 안전하지 않음
  • 호출을 계속해서 로그가 쌓여 에러 발생하는 것은 고려하지 않는다. 

 

멱등 Idempotent  : 여러번 호출하든 결과가 똑같다. 
  • GET -> 여러 요청을 하여도 결과는 같다.
  • PUT -> 기존을 날리고 새로운 것을 저장한다. 결과를 대체하여 최종결과는 같다.
  • DELETE -> 몇번을 호출하든 삭제된 결과는 똑같다
  • POST -> 중복결제, 중복배송 등 두번 호출이 되면 안되기에 멱등하지 않다. 

멱등이 중요한 이유는 만약 DELETE 메서드를 호출하고 서버에서 TIMEOUT 으로 응답을 정상적으로 못 주었을때 한번 더 요청을 할 수 있는데 멱등하지 않으면 다시 요청을 하기 힘들다. 

 

캐시가능 Casheable : 응답 결과 리소스를 캐시해서 사용
  • GET, HEAD 는 캐시로 사용
  • POST, PATCH 구현이 쉽지 않아 잘 사용하지 않음.
  • 웹브라우저 내부에 저장할 수 있냐로 판단.

 

정리해보자면 아래와 같다.

 

GET, HEAD : 몇번을 호출하여도 리소스 변경이 일어나지 않고 결과가 같기때문에 Safe 하고 Idempotent 하다.

PUT : 기존 리소스와 다르게 요청하면 멱등하진 않지만 기존 리소스와 동일하게 요청하면 결과가 같기 때문에 멱등하다 (Idempotent)

DELETE : 삭제가 되면 리소스가 변경하여 Safe 하지 않지만 결과는 같기때문에 멱등하다. 

POST : safe, 멱등하지 않다. 

(틀린 부분 있으면 댓글 부탁드립니다!)

강의 내용을 바탕과 이해한 바를 정리하였습니다. 

 

https://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 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술

www.inflearn.com

 

728x90
Comments