웹 서버와 웹 어플리케이션 서버

지송현·2023년 1월 28일
0

web

목록 보기
7/13
post-thumbnail

서버에 두 종류가 있다.

  1. 웹 서버
  2. 웹 어플리케이션 서버

하나씩 살펴보자.

웹 서버(WS)

웹 서버는 클라이언트에서 요청을 받아 정적인 페이지를 제공한다.

정적인 페이지란 뭘까?

  • 정적 페이지
    • image, html, css, js 파일과 같이 컴퓨터에 저장되어 있는 파일들을 의미
    • 요청에 맞는 항상 동일한 페이지를 반환
  • 동적 페이지
    • 들어온 요청에 맞게 동적으로 만들어진 페이지
    • db, 서버 내 로직 등을 활용해 만들어진다.

만약 동적인 페이지 요청이 들어온다면 웹 어플리케이션 서버로 요청을 보낸다.

웹 서버에는 Apache Server, Nignx 등이 있다.


웹 어플리케이션 서버(WAS)

웹 어플리케이션 서버는 클라이언트에서 요청을 받아 동적인 페이지를 제공한다.

사실 웹 서버와 웹 컨테이너를 포함한 개념이다. 웹 서버와 같이 정적인 페이지를 제공할 수도 있고, 동적으로 db와 연결하여 여러 데이터를 활용해 페이지를 구성할 수도 있다.

웹 어플리케이션 서버로는 Tomcat, JBoss, Jeus 등이 있다.

  • 웹 컨테이너?
    웹 서버가 보낸 jsp, php, asp 등의 파일들을 실행하고 결과를 다시 웹 서버로 보내주는 역할을 한다.

정리하면 웹 어플리케이션 서버는 웹 서버, 혹은 클라이언트에서 요청을 받고 이것을 웹 컨테이너로 보내 로직을 수행하고 그 결과를 다시 클라이언트로 보내주는 역할이다.

-> 웹 서버와의 차이는 결국 어떤 컨텐츠를 제공하냐이다. (동적/정적)


웹 서버를 사용하는 이유?

웹 어플리케이션 서버가 웹 서버를 포함한다면 굳이 웹 서버를 써야하는 이유가 있는가?

그렇다.

  1. 기능 분리
    WAS는 DB, 여러 로직을 처리한다. 이에 더해 원래 WS의 기능인 정적인 페이지까지 맡게되면 부하가 걸릴 가능성이 높아진다. 이를 위해 기능을 분리하는 것이 좋다.
  2. 여러 대의 WAS를 연결해 로드 밸런싱 용도로 사용
  3. 여러 언어의 웹 어플리케이션 서비스 가능

NodeJs?

위에서 아파치 등을 사용한다고 했는데 그동안의 nodejs 개발에서 그러한 것들을 사용한 적이 없었다. 왜 그럴까.

nodejs는 위의 ws와 was의 기능을 모두 담당한다. express를 통해 정적 파일을 제공하고 나머지가 언어 해석, db 연결 등을 담당한다.

그러나 nginx같은 웹 서버를 아예 사용하지 않는 건 아니다. 기업에서는 nginx나 apache 등을 활용해 보안상의 이점과 캐싱 등을 통해 속도 상의 이점을 갖는다고 한다.

profile
백엔드 개발자

0개의 댓글

관련 채용 정보