Web Server & WAS
◎ Web Server
-> 아래 두 가지 의미가 있다.
1. 소프트 웨어적 측면으로 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아 *정적 컨텐츠(html, css 등)를 제공하는 프로그램
2. 하드웨어 측면으로는 1번의 기능을 제공하는 컴퓨터 프로그램을 실행하는 컴퓨터
*정적 컨텐츠 : 모든 클라이언트에 대해 동일한 응답 결과를 제공하는 컨텐츠
-> HTTP 기반으로 동작한다.
-> Web Server 기능
- 클라이언트로부터 http 요청을 받는다.
- 정적 컨텐츠를 제공한다.
- *동적 컨텐츠 요청 시 해당 클라이언트의 요청을 WAS에 보내고 WAS에서 처리한 응답을 클라이언트에게 전달한다.
*동적 컨텐츠 : 클라이언트에 따라 각각 다른 형태의 응답을 제공하는 컨텐츠
◎ WAS(Web Application Server)
-> 여러 로직 처리나 db 관련 데이터 조회 등의 동적 컨텐츠를 제공하는 프로그램
-> 웹 서버 기능 + 정적 컨텐츠 제공(가능)
-> 프로그램 코드를 실행하여 애플리케이션의 로직을 수행한다.
-> 인터넷 상에서 http를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행하는 미들웨어다.
-> WAS의 기능
- 프로그램의 실행환경과 데이터베이스 접속 기능 제공
- 여러 개의 트랜잭션 관리
- 업무를 처리하는 비즈니스 로직 수행
◎ Web Server와 WAS를 구분하는 이유
-> Web Server는 정적 페이지를 담당하고, WAS는 db 조회 및 다양한 로직 처리를 담당하게 하여 기능을 분리해서 서버의 부하를 방지할 수 있다.
-> web server와 was를 물리적으로 분리하여 *ssl에 대한 암호화 및 복호화 처리에 web server를 사용하여 보안을 강화한다.
*ssl : 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약
-> 여러 대의 was를 연결하여 하나의 was에 문제가 생겨도 다른 was는 정상 동작하고 있기 때문에 사용자 입장에서는 문제를 인식하지 못하고 서비스를 사용할 수 있다.
-> 정적 리소스가 많이 사용되면 web server를 증설하고, 애플리케이션 리소스가 많이 사용되면 was를 증설한다.
-> client - web server - was - db 형태로 분리하여 web server와 was를 분리하여 생기는 장점을 활용할 수 있다.
★ 참고
https://www.youtube.com/watch?v=mcnJcjbfjrs
https://ko.wikipedia.org/wiki/%EC%9B%B9_%EC%84%9C%EB%B2%84
https://ko.wikipedia.org/wiki/%EC%A0%84%EC%86%A1_%EA%B3%84%EC%B8%B5_%EB%B3%B4%EC%95%88
https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html