원문: Difference Between Web server and Application server(31 Aug, 2022)
정처기 공부하다가 갑자기 궁금해서 번역 + a 정리한 내용입니다.
📌 한줄요약: 웹 서버는 정적인 데이터를 처리하는 서버이고, 애플리케이션 서버는 동적 데이터를 처리하는 서버이다.
서버는 네트워크 내에서 프로그래머가 정보와 컴퓨터 프로그램을 보관하고 액세스하는 중앙 저장소다. 웹 서버
및 애플리케이션 서버
는 사이트를 제공하는 데 사용되는 일종의 서버이므로, 애플리케이션 서버
는 사용자와 Back-end 비즈니스 애플리케이션 간에 수행되는 작업을 처리한다.
데이터 요청을 수락하고 지정된 문서를 보내는 컴퓨터 프로그램이다. 웹 서버는 온라인 콘텐츠가 보관되는 컴퓨터일 수 있다. 기본적으로 인터넷 서버는 사이트를 호스팅하는 데 사용되지만, 레크리에이션, 스토리지, FTP, email 등과 같은 다양한 웹 서버가 존재한다.
아파치 톰캣은 아파치 소프트웨어 재단에서 개발한 서블릿 컨테이너만 있는 웹 애플리케이션 서버(???)다. 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바서버 페이지와 자바 서블릿이 실행할 수 있는 환경을 제공한다. (출처 위키백과)
Caucho Technology의 웹 서버 및 Java 애플리케이션 서버. Resin 외에도 Resin Pro는 라이선스가 있는 기업 및 생산 환경에서 사용할 수 있다.
원본 블로그에는 아파치 톰캣이 웹 서버의 예시라고 되어 있지만, 아파치 톰캣은 애플리케이션 서버가 맞다. 잘못 작성된 것 같다. 결론은 Apache
가 웹 서버이고 tomcat
은 애플리케이션 서버라고 정리할 수 있다.
웹 컨테이너(Web container)와 EJB 컨테이너를 포함한다. 애플리케이션 서버
는 ★★★★★엔터프라이즈 애플리케이션의 실행 환경을 구성한다. 웹 서버
와 함께 애플리케이션 서버
를 사용할 경우 강력한 기능을 수행할 수 있다.
애플리케이션 서버
는 사용자, IT 서비스 및 조직을 위한 응용 프로그램 및 서비스를 호스팅하고 운영 체제를 배치하는 방법을 의미하는 합리적인 서버일 수 있다. 실제 운영 사이트에서 문제가 생길 경우 장애처리를 해야하는 상황이 발생하는데 Weblogic과 같은 애플리케이션 서버
는 Oracle과 같은 제조사(?)를 통해 기술지원을 받을 수 있기 때문이다. (추가내용 출처)
애플리케이션 서버
는 프로토콜 및 RPC/RMI 프로토콜과 유사한 사용자 인터페이스를 사용한다.
No | 웹 서버 | 애플리케이션 서버 |
---|---|---|
1 | 웹 컨테이너만 포함한다. | 웹 컨테이너와 EJB 컨테이너를 포함한다. |
2 | 정적 콘텐츠에 유용하거나 적합하다. | 동적 콘텐츠에 적합하다. |
3 | 더 적은 리소스를 소비하거나 활용한다. | 더 많은 리소스를 활용한다. |
4 | 웹 응용 프로그램의 실행 환경을 조성한다. | 엔터프라이즈 애플리케이션을 위한 실행 환경을 조성한다. |
5 | 멀티스레딩이 지원된다. | 멀티스레딩이 지원 X |
6 | 용량이 애플리케이션 서버보다 작다. | 상대적으로 용량이 크다. |
7 | HTML과 HTTP 프로토콜을 사용한다. | HTTP와 RPC/RMI프로토콜 뿐아니라 GUI도 사용한다. |
8 | 리소스가 많이 사용되지 않는 프로세스가 지원된다. | 리소스 집약적인 프로세스가 지원된다. |
9 | 트랜잭션과 커넥션 풀링 지원 X | 트랜잭션과 커넥션 풀링 지원 |
10 | 결함에 대한 내구성(capacity of fault tolerance)이 낮다. | 상대적으로 결함에 대한 내구성이 높다. |
11 | Apache HTTP Server, Nginx | JBoss, Glassfish |