웹페이지에서 최종사용자가 값을 입력하면 그 값으로 어떤 값을 출력하고 싶었다.
이 때 사용하는 것이 http method 중 POST와 GET이었다.
이 둘의 차이를 잘 이해하지 못해 몇 시간 해맸었기에 이참에 정리해보고자 한다.
url/<id>
와 같은 방식으로 url에 값을 넘겨서 그 값에 따라 동적인 페이지를 만들 수도 있지만 웹페이지에 직접 값을 입력받는 것으로 작동시키는 방법이다.
GET : http://url/test.html?id=1
처럼 Url에 parameter를 함께 넘기는 방식
POST : 전성되는 http 내부에 데이터를 추가하여 보내는 방식이 POST이다.
GET의 경우 url을 통해 값을 입력하기 때문에 특정한 리소스를 검색하는 경우에 많이 사용되며 POST의 경우 form을 통해 서버로 넘겨진 데이터를 데이터베이스 등에 저장하기 위해 많이 사용된다.
구체적인 예를 들자면
게시판의 글을 검색하여 그 결과를 보여줘야 하는 경우에는 GET을 통해 겁색하고 그 결과를 반환할 수 있다.
게시판에 새로운 글을 쓸 때는 POST를 통해 그 값을 데이터베이스에 작성할 수 있다.
사실 form을 사용해서 값을 넘길 때 GET, POST 중 무엇을 쓰더라도 값을 반환한다는 점에서 차이가 없어보이지만 최종사용자로부터 넘겨받는 argument를 Url에 넣어서 제공하는 것이 필요한지, 무엇이 다른 프로그래머들에게 더 잘 해석될지 생각하며 두 메소드를 적절하게 사용하는 것이 바람직해보인다.
GET이 아니라 POST를 사용하면 url 상에서 값이 숨겨져서 결과를 출력하게 된다. 따라서 개인정보나 긴 글을 작성한 경우 GET을 사용하면 개인정보 유출의 위험이나 너무 긴 url이 만들어질 수 있다.