예전에 웹을 처음 배울 때 PHP로 배웠었는데 WAS라는 말을 잠깐 들어봤으나 제대로 알지 못 해서 이번기회에 정리해보려 한다.
그리고 node.js환경에선 WAS는 무엇인지도 정리해보자.
Web server
- 클라이언트로 HTTP 요청을 받아 HTML 문서나 각종 리소스(Resource)를 전달하는 컴퓨터
- Apache, NginX, IIS
WAS : Web Application Server
- 웹 앱 : 웹 브라우저에서 이용할 수 있는 응용 소프트 웨어
- WAS : 웹 애플리케이션과 서버 환경을 만들어 동작 시키는 기능을 제공
- Web server + Web container
- Web server : 정적인 데이터를 넘겨줌
- Web container : HTML같은 정적인 페이지에서 처리할 수 없는 비지니스 로직이나 DB조회 같은 동적인 컨텐츠를 제공
- JSP, Servlet, ASP, PHP로 표현된 페이지를 해석
Web server vs WAS
- 정적인 컨텐츠 vs (정적 + 동적) 컨텐츠
- 둘다 사용하는 이유 : 기능을 분리하여 서버 부하 방지
- 물리적으로 분리하여 보안강화
- 여러 대의 WAS를 연결 가능
- fail over, fail back
- 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.
- 다른종류의 WAS(PHP, JAVA)를 함께 사용 가능
node.js 는 웹서버 인가?
- Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임
- 웹서버는 아니지만 직접 HTTP 서버를 작성하면 웹 서버를 띄울 수 있는 환경을 만들어 줌
- Express 등을 사용하면 보다 더 간단하게 웹서버를 구축할 수 있음
Node.js는 Apache, 톰캣과 무엇이 다른가?
- node.js는 정적파일 제공과 WAS기능(언어해석) 모두를 담당한다.
- Express.js를 통해 정적파일을 제공하고 나머지가 언어해석, DB연결 등을 담당
- node.js를 사용해도 NginX와 같은 웹 서버를 사용할 수 있다.
참고 문헌