GET 방식과 POST 방식 둘 중에 POST 로만 보내면 데이터가 안 보이고
보안에 취약한 문제도 사라지고 GET 으로 오는지 POST 로 오는지
검증을 안 해도 되니까 더 로직에 이득이 아닐까 하는 궁금증이 들었다.
그래서 찾아봤다.
데이터를 URL 에 포함하여 전송하기 때문에 브라우저 주소창에 직접 입력하거나 즐겨찾기에 추가하여 간단하게 요청 할 수 있다.
캐시를 이용하여 이전에 요청한 결과를 재사용할 수 있기 때문에 동일한 요청을 반복적으로 보내지 않아도 된다. (UX 유리)
URL 에 데이터가 노출되어 사용자에게 전송한 데이터를 쉽게 확인할 수 있다.
URL에 데이터가 노출되기 때문에 민감한 정보를 전송할 경우 보안에 취약하다.(ID, PW, 주민번호 등)
URL 에 전송할 수 있는 데이터 길이에 제한이 있어서 큰 용량의 데이터를 전송하기 어렵다.
(대부분의 웹 브라우저는 URL 의 길이를 약 2,048~8,192 문자로 제한하고 있다.)
데이터를 HTTP 메시지의 본문에 포함하여 전송하기 때문에 URL에 데이터가 노출되지 않고, 민감한 정보를 안전하게 전송할 수 있다.
POST 방식은 HTTP 메시지의 본문에 데이터를 포함하기 때문에 데이터 길이에 제한이 없어서 큰 용량의 데이터를 전송할 수 있다.
POST 방식은 서버의 상태를 변경하는 용도로 사용될 수 있다.
예를 들어, 데이터를 삽입, 수정, 삭제하는 작업에 적합하다.
POST 방식은 보안적으로 더 안전하지만, GET 방식보다 느리고 무겁다.
POST 방식은 캐시를 이용하지 않기 때문에 동일한 요청에 대해 반복적으로 요청을 보내야 한다.
POST 방식은 데이터를 본문에 포함하여 전송하기 때문에 GET 방식 보다 복잡하게 처리해야 하는 경우가 있다.
결론적으로,
GET 방식은 간단하고 캐시를 이용하여 빠르게 데이터를 조회하는 데에 효과적이지만 보안에 취약하고 큰 용량의 데이터를 전송하기 어려운 단점이 있다.
반면,
POST 방식은 보안성이 높고 큰 용량의 데이터를 전송할 수 있으며, 서버의 상태를 변경하는 작업에 적합하지만 캐시를 이용하지 않고 더 무거운 처리가 필요하다.
6. 결론
역시 따로 분리를 해놓은데에는 다 이유가 있었다.
GET 방식은 캐시를 사용해서 이미 한 번 받아 놓은 데이터는 로직 깊숙히 들어가지 않아도 되므로, 성능 향상에 이점이 있다는 점.
GET 을 사용하여 통신을 해야할 때와 POST 를 사용하여 통신을 해야할 때가 있다는 점을 배웠다.
좋은 정보 얻어갑니다, 감사합니다.