GET과 POST는 HTTP 프로토콜을 이용하여 서버에 요청할 때 사용하는 방식이다.
GET방식은 요청하는 데이터가 HTTP Request Message의 Header
에 url
이 담겨서 전송된다. url의 ?
뒤에 데이터를 붙여서 request를 보낸다.
url에 붙여서 데이터를 요청하기 때문에 전송할 수 있는 데이터의 크기가 제한적이다.
또한, 데이터가 그대로 url에 노출되므로 보안 이슈도 발생할 수 있다.
(보안이 중요시 된다면 GET방식
은 적절하지 못하다.)
POST방식은 요청하는 데이터가 HTTP Request Message의 Body
에 데이터가 담겨서 전송된다.
요청할 수 있는 데이터 크기가 GET방식보다 크고, 보안면에서 낫다.
그러나 암호화를 하지 않는 이상 보안적인 측면에서 GET과 POST의 차이는 크지 않다.
GET은 서버에서 어떤 데이터를 가져와서 보여줄 때 사용하며, 서버의 값이나 상태 등을 변경하지는 않는다.
반면에 POST는 서버의 값이나 상태를 변경, 추가하기 위해서 사용한다.
부수적인 차이점을 살펴보면, GET의 요청은 브라우저에서 Caching
할 수 있다. 그렇기 때문에, POST로 요청해야 하는 데이터가 크기가 작고 보안적인 문제가 없다는 이유로 GET으로 요청한다면, 기존에 Caching
되었던 데이터가 응답될 가능성이 존재한다.
목적에 맞는 방식을 사용해야 한다.