[ Web ]
: HTTP 기반으로 동작
Web Server
: HTTP 기반으로 동작하는 서버로, 정적 리소스를 제공
ex) NGINX, Apache
WAS (Web Application Server)
: HTTP 기반으로 동작 + 웹 서버의 기능
ex) Tomcat, Jetty, Undertow
웹 시스템 구성
WAS와 DB만으로 서버를 구성하면
- WAS가 너무 많은 역할을 담당 (서버 과부하)
- 실행에 가장 중요한 로직인 Application 로직이 정적 리소스로 인해 실행되지 않음
- WAS에 장애가 생기면 오류 페이지가 없어서 아무 화면도 보여주지 않음
웹 구성의 장점
1. 효율적인 리소스 관리
2. 오류화면 제공
[ Servlet ]
: HTTP 프로토콜 기반 요청 및 응답을 처리하는데 사용됨
Servlet 동작 순서
1. WAS는 HTTP 요청 메세지를 기반으로 새로운 Request, Response 객체 생성
2. WAS는 만들어진 Request, Response 객체를 서블릿 컨테이너에 넘겨주며 ExampleServlet 객체 호출
3. WAS는 Response 객체 정보 (개발자가 입력한 정보)로 HTTP 응답 메세지 생성
개발자가 하는 일
1. Request 객체에 담겨져 있는 HTTP 요청 정보를 꺼내서 사용한다.
2. 생성된 Response 객체에 HTTP 응답 정보를 입력한다.
서블릿 컨테이너
: Servlet을 지원하는 WAS. 서블릿을 생성, 관리, 호출하는 역할 수행
- 서블릿의 생명주기 : WAS가 종료될 때 Servlet도 함께 종료됨
서블릿 컨테이너가 하는 일
- servlet 객체는 '싱글톤'으로 관리된다
- 요청이 올때마다 servlet 객체를 생성하는 것은 효율적이지 않기 때문에, 최초 로딩 시점에 servlet 객체를 미리 만들어두고 재사용한다. (같은 서버라면 모든 Request는 동일한 servlet 객체 인스턴스에 접근)
- 공유 변수 사용을 주의해야 한다
- 서블릿 컨테이너가 종료시 함께 종료된다
- 동시 요청을 위한 Multi Thread 처리를 지원한다
'스파르타 내배캠' 카테고리의 다른 글
[TIL] #36. AOP (0) | 2024.06.13 |
---|---|
[TIL] #35. Test Code - 단위테스트 (0) | 2024.06.12 |
[TIL] #33. ResponseEntity (0) | 2024.06.10 |
[TIL] #32. Spring Security (0) | 2024.06.05 |
[TIL] #31. @Annotation (0) | 2024.06.04 |