웹 서버는 어디에 있을까?
웹 서버는 클라이언트(예: 웹 브라우저)의 요청을 처리하고 응답을 제공하는 서버이다. 웹 서버는 물리적 또는 가상 서버로, 인터넷이나 내부 네트워크에 연결되어 있으며, 주로 다음과 같은 위치에 존재한다.
1. 데이터 센터 : 대규모 데이터 센처에 위치하여, 여러 웹 서버가 클러스터로 구성되고, 전 세계적으로 분산되어 사용자의 요청을 처리한다. 아마존 (AWS), 구글 클라우드, Azure 등 클라우드 서비스 제공업체의 데이터 센터가 대표적이다.
2. 호스팅 제공업체 : 웹 호스팅 서비스(예:Bluehost, GoDaddy)에서 제공하는 서버에 웹 사이트가 호스팅될 수 있다. 이러한 호스팅 서비스는 보통 데이터 센터를 통해 제공한다.
3. 사내 서버 : 어떤 경우에는 조직의 내부 네트워크에 웹 서버가 설정되어 있을 수 있다. 이러한 서버는 조직 내에서만 접근 가능하거나, 특정 설정을 통해 외부에서 접근 가능하게 설정되어있다.
4. 개인 서버 : 일부 개인이나 소규모 사업자는 자신의 물리적 서버나 가상 서버를 설정하여 웹 서버를 운영하기도 한다. 자택이나 개인 소유의 사무실에서 운영될 수 있다.
웹 서버의 위치를 확인하려면, DNS 조회, IP 주소 추적, 클라우드 관리 도구 등을 사용할 수 있다.
웹서버의 역할 수행
웹서버는 클라이언트(사용자)가 브라우저 주소창에 URL을 입력하면 어떤 페이지를 요청하게 되면 http 요청을 받아들여 HTML 문서와 같은 정적인 콘텐츠를 사용자에게 전달해주느 게 가장 큰 역할이다.
웹 서버의 임무는 대표적으로 2가지가 있다.
1. 단순히 저장된 웹 리소스들을 클라이언트로 전달하고, 클라이언트로부터 콘텐츠를 전달받아 저장하거나 처리한다.
2. 사용자로부터 동적인 요청이 들어왔을 떄 해당 요청을 웹서버 자체적으로 처리하기 어렵기 때문에 해당 요청을 WAS에게 요청한다.
대표적 웹서버의 종류 : Apache, Ngingx
WAS (Web Application Server) 란?
WAS 또한 웹서버와 동일하게 HTTp 기반으로 동작한다. 웹서버가 할 수 있는 기능 대부분이 WAS에서도 처리가 가능하며 비즈니스 로직 (서버사이드 코드)을 처리할 수 있어 사용자에게 동적인 콘텐츠를 전달 할수가 있으며, 주로 데이터베이스 서버와 같이 수행한다.
즉, WAS의 주요 임무는 동적인 요청을 받아 처리해주는 서버 이다.
웹 애플리케이션 서버 (Web Application Server)는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크이다. 인터넷상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어 (소프트웨어 엔진)으로 볼 수 있다. 웹 애플리에키션 서버는 동적서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행된다.
대표적인 WAS의 종류 : Tomcat , JBoss, Jeus
웹서버와 WAS 의 차이
기능적으로 동일한 영역이 있으며 WAS가 웹서버 기능의 많은 부분을 포함하여 수행하기도 하지만 사용의 "목적"이 다르다
웹서버는 정적인 데이터를 처리하는 서버이다. 이미지나 단순 HTML 같은 정적인 리소스들을 전달하며 WAS만을 이용할 경우보다 빠르고 안정적으로 기능을 수행한다.
WAS는 동적인 데이터를 위주로 처리하는 서버이다. DB와 연결되어 사용자와 데이터를 주고받고 조작이 필요한 경우 WAS를 활용한다.
그렇다면 아파치와 톰캣은 무엇일까?
아파치(Apache)란
아파치는 웹드와이드 웹 서버용 소프트웨어이다. http아파치 서버라고도 불리고, HTTP 웹 서버이다. 리눅스나 윈도우 등 거의 모든 운영체제에서 사용이 가능하다.
톰캣(Tomcat)이란?
톰캣은 아파치 소프트웨어 재단의 웹 어플리케이션 서버(와스)로서, 자바 서블릿을 실행시키고 jsp 코드가 포함되어 있는 웹 페이지를 만들어 준다. 쉽게 설정하자면 톰캣은 웹서버에서 넘어온 동적인 페이지를 읽어 들여 프로그램을 실행하고 그 결과를 다시 html로 재구성하여 아파치에게 되돌려 준다.
톰캣은 독립으로도 사용될 수 있지만 아파치나 IIS 등 다른 웹서와 함께 사용될 수도 있다.
아파치 와 톰캣의 차이는?
아파치는 정적인 데이터를 처리하는 서버 (웹서버) 단순 이미지나 HTML파일과 같은 데이터만 처리한다.
톰캣은 동적인 데이터를 처리하는데 (WAS) JSP와 Servlet을 구동하기 위한 서블릿 컨테이너 역할을 수행한다. 아파치 서버와 다르게 DB 연결, 다른 응용프로그램과 상호작용 등 동적인 기능들에서 활용될수 있다.
웹 컨테이너 (Web Container)
동적인 처리를 하는곳 이라고 하는데 웹 컨테이너는 jsp와 servlet이 실행 할 수 있는 프로그램으로 서블릿 컨테이너 라고도 한다.
JSP와 Servlet은 웹 서버가 입력 받은 정보를 통해 동적인 데이터를 처리하여 정적인 페이지를 생성한다.
예) 웹 사이트에 로그인을 하게되면 회원마다 다른 정보를 보여줘야한다. 웹 서버는 정적인 페이지만 보낼 수 있기 때문에 컨테이너가 웹 서버로 부터 정보를 받아 동적 페이지를 생성하여 웹 서버에게 전달 해준다.
총 정리
웹 서버는 우리가 흔히 쓰는 아파치 이고 was(Web Application Server) 는 톰캣이다.
웹 서버는 정적인 데이터를 처리하는데 흔히 우리가 자주 보는 단순 이미지나 HTML 파일과 같은 데이터만 처리하고
WAS는 동적인 데이터를 처리하는데 이용된다. JSP와 Servlet을 구동하기 위한 서블릿 컨테이너 역할을 수행한다.
서블릿 컨테이너는 웹 서버가 입력 받은 정보를 동적인 데이터를 처리하여 정적인 페이지를 생성한다. 예를 들어 회원가입하고 사용자한테 보여주는 정보가 다르게 보여주는데 이때 서블릿 컨테이너가 웹 서버로 부터 정보를 받아 동적 페이지를 생성하여 웹서버에게 전달 해주는 것이다.