왜 웹서버라고 하나요?
379
작성자 없음
작성한 질문수 0
웹 서버와 스프링 부트 소개 강의를 보면..
웹어플리케이션 서버를 웹서버라 부르는 이유
톰캣은 WAS인데 웹어플리케이션 서버인데..
강의안에서 계속 WAS를 웹서버라고 하시는데
이유가 뭔지 궁금합니다..
WAS안에 웹서버가 들어있어서 그런건가요?
요청 순서
요청이 오면 무조건 웹어플리케이션 안의 웹서버로 요청이 먼저오고 그 요청을 서블릿 컨테이너로 다시 넘기는 건가요?

3. 웹서버가 2개 인경우
마지막 그림을 보시면 웹서버가 외부에 하나 있고 그 요청이
WAS로 들어가는데 WAS 안에 는 사실 또 하나의 웹서버가 있지 않나요? 그러면
요청 순서가
클라이언트 - 외부 웹서버 - 내장 웹서버 - 서블릿컨테이너 - 스프링 이런식으로 흘러갈까요..?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
리어스리님의 질문에 대해 몇 가지 정보와 기존 답변을 참고할 수 있는 링크를 알려드리겠습니다. 구조적인 측면에서 웹서버와 WAS(Web Application Server) 사이의 관계와 역할에 대해 나누어볼 수 있습니다.
웹서버와 WAS의 기본 구분 및 연계:
- 웹 서버는 정적 컨텐츠(HTML, CSS, JS 등)를 제공하는 반면, WAS는 동적 컨텐츠를 처리하기 위해 존재합니다(예를 들어, 서블릿을 실행하거나 JSP를 통해 HTML을 동적으로 생성함).
- 톰캣(Tomcat)은 실제로 WAS이기도 하고 내부적으로는 HTTP 요청을 받을 수 있는 내장된 웹 서버 기능을 가지고 있습니다. 이는 동적 및 정적 자원 처리 능력을 가지고 있다는 의미입니다.
- 웹 서버는 정적 컨텐츠(HTML, CSS, JS 등)를 제공하는 반면, WAS는 동적 컨텐츠를 처리하기 위해 존재합니다(예를 들어, 서블릿을 실행하거나 JSP를 통해 HTML을 동적으로 생성함).
요청 순서 상세화:
- 전달하신 이미지에 따르면, 요청이 클라이언트로부터 시작하여 톰캣 서버에 도달합니다. 톰캣 내의 웹 서버가 HTTP 요청을 처리하고, 해당 요청은 서블릿 컨테이너로 이교되어 적절한 서블릿에 전달됩니다.
- 스프링의 경우, DispatcherServlet 등 스프링 MVC 구조를 통해 요청이 처리됨을 나타냅니다.
- 전달하신 이미지에 따르면, 요청이 클라이언트로부터 시작하여 톰캣 서버에 도달합니다. 톰캣 내의 웹 서버가 HTTP 요청을 처리하고, 해당 요청은 서블릿 컨테이너로 이교되어 적절한 서블릿에 전달됩니다.
웹서버가 2개인 경우 요청 순서:
- 마지막으로 질문하신 부분에 대해서는, 일반적으로 외부 웹서버(예: Nginx, Apache)가 있고, WAS(예: Tomcat) 내부에 또 다른 웹서버 기능이 내장된 경우, 외부 웹서버는 정적 자원을 처리하거나 부하 분산 역할을 하고, 동적 요청은 WAS로 전달하여 처리하는 구조입니다.
- 마지막으로 질문하신 부분에 대해서는, 일반적으로 외부 웹서버(예: Nginx, Apache)가 있고, WAS(예: Tomcat) 내부에 또 다른 웹서버 기능이 내장된 경우, 외부 웹서버는 정적 자원을 처리하거나 부하 분산 역할을 하고, 동적 요청은 WAS로 전달하여 처리하는 구조입니다.
위 내용으로 질문에 대해 부분적으로 답변할 수 있지만, 좀 더 자세한 구분과 요청 흐름에 대한 이해를 돕기 위한 참고 자료를 알려드립니다.
- WAS, Web Server 질문 입니다.: 이 글에서는 WAS와 웹 서버의 관계에 대한 질문과 해당 주제에 대한 답변이 포함되어 있습니다.
- 서블릿 컨테이너 / WAS 차이: 이 글에서는 서블릿 컨테이너와 WAS의 차이점, 그리고 이들 간의 관계에 대해 설명하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
보안이 엄격한 데이터
0
73
1
MyProperties 자체를 클라이언트 코드에서 사용
1
43
1
http://localhost:8080/actuator/prometheus
0
85
3
jar 추가에대한 질문드려도될까요?
0
64
1
build.gradle bom link 변경
0
65
2
@Counted 초기화
0
47
1
@Validated를 적용해도 빈 검증이 안되는 경우에 대한 조치 공유..
0
101
2
springboot에서 actuator없이 micrometer를 사용할수 있나요?
0
67
1
@Configuration 질문드립니다.
0
84
2
[공유] 터미널 말고 IDE 에서 jar 실행하기
0
101
1
localhost:8080/hello-servlet 404오류
0
123
2
내장톰캣2 서블릿 톰켓 실행이 안됩니다
1
154
2
최대 Tomcat 스레드 수를 확인하는 지표
0
160
1
mac m2에서 startup.sh 실행후 아무 반응이 없습니다.
0
94
2
내장 톰캣 실행 오류 관련 질문드립니다.
0
158
1
스프링 발전 과정들도 자세히 알아둬야하나요??
1
127
1
스프링부트 ioc 컨테이너 갯수
0
89
1
404 페이지
0
133
3
actuator 호출시 타임스탬프 질문
0
90
1
순수 라이브러리 사용하기 2 - memory-v1
0
125
1
외부설정 @ConfigurationProperties의 내부 클래스에서 static을 사용하는 이유를 알고 싶습니다.
0
105
1
서블릿 컨테이너 초기화1 강의 관련 질문입니다~
0
93
1
Thread Config Max 패널 설정 변경 질문
0
128
1
스프링 액츄에이터 shutdown 엔드포인트 활성화가 안됩니다.
0
107
1





