엄밀히 말하자면, 웹 서버는 애플리케이션 서버의 일반적인 서브세트입니다.
웹 서버는 주로 웹 브라우저에서의 하이퍼텍스트 전송 프로토콜(HTTP) 요청에 응답하여 정적 웹 컨텐츠(예: HTML 페이지, 파일, 이미지, 비디오)를 제공합니다.
일반적으로 애플리케이션 서버에서 웹 컨텐츠도 제공할 수 있으나, 이 서버의 주 기능은 최종 사용자 클라이언트와 서버 측 애플리케이션 코드(이른바 비즈니스 로직을 표현하는 코드) 간의 상호 작용을 통해 동적 컨텐츠, 이를테면 트랜잭션 결과, 의사결정 지원, 실시간 분석 등을 생성하고 제공하는 것입니다. 애플리케이션 서버의 클라이언트로는 애플리케이션 자체의 최종 사용자 UI, 웹 브라우저, 모바일 앱 등이 있습니다. 그리고 클라이언트-서버 상호작용은 수적 제한이 없는 통신 프로토콜을 통해 일어날 수 있습니다.
그러나 현실에서는 웹 서버와 애플리케이션 서버의 구분이 모호해졌습니다. 특히 웹 브라우저가 애플리케이션 클라이언트로 인기를 얻고 웹 애플리케이션 및 웹 애플리케이션 성능에 대한 사용자의 기대가 상승하면서 더욱 그러합니다.
대부분 웹 서버는 스크립팅 언어(예: ASP, JSP, PHP, Perl)의 플러그인을 지원합니다. 그러면 웹 서버에서 서버 측 로직을 기반으로 동적 컨텐츠를 생성할 수 있습니다. 또한 점점 더 많은 수의 애플리케이션 서버가 웹 서버 기능을 통합함은 물론, HTTP를 기본 프로토콜로 사용하고 웹 서버와의 인터페이스를 위해 기타 프로토콜(예: CGI 및 CGI 변형)을 지원합니다. 아울러 웹 애플리케이션에서 리버스 프록시, 클러스터링, 이중화, 로드 밸런싱 등의 서비스를 활용할 수 있게 됩니다. 이러한 서비스는 성능과 안정성을 강화할 뿐만 아니라 개발자가 인프라보다는 코딩 작업에 더 집중할 수 있게 합니다.
게다가 다수의 웹 서버와 일부 애플리케이션 서버가 웹 애플리케이션 서버로 불리거나 자체로 지칭하고 있어 더욱 혼란스럽습니다.
결론적으로, 오늘날 가장 많이 쓰이는 웹 서버와 애플리케이션 서버는 사실 이 둘의 하이브리드 버전입니다. 현재 우리가 사용하는 애플리케이션은 점점 더 강화되고 있는데, 그 대부분은 정적 웹 컨텐츠와 동적 애플리케이션 컨텐츠의 조합이며, 웹 서버 기술과 애플리케이션 서버 기술의 조합을 통해 제공됩니다.
현재 시장에는 모두 나열하는 게 불가능할 정도로 무수히 많은 웹 서버와 애플리케이션 서버가 있습니다. 그중에서 가장 인기 있는 무료 오픈 소스 서버 몇 가지를 소개합니다.
Nginx(ibm.com 외부 링크)는 리버스 프록시, 로드 밸런싱, 메일 프록시, HTTP 캐시 기능이 포함된 오픈 소스 웹 서버입니다. 유료 지원 버전의 Nginx도 Nginx, Inc. (ibm.com 외부 링크)에서 제공합니다. 인터넷 리서치 및 사이버 범죄 예방 전문 기업인 Netcraft(ibm.com 외부 링크)에 따르면, 2019년 12월 기준으로 Nginx는 전체 글로벌 웹 사이트 중 38% 가까이에서, 그리고 방문자 수 백만 돌파 사이트의 25% 이상에서 서비스 또는 프록싱을 맡았습니다. 잘 알려진 엔터프라이즈 규모의 Nginx 사용자로는 Dropbox, Netflix, Zynga 등이 있습니다.
1995년에 처음 출시된 Apache HTTP Server(줄여서 'Apache'라고도 함) 역시 매우 인기 있는 무료 오픈 소스 웹 서버입니다. 이 서버는 최근까지도, 즉 2019년 4월에 Nginx에 자리를 내주기 전까지는 다른 어떤 웹 서버보다도 많은 웹사이트(최전성기에는 무려 71%)를 서비스했습니다. 2019년 12월 기준으로 Apache는 전 세계 사이트의 24% 이상, 그리고 방문자 수 백만 돌파 사이트의 31%를 서비스했습니다.
Apache Tomcat(ibm.com 외부 링크)은 오픈 소스 애플리케이션 서버로서 Java 서블릿을 실행하고, JSP(JavaServer Page) 코드를 포함한 웹 페이지를 렌더링 및 제공하고, Java EE(Java Enterprise Edition) 애플리케이션을 서비스합니다. 1998년에 출시된 Tomcat은 가장 널리 사용되는 오픈 소스 Java 애플리케이션 서버입니다.
Glassfish(ibm.com 외부 링크)는 2006년에 Sun Microsystems에서 시작한 오픈 소스 Java EE 애플리케이션 서버이며, 현재는 Eclipse Foundation(ibm.com 외부 링크)에서 호스팅합니다. 대부분 Java 애플리케이션 서버처럼 Glassfish 역시 Java 서블릿, EJB(Enterprise JavaBeans) 등을 지원합니다. 그리고 HTTP 요청에 대한 응답으로 웹 컨텐츠를 제공하는 웹 서버의 기능도 할 수 있습니다.
IBM® WebSphere® Application Server는 Java 앱과 엔터프라이즈 애플리케이션을 빌드하고 운영하는 데 쓰이는 가장 혁신적인 애플리케이션 서버입니다.
차세대 애플리케이션 및 클라우드 서비스를 위한 포괄적이고 유연한 Java EE 및 MicroProfile 애플리케이션 서버
WebSphere® Hybrid Edition으로 클라우드 네이티브 개발, 애플리케이션 현대화 그리고 기존 애플리케이션에 대한 지원을 촉진하는 방법을 알아보세요.