웹 백엔드(서버) 공부를 시작하게 되면 만나는 세가지 용어
- 웹 서버(Web Server)
- 웹 컨테이너(Web container)
- 웹 어플리케이션 서버(Web application Server)
각각의 정의 및 특징에 대하여 알아보도록 하겠습니다.
[웹 서버(Web Server)]
"요청을 받아 Client에게 전달"
웹 서버는 Client 요청이 올때까지 기다리다가, 요청이 오면 요청에 대한 데이터를 전송을 해주는 역할을 하고 있습니다.
간단히 설명하면 크롬과 같은 웹 브라우저에서 네이버의 url인 www.naver.com 을 입력하면 웹 서버에서 요청을 받아 웹 브라우저에게 요청 한 파일을 전달해 줍니다.
이 때에 웹 서버는 이미 가지고 있는 html 파일이나 리소스 등 정적인 페이지만을 전송 할 수 있습니다.
웹 서버는 HTTP 프로토콜을 이용하여 클라이언트(웹 브라우저)의 요청을 받아 html 문서나 오브젝트를 전송합니다.
종류로는 아파치(Apache), IIS, Nginx 등이 있습니다.
[웹 컨테이너(Web container)]
"동적인 처리를 하는 곳"
웹 컨테이너는 JSP나 Servlet이 실행 할 수 있는 프로그램으로 서블릿 컨테이너(Servlet Container)라고도 합니다.
JSP와 Servlet은 웹 서버가 입력 받은 정보를 통해 동적인 데이터를 처리하여 정적인 페이지를 생성해줍니다.
예를 들어 웹 사이트에 로그인을 하게되면 회원마다 다른 정보를 보여주어야 됩니다.
웹 서버는 정적인 페이지만 보낼 수 있기 때문에 컨테이너가 웹 서버로 부터 정보를 받아 동적 페이지를 생성하여 웹 서버에게 전달해 줍니다.
[웹 어플리케이션 서버(Web application Server)]
웹 어플리케이션 서버(was)는 웹 서버(Web Server) + 웹 컨테이너(Web Container)를 결합한 서버를 의미합니다.
HTML 같은 정적인 페이지에서 처리할 수 없는 비지니스 로직, DB 조회 같은 동적인 컨텐츠를 제공합니다.
종류로는 톰캣이 있습니다.
[차이점]
- 웹 서버는 정적인 html, 리소스 등만을 처리할 수 있습니다.
- 웹 어플리케이션 서버는 동적 데이터를 처리할 수 있습니다.
- 두개를 같이 사용할 수도 있습니다. 그럴때는 정적처리는 웹서버에서, 동적 처리는 WAS에서 나눠서 처리합니다.
- 이렇게 기능을 분리하게 되면 서버 부하를 막을 수 있습니다.
- 물리적인 분리를 통하여 보안을 강화 할 수 있습니다.
'프로그래밍 > WEB' 카테고리의 다른 글
[Web/용어정리] JSP와 Servlet (0) | 2021.10.25 |
---|---|
[Web/용어정리] 서블릿(Servlet)이란 (0) | 2021.10.24 |
[Web/용어정리] 동적, 정적 웹 페이지 (0) | 2021.10.24 |