get은 서버의 리소스에서 데이터를 요청할 때, post는 서버의 리소스를 생성하거나 업데이트 할 때 사용한다. 또한 get은 url 파라미터에 요청하는 데이터를 담아 보내기 때문에 http 메시지에 body가 없지만 post는 body가 존재한다.
GET은 요청하는 데이터가 HTTP URL의 일부로 포함되어 전송됩니다. 일반적으로 사용자가 브라우저에서 URL을 입력하거나 링크를 클릭하면, 브라우저가 해당 URL에 포함된 파라미터와 함께 서버에 요청을 보냅니다. 그리고 나서 서버가 요청을 처리하고 필요한 정보를 응답으로 보내면 브라우저가 그 응답을 받아 사용자에게 표시합니다.
반면에 POST는 요청 데이터를 HTTP 메시지 본문에 담아 전송됩니다.
사용자가 웹 폼에 데이터를 입력하고 제출 버튼을 클릭했을 때, 브라우저가 데이터를 HTTP 본문에 담아 서버에 요청을 전송합니다. 서버가 요청을 처리하고, 결과를 확인하거나 필요한 정보를 응답으로 보냅니다. 그 후 브라우저가 응답을 받아 사용자에게 표시하거나 다른 동작을 수행합니다.
동기는 데이터의 요청과 결과가 한 자리에서 동시에 일어나며 서버에 하나의 요청이 들어온다고 가정했을 때 그 요청에 의한 응답을 받을 때까지 아무일도 수행하지 않습니다. 반면에 비동기는 동시에 일어나지 않습니다. 많은 요청을 보내도 따로 응답을 기다릴 필요가 없습니다. 비동기프로그래밍을 함으로써 성능과 응답성을 향상시키고 복잡한 작업을 효율적으로 처리하도록 도와줍니다.