GET, POST 의 정의, 데이터 흐름, 장단점, 보안에 대한 것은 개발자 면접에서 자주 나오는 질문 중의 하나!
"가져온다"
서버에서 어떤 데이터를 가져와서 보여줄 때 사용
오로지 데이터를 읽을 때만 사용. 수정할 때는 사용하지 않는다
클라이언트에서 서버로 어떠한 리소스로부터 정보를 요청하기 위해 사용
데이터를 읽거나(Read), 검색(Retrieve)할 때에 사용
www.example-url.com/resources?name1=김영희&name2=박철수
요청을 전송할 때, URL 주소 끝에 파라미터로 포함되어 전송
이 부분을 '쿼리스트링(QueryString)' 이라고 부른다.
파라미터인 name1 과 name2 를 통해 값을 전달받을 수 있다.
요청 파라미터가 여러 개이면 & 로 연결
클라이언트가 URL 로 데이터를 첨부한 GET 요청을 보낸다
서버는 해당 요청을 받아서 데이터를 파싱하고, 해당 정보를 처리해서 응답한다
클라이언트는 서버의 응답을 받아서, 정보를 사용
GET 요청은 idempotent 한다.
오로지 데이터를 읽을 때만 사용하므로(수정 X), 데이터 변형의 위험이 없어서 안전하다.
단, 파라미터에 내용이 노출되기 때문에, 민감한 데이터를 다룰 때 GET 요청을 사용해서는 안 된다.
Body 에 담아서 전송
클라이언트가 요청 본문(Body)에 데이터를 담아서 POST 요청을 보낸다
서버는 본문(Body)의 데이터를 추출해서 처리하고, 그 결과를 응답한다
클라이언트는 서버의 응답을 받아서, 처리 결과를 확인
POST 요청에는 데이터 길이에 대한 제한이 없다.