Get, Post는 HTTP Method로 서버에 어떠한 요청을 원할 때 이러한 메서드를 통해서 통신할 수 있다.
MDN에서는 간단하게
GET 메서드는 특정 리소스의 표시를 요청합니다. GET을 사용하는 요청은 오직 데이터를 받기만 합니다.
POST 메서드는 특정 리소스에 엔티티를 제출할 때 쓰입니다. 이는 종종 서버의 상태의 변화나 부작용을 일으킵니다.
라고 설명한다.
쉽게 설명하자면 Get, Post는 정보 요청 수정에 관련된 매서드이다.
먼저 Get 매서드를 알아보자면
데이터를 읽거나, 검색하기 위해 사용되는 매서드이다. 그래서 데이터를 수정할 수는 없고 오롲지 데이터를
읽을 때만 사용할 수 있다. 읽기만 하기 때문에 데이터의 변형이 일어나지 않는다.
Get을 사용할 때는 몇 가지 유의 사항이 있다.
GET 요청은 캐시가 가능하다.
: GET을 통해 서버에 리소스를 요청할 때 웹 캐시가 요청을 가로채 서버로부터 리소스를 다시 다운로드하는 대신 리소스의 복사본을 반환한다. HTTP 헤더에서 cache-control 헤더를 통해 캐시 옵션을 지정할 수 있다.
-브라우저 기록에 남는다.
북마크에 추가할 수 있다.
데이터의 길이에 제한이 있다.
HTTP 메세지의 헤더에 담겨 전송된다.
유알엘 주소 끝에 파라미터가 노출되어서 민감하고 보안을 위한 데이터를 다룰 때는 사용하면 안된다.
요청에 대한 성공 응답 코드는 200으로 반환된다.
Post 는 리소스를 생성, 업데이트를 하기 위해 서버에 데이터를 보내는데 사용된다.
GET과 달리 전송해야될 데이터를 HTTP 메세지의 Body에 담아서 전송합니다.
그리고 그 Body의 타입은 요청 헤더의 Content-Type에 요청 데이터의 타입을 표시 따라 결정 된다.
이처럼 POST는 데이터가 Body로 전송되고, 내용이 눈에 보이지 않아 GET보다 보안적인 면에서 안전하다고 생각할 수 있지만, POST 요청도 크롬의 개발자 도구, Fiddler와 같은 툴로 요청 내용을 확인할 수 있기 때문에 민감한 데이터의 경우에는 반드시 암호화해 전송해야 합니다.
post 사용 시 유의사항
POST 요청은 캐시되지 않습니다.
POST 요청은 브라우저 기록에 남아 있지 않습니다.
POST 요청을 북마크에 추가할 수 없습니다.
POST 요청에는 데이터 길이에 대한 제한이 없습니다.
Post 요청 중 자원 생성은 201(Created) HTTP 응답 코드를 반환합니다.
팀프로젝트 시 get은 유저 정보 조회, 수저 정보 조회, post는 로그인, 회원가입, 수조 추가에 사용 되었다.