
사용자가 웹에 접근하는 프로그램으로 Chrome과 같은 웹 브라우저이다.
사용자가 웹 애플리케이션에 접근하기 위한 장치나 애플리케이션. 보통 브라우저가 여기에 해당된다.
서버는 클라이언트에서 요청한 HTTP 메시지를 확인한 후, HTML, CSS, Image 등의 데이터를 처리하여 클라이언트에 응답한다.
- Apache WEB Server
- Ngix
- Microsoft IIS
WAS는 웹 애플리케이션을 실행시켜 필요한 기능을 수행하고 그 결과를 웹 서버에게 전달하는 일종의 미들웨어를 말한다.
웹 애플리케이션의 동적 요청을 처리하는 서버. 주로 비즈니스 로직을 처리하고, 데이터베이스와 상호작용 한다.
php, jsp, asp와 같은 언어들을 사용해 동적인 페이지를 만들어낼 수 있는 서버.
- Apache Tomcat
- Jetty
- JBoss
- Spring Boot(내장 WAS로 실행가능)
WAS 서버는 단순히 비즈니스 로직을 처리하는 것 외에도 다음과 같은 기능을 제공한다.
데이터를 저장하고 관리하는 서버. 웹 애플리케이션의 핵심 데이터를 보관하며, SQL을 통해 데이터 접근이 이루어진다.
- MySQL, PostgreSQL
- Oracle DB, Microsoft SQL Server
- MongoDB, Redis
ex) WAS가 "특정 사용자 정보"를 요청하면 DB서버는 해당 데이터를 조회하여 반환
각 요소 간의 연관성
- 클라이언트 : 사용자가 브라우저에서 상품 목록을 요청(URL 입력)
- 웹 서버 : 요청을 받고, 정적 파일 요청인지 확인. 동적 요청이라면 WAS로 전달.
- WAS 서버 : 클라이언트 요청에 따라 DB에서 데이터를 조회하고 HTML이나 JSON 응답 생성.
- DB 서버 : 요청받은 데이터를 조회하고 WAS에 반환.
- WAS -> 웹 서버 -> 클라이언트로 최종 응답 전송.