Get 은 헤더만 가지고 있으며, 모든 필요한 데이터를 URL에 포함하여 요청한다.즉 get은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고 쿼리 스트링을 통해 전송한다.

데이터를 읽거나(Read), 검색(Retrieve) 할때 사용되는 메서드이다. 같은 요청을 여러번 하더라도 항상 같은 응답을 받을수 있어서 데이터의 변형의 위험없이 사용할 수 있다. 따라서 이런 이유로 사용하면 안전하다고 간주된다.

Post 는 헤더와 바디를 가지고있다. 리소스를 생성/변경하기 위해 설계 되었기 때문에 전송해야될 데이터를 HTTP 메세지의 body에 담아서 전송한다. 이처럼 post는 데이터가 body로 전송되고 내용이 눈에 보이지 않아 get보다 보안적인 면에서 안전하다고 생각할 수 있지만 post 요청도 크롬 개발자 도구, fiddler와 같은 툴로 요청 내용을 확인할 수 있기 때문에 민감한 데이터의 경우는 반드시 암호화해 전송해야한다. HTTP메세지의 body길이는 제한없이 데이터를 전송할 수 있다. 그래서 대용량 데이터를 전송할 수 있다.

GET 과 POST 의 차이점

GET과 POST의 특징만 보아도 차이가 나긴하지만 추가적으로 차이점을 정리해보면 다음과 같다.

멱등이란?