티스토리 뷰
웹 서버
정적 콘텐츠 제공자
- 클라이언트(웹 브라우저)로부터 HTTP 요청을 받아 정적인 HTML 파일, 이미지, CSS 파일 등을 제공하는 서버
- 요청된 리소스를 클라이언트에게 그대로 반환합니다.
- 일반적으로 특정 폴더(웹 루트 디렉토리)에 정적 콘텐츠를 저장합니다.
- 클라이언트의 요청이 들어오면, 웹 서버는(컴퓨터) 이 폴더에서 요청된 파일을 찾아서 클라이언트에게 전달합니다.
- 가장 유명한 웹 서버로는 아파치 HTTP 서버(Apache HTTP Server)와 Nginx가 있습니다.
예시: 도서관에서 사서에게 특정 책을 요청하면, 사서는 책장에 있는 책을 찾아서 우리에게 그대로 전달합니다. 사서가 직접 책을 쓰거나 내용을 변경하지는 않습니다.
즉, 인터넷에 연결된 컴퓨터에서 누구나 접근할 수 있는 규칙을 정한 특정 폴더 안에 넣어둔 정적인 파일들을 제공해주는 프로그램입니다. 이 프로그램을 웹 서버라고 하며 HTML 파일, 이미지, CSS 파일 등과 같은 정적인 콘텐츠를 클라이언트(웹 브라우저)에게 제공합니다.
웹 서버의 주요 기능
- HTTP 요청 처리: 클라이언트로부터 HTTP 요청을 받아 처리합니다.
- 정적 콘텐츠 제공: HTML 파일, 이미지, CSS 파일 등 정적인 리소스를 제공하는 역할을 합니다.
- 요청된 리소스 반환: 클라이언트가 요청한 리소스를 찾아서 그대로 반환합니다. ( index.html 파일을 요청하면, 웹 서버는 웹 루트 디렉토리에서 index.html 파일을 찾아 클라이언트에게 전달합니다.)
웹 애플리케이션 서버(WAS)
동적 콘텐츠 제공자
- 동적인 웹 애플리케이션을 실행시키기 위한 서버입니다.
- 서블릿, JSP와 같은 동적 콘텐츠를 처리하고 비즈니스 로직을 실행합니다.
- 주로 데이터베이스와 연동하여 동적인 데이터를 생성하고 클라이언트에게 반환합니다.
- 유명한 WAS로는 Apache Tomcat, JBoss, WebSphere 등이 있습니다.
예시: 레스토랑 주방장 손님이 메뉴를 주문하면, 주방장은 그 주문을 받아서 재료를 사용해 요리를 만듭니다. 주방장은 단순히 주문을 받아 전달하는 것이 아니라, 주문에 따라 직접 요리를 만들어 제공하는 역할을 합니다.
즉, 웹 서버로부터 오는 동적인 요청을 처리하는 서버를 말합니다. 웹 서버와 컨테이너를 붙여놓은 서버라고 생각할 수 있습니다.
WAS의 주요 기능
- 동적 콘텐츠 생성 (서블릿, JSP 등)
- 비즈니스 로직 처리
- 데이터베이스와 연동
- 세션 관리 및 트랜잭션 관리
웹 서버와 WAS의 차이점
함께 사용하는 이유
웹 서버와 WAS는 보통 함께 사용됩니다.
웹 서버는 클라이언트로부터의 모든 요청을 받으며, 정적 콘텐츠에 대한 요청은 직접 처리하고, 동적 콘텐츠에 대한 요청은 WAS로 전달합니다. 이는 시스템의 성능과 보안을 향상시키는 데 도움이 됩니다.
예시 : 도서관(웹 서버)에서는 책(정적 콘텐츠)을 직접 제공하고, 도서관에서 운영하는 카페(WAS)에서는 주문한 음료나 음식(동적 콘텐츠)을 만들어 제공합니다. 두 시설은 서로 협력하여 방문객의 다양한 요구를 충족시킵니다.
정리
- 웹 서버: 정적 콘텐츠를 제공하는 서버. 클라이언트의 요청을 받아 HTML 파일, 이미지 등을 반환합니다. 예를 들어, Apache HTTP Server, Nginx 등이 있습니다.
- 웹 애플리케이션 서버 (WAS): 동적 콘텐츠를 생성하고 비즈니스 로직을 처리하는 서버. 서블릿과 JSP를 실행하고 데이터베이스와 연동하여 데이터를 처리합니다. 일반적으로 WAS는 웹 서버와 통합되어 동작하며, 클라이언트의 요청을 처리하여 직접 응답하거나, 필요한 경우 웹 서버를 통해 클라이언트에게 응답을 전달합니다. 예를 들어, Apache Tomcat, JBoss, WebSphere 등이 있습니다.
'JSP' 카테고리의 다른 글
WAS와 웹 컨테이너의 역할 (0) | 2024.07.01 |
---|---|
웹 브라우저, URL, 웹 렌더링 (0) | 2024.06.28 |
Web, Web resource, 웹 클라이언트와 서버의 통신 (0) | 2024.06.28 |
HTTPS (0) | 2024.06.28 |
통신 프로토콜 및 HTTP 요청 및 응답, 메시지 (0) | 2024.06.28 |