1. 웹 서버(web server)
우리가 사용하는 인터넷에는 만은 웹서비스들이 제공됩니다. 국내의 대표적인 포털사이트 네이버는의 웹페이지를 보개되면 다양한 구성요소들은 HTML태그로 이루어져있지만 우리는 웹브라우저를 통해 보기쉽게 제공 받습니다. 이렇게 웹페이지를 웹브라우저에 제공하기 위해 사용되는 서버가 웹서버입니다.
1. 1. 웹서버의 개념
- 소프트웨어와 하드웨어로 구분됨
- 하드웨어
- web 서버가 설치되어 있는 컴퓨터
- 소프트웨어
- 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html, .jpeg, css)를 제동하는 컴퓨터 프로그램
- 대표적으로 Apach Server, Nginx 등이 있음
- 하드웨어
- 웹 서버의 기능
- HTTP, HTTPS 프로토콜을 기반으로 클라이언트 요청을 서비스하는 기능
- 정적인 컨텐츠를 제공하는 용도로 사용되며 WAS를 거치지 않고 바로 자원을 제공한다.
- 동적인 컨테츠 제공을 위하여 WAS로 요청 전갈 하는 기능으로 클라이언트의 Request를 WAS에 보내도 WAS의 처리 결과를 Respone한다.
- 여기서 클라이언트는 웹브라우저를 사용하는 사용자 또는 웹브라우저를 지칭한다.
2. 웹 어플리케이션 서버(web aplication server)
우리가 가장 많이 혼동하는 서버의 개념 중 하나로 웹서버와 WAS는 둘가 웹을 위해 사용하지만 엄연히 다른 기능을 하기 때문에 확실히 이해하여야 한다.
- WAS의 개념
- DB조회, 로직처리 등 동적인 컨텐츠를 제공하기 위해 만들어진 서버로 웹을 응용(Aplication)기능을 제공하기위한 서버이다.
- HTTP를 통해 애플리케이션을 수행해주는 미들웨어 로 웹컨테이너, 서블릿 컨테이너 등으로도 불림
- Container란 JSP, Servlt을 실행 시킬수 있는 소프트웨어
- WAS는 웹서버를 포함한다.
- Tomcat, Jesus, Web Sphere 등이 있다.
- WAS의 역활
- 웹서버는 기능을 구조적으로 분리하여 처리하고자 하는 목적으로 나왔으며 분산 트랜잭션, 메시징 쓰레드 처리 등의 기능을 처리하는 분산환경에서 사용되어왔다.
- 현재는 WAS가 가지고있는 웹 서버도 정적인 컨텐츠 처리에 성능상 큰 차이가 없다.
- WAS의 주요 기능
- 프로그램 실행환경과 DB접속
- 여러개의 트랜잭선 관리
- 비지니스 로직 수행
- 웹서버와 WAS를 구군하는 이유
위에서 WAS는 웹서버와 웹 콘테이너의 결합이라고 했다. 그렇다면 왜 우리는 웹서버와 WAS를 구분하는 가?
- 서버의 부하를 방지한다.
- WAS는 다양한 클라이언트의 DB, 트랜잭션, 로직처리등을 위해 굉장한 부하가 요구된다. 그렇기 때문에 WAS는 동적컨텐츠를 처리하기 위해 특화된 구조를 가진다.
- 만약 정적 컨텐츠까지 WAS가 처리한다면 정적데이터의 이미지, 동영상 등 용량이 큰 데이터 등의 처리로 부하가 더욱 커지게 되어 서비스 시간이 매우 길어진다.
- 물리적 분리를 통한 보안성 강화
- SSL에 대한 암복호화 처리를 위해 Web Server를 사용한다.
- 쉽게 이야기하면 HTTPS를 웹서버를 통해서 사용하게 한다는 것이다.
- 접근 허용 세션관리등에서도 웹서버에서 관리하면 편리하고 보안성도 좋다.
- 여려 웹어플리케이션 사용가능 및 여려 WAS서버에 연결가능
- 부하를 적절히 분산하기 위해 즉, Load Balancing을 위해 웹서버를 사용하며 부하를 여러대의 WAS에 적절히 나누어 준다.
- 장애 극복에 유리하다. 특히 대형 웹서비스의 경우에는 동일한 기능을 하는 여러개의 WAS를 두어 종단 없는 서비스 제공이 가능하다.WAS 기본 아키텍처
'코딩 이야기' 카테고리의 다른 글
서버 알고쓰자 2편 프록시서버, 메일서버 (880) | 2024.02.18 |
---|---|
네트워크 기초 및 장비 (659) | 2024.02.17 |
서버도 컴퓨터다! (258) | 2024.02.01 |
파이썬으로 DB 정제 (601) | 2024.01.31 |
프레임워크(Framework)와 라이브러리(Library) (374) | 2024.01.30 |
댓글