웹서버, WAS 차이를 알아보자
정적페이지 vs 동적페이지
정적페이지: 항상 동일한 페이지 반환(image, html, css)
동적페이지: 동적인 contents 반환
- 웹서버가 Client로부터 요청을 받는다. (GET /naepyeon?id=zero)
- 동적인 데이터를 처리하기 위해 WAS에 전송한다.
- Servlet: doGet(req, res)
- 동적 데이터를 처리한다.
- Client에 response 페이지 반환한다.
1. 웹 서버는 어떤 일을 할까?
웹 서버는 대표적으로 Apache, Nginx 등이 있다.
- 정적페이지 제공
- WAS를 거치지 않는다(바로 제공한다).
- 동적페이지 제공을 위해 WAS에 요청 전달
- WAS에 처리요청
- WAS가 처리한 결과를 클라이언트에 전달
즉, 웹 서버는 JSP, PHP같은 응용프로그래밍 언어를 해결할 수 없기에 WAS를 통해 처리한다.
2. WAS (= Servlet Container)
WAS는 대표적으로 Tomcat이 있다.
- 동적인 컨텐츠를 제공하기 위한 서버
- 주로 DB서버와 같이 수행된다.
- 용어
- Servlet: 클라이언트 요청을 처리하고 반환하는 기술
- Container: Servlet, JSP 등을 실행시킬 수 있는 소프트웨어
3. Apache vs nginx
- Apache
- 대규모 커뮤니티, 모듈 다양
- 요청 당 스레드 또는 프로세스가 처리 (CPU/메모리 자원 낭비 심함)
- nginx
- 비동기 이벤트 기반: 요청들을 이벤드로 등록, 비동기로 대기 → 완료되는 요청부터 응답
- 한 개의 고정 프로세스 생성 → 적은 양의 스레드 사용
'공부 > 웹' 카테고리의 다른 글
HTTP란? (특징, 버전, 캐싱) (0) | 2022.09.08 |
---|---|
웹과 HTML (0) | 2022.03.23 |
댓글