서버 개발에 있어 가장 기초적인 개념인 '웹 서버'와 'WAS'의 차이?
웹 서버
: 웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고 HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램
클라이언트(사용자)가 웹 브라우저에서 어떠한 페이지 요청을 하면 웹 서버에서 그 요청을 받아 정적 컨텐츠를 제공하는 서버.
정적 컨텐츠란 단순 HTML 문서, CSS, javascript, 이미지, 파일 등 즉시 응답가능한 컨텐츠.
동적 컨텐츠를 요청 받으면 WAS에게 해당 요청을 넘겨주고, WAS에서 처리한 결과를 클라이언트에게 전달해주는 역할도.
대표적 ex) Apache
웹 애플리케이션 서버 WAS
: 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크
인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)로 볼 수 있다.
동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다.
웹 서버 단독으로는 처리할 수 없는 데이터베이스의 조회나 다양한 로직 처리가 필요한 동적 컨텐츠를 제공.
덕분에 사용자의 다양한 요구에 맞춰 웹 서비스를 제공할 수 있음
대표적 ex) Tomcat
기본 기능
- 프로그램 실행 환경과 데이터베이스 접속 기능을 제공
- 여러 개의 트랜잭션을 관리
- 업무를 처리하는 비즈니스 로직을 수행
WAS는 DB 조회 및 다양한 로직을 처리하는 데 집중해야 한다. 따라서 단순한 정적 컨텐츠는 웹 서버에게 맡겨 기능을 분리시켜 서버 부하를 방지한다. 만약 WAS가 정적 컨텐츠 요청까지 처리하면, 부하가 커지고 동적 컨텐츠 처리가 지연되면서 수행 속도가 느려지고 이로 인해 페이지 노출 시간이 늘어나는 문제가 발생하여 효율성이 크게 떨어진다.
따라서 웹 서버와 WAS를 함께 쓰는 것이 좋음?
참고 : 위키백과, 코드사냥꾼 - 웹서버와 WAS 차이,
'웹 개발' 카테고리의 다른 글
HTTP referer 란? (+ send referer header in iOS) (0) | 2022.09.01 |
---|---|
[크롬 개발자 도구] 웹페이지 디버깅 전체 검색 하는 법 (0) | 2022.01.06 |
CSRF token mismatch (0) | 2021.09.16 |
HTML (0) | 2021.09.03 |
웹 소켓 Web Socket (0) | 2021.05.20 |