1. 웹 서버
- HTTP 기반으로 동작
- 정적 리소스 제공 (HTML,CSS,JS,이미지,영상)
- ex) nginx, apache
2. 웹 어플리케이션 서버(WAS)
- HTTP기반으로 동작
- 정적 리소스 제공
- 프로그램 코드를 실행해서 어플리케이션 로직 수행 가능
- 동적 HTML, HTTP API(JSON)
- 서블릿, JSP, 스프링 mvc
- ex) 톰캣, jetty, undertow
3. 웹 시스템 구성
- WAS,DB
- WAS가 너무 많은 역할을 담당하면, 서버 과부화 우려
- WEB,WAS,DB
- 정적 리소스는 웹 서버가 처리
- 웹 서버는 어플리케이션 로직같은 동적인 처리가 필요하면 WAS에 요청을 위임
- WAS는 중요한 어플리케이션 로직 처리 전담
- 효율적인 리소스 관리
4. 서블릿
- 중요한 비즈니스 로직을 제외한 request 분석, response 생성 등을 지원해줌
@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest request, HttmpServletResponse response){
//어플리케이션 로직
}
}
- /hello 의 url 호출 시 서블릿 코드 실행
- HTTP 요청 정보를 편리하게 사용할 수 있는 HttpServletRequest
- HTTP 응답 정보를 편리하게 제공할 수 있는 HttpServletResponse