작성
·
384
0
안녕하세요 선생님 강의 잘 듣고 있습니다
다름이 아니라 GET/POST 부근 강의를 듣다가 잘 이해가 안 가는 부분이 생겼습니다.
빈칸에 각각 숫자를 입력하는 html 화면이 있고 (su.html)
클라이언트가 그 화면에 접속해서 각각 1, 100이라는 숫자를 빈칸에 입력하고 전송버튼을 누르면 CalcController.java라는 페이지를 호출하여 화면에 1부터 100까지 계산이 된다고 가정할때...
전송 버튼을 누르자마자 톰캣은 '클라이언트의 ip주소, 포트정보가 담긴 header'와 '1, 100이라는 요청정보가 담긴 body', 즉 header와 body로 구성된 패킷을
service 메소드의 HttpServletRequest, HttpSerVletResponse 객체의 request, response라는 변수 안에 전달해주는 것이잖아요??
그런데, 여기까진 이해가 잘 되었습니다만
GET/POST 강의에서 GET 방식은 저 1,100이라는 파라미터가 header에 담겨서 전달이 되고,
POST방식은 1,100이라는 파라미터가 body에 담겨서 전달이 된다는 말씀이 이해가 안갑니다.
왜냐하면, 1, 100이라는 파라미터는 이미 body에 담긴다고 이해를 했는데, GET방식에서 갑자기 저 1,100이라는 파라미터가 왜 갑자기 header로 들어가는거지요?? 모순처럼 느껴집니다. 제가 이해를 잘못한 걸까요?? 시간나실때 답변해주시면 감사드립니다.
답변 1
0
GET방식이나 POST방식모두 클라이언트가 서버로 요청하는 방식입니다. POST방식으로 요청시 파라메터는 패킷의 body에 저장해서 서버로 전달되고 GET방식으로 요청시 파라메터 전달은 패킷의 Header부분에 요청URL(쿼리스트링)을 저장하여 전달하게됩니다.
쿼리스트링은 : 요청URL 뒤에 붙는 ?파라메터=값의 형태입니다.
전달하는 방식의 차이 이고 전달 방식마다 장단점이 있습니다.