본문 바로가기

[Spring] GET과 POST의 차이점

곰곰킴 2021. 8. 19.

개요

GET은 주로 데이터 조회에 사용되며, 요청 실패 시 반복된다. POST는 데이터 생성, 수정, 삭제 시 사용되며, 요청 실패 시 반복되지 않는다다. GET은 캐시 가능하고 기록에 남지만, POST는 그렇지 않는다. 이러한 특성 때문에 GET은 데이터 조회, POST는 데이터 업데이트에 적합하다.

차이점

흔히들 DB로부터 데이터 리스트를 불러올 때는 GET

생성, 수정, 삭제 등 데이터 변경 시 POST를 사용한다고 알고 있다. 왜 그럴까?

GET과 POST의 특징

GET POST
GET 요청은 실패 시 될 때까지 반복한다. POST 요청은 실패 시 반복하지 않는다.
캐시 가능하다. 캐시 불가능하다.
히트토리에 남는다. 히스토리에 남지 않는다.
북마크 될 수 있다. 북마크 될 수 없다.
파라미터가 노출된다. 파라미터가 노출되지 않는다.

필자가 알았던 건 맨 밑 사항이고

제일 중요한 사항은 맨 위 사항이다.

GET 요청은 실패 시 요청이 성공할 때까지 반복하여 요청한다.

반응형

인터넷 비연결 시 웹 페이지를 로드하면 웹 페이지가 뜨지 않다가

인터넷이 연결됐을 때 웹 페이지가 새로고침 되면서

화면에 나타나는 경우를 보았을 것이다. 이는 GET의 특성 때문이다.

주의점

하지만 POST가 같은 동작을 한다면 실패 시 요청이 계속 들어가고

혹여나 데이터 변형이 중복으로 적용될 수 있다. 이는 오류 발생으로 직결된다.

따라서 POST는 설계 상 실패 시 반복 요청하지 않게 설계돼있다.

이러한 차이가 있어서 리스트와 업데이트에 GET과 POST를 쓰는 것이다.  

 

댓글