Spring MVC/Servlet/Server/HTTP/GET/POST

2022. 6. 8. 10:59
728x90

• Servlet

톰캣 같은 웹 애플리케이션 서버를 직접 설치하고,그 위에 서블릿 코드를 클래스 파일로 빌드해서 올린 다음, 톰캣 서버를 실행하면 된다. 하지만 이 과정은 매우 번거롭다. 스프링 부트는 톰캣 서버를 내장하고 있으므로, 톰캣 서버 설치 없이 편리하게 서블릿 코드를 실행할 수 있다. 서블릿은 Java를 이용하여 웹 페이지를 동적으로 생성하는 서버 측 프로그램이다. 웹 브라우저에서 요청을 받으면 서블릿 내부의 코드(기능)를 수행한다. 서블릿마다 역할을 지정해놓고 사용함.

 

• Servlet Container

스프링 부트가 내장 톰캣 서버를 생성하고 이 서버가 Servlet을 생성한다. 서블릿 컨테이너는 구현되어 있는 Servlet 클래스의 규칙에 맞게 서블릿 객체를 생성, 초기화, 호출 종료하는 생명 주기를 관리한다. 톰캣처럼 서블릿을 지원하는 WAS 서블릿 컨테이너라고 할 수 있다. 

 

• 웹 애플리케이션 서버의 요청 응답 구조

HTTP 요청 메세지를 기반으로 웹 애플리케이션 서버에 request가 생성이 된다. 이후에 response 객체를 생성한 뒤 HTTP 응답을 생성함

 

• HttpServletRequest의 역할

HTTP메세지를 일일이 파싱해서 써도 되긴 하나, 이걸 하나하나 다 하려고 한다면 엄청난 시간과 노동이 필요할 것이다. 그렇기 때문에 만들어진 게 HttpServletRequest이다. 아주 편리하게 HTTP 요청 메세지를 다룰 수 있다 .

 

• HttpServletResponse의 역할

response객체도 스프링이 만들어준다. 응답해주기 위해 값을 넣어서 전달해주자.

 

 

• GET/POST

HTTP 카테고리에서 좀 더 자세하게 다룰 예정이다. HTTP 요청메세지 중에서도 가장 많이 쓰이는 GET/POST이다.

 

1. GET은 일반적으로 어떤 것을 조회하거나 정보들을 가져오고 싶을 때 쿼리 파라미터를 이용해서 가져온다. 

ex) http://localhost:8080/request-param?username=hello&age=20

 

2. POST는 양식에 맞게 폼을 작성하여 정보를 전달하고자 할 때 자주 쓰인다. 예를 들면 회원 가입, 상품 주문 등이 있다.

ex)http://localhost:8080/basic/hello-form.html 사이트에서 제출 형식의 버튼을 눌렀을 때 요청 메세지 전송

 

*POST/PUT/PATCH 방식에서는 메시지 바디에 데이터를 담아서 요청할 수 있으며 보통은 json파일을 사용함

 

 

 

 

BELATED ARTICLES

more