일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- javascript
- 자바스크립트 class
- Spring boot
- pom.xml
- REST API
- 스프링 에러
- Oracle
- javascript 클래스
- egov
- spring 에러
- 디자인 패턴
- spring boot rest api
- 자바스크립트
- 인텔리제이
- javascript class
- spring boot CRUD
- Intellij
- 스프링
- 스프링부트 post api
- Spring
- spring 설정 파일
- spring boot error
- 자바스크립트 클래스
- 메이븐
- Spring REST API
- 오라클
- 전자정부 샘플
- exceptiontransfer
- spring boot post api
- 전자정부프레임워크
- Today
- Total
빵구의 개발 메꾸기
Web Server VS Web Application Server 본문
WS(Web Server)와 WAS(Web Application Server)의 차이
클라이언트 역할 : 필요한 데이터에 대해 웹 서버에 요청하는 주체
서버 역할 : 클라이언트의 요청에 대해 처리를 하고 결과를 클라이언트에게 전달
HTTP의 기본 포트는 80이며 80 포트 번호는 기본으로 셋팅되어 있기 때문에 ip주소 이후의 : 포트 번호는 생략해도 됨.
<Connector port="8080" protocol="HTTP/1.1"은 HTTP프로토콜로 들어오는 건 8080포트로 연결하겠다라는 의미.
클라이언트에서 HTTP 요청이 들어오면 웹 서버에서는 들어온 요청이 정적인지 동적인지 판단하고
정적인 요청이면 WS 자체에서 처리를 하고 동적인 요청이면 WAS로 넘긴다.
정적인 요청에 대한 예시는 어떠한 사용자든 상관 없이 HTML이나 IMAGE, CSS에 대한 변하지 않는 내용을
WS가 제공한다.
동적인 요청에 대한 예시는 DB 조회 혹은 BACK단의 로직 처리를 필요로 하는 내용을 클라이언트에게 제공해야 하는
경우 WAS가 동적인 응답을 만들어낸 뒤 처리한 결과를 제공한다.
흔히 사용하는 대표적인 웹 서버는 Apache Http Server 이고 대표적인 웹 어플리케이션 서버는 Apache Tomcat이다.
둘다 아파치 apache software foundation에서 만들어서 이름은 비슷하지만 역할은 차이가 크다.
물론 대부분의 WAS는 WS를 내장하고 있기 때문에 HTTP에 대한 요청을 받을 수 있다.
(정적인 요청과 동적인 요청에 대해 모두 처리 가능)
따라서 WAS만으로 전부 처리가 가능하기 때문에 WS의 필요성을 모를 수 있다.
하지만 WS를 별도로 두고 사용할 경우는 각각 역할에 맞는 처리를 할 수 있기 때문에 서버에 대한 부하가 줄어든다.
그렇기 때문에 사용자가 많은 대규모 프로젝트의 경우 WS와 WAS를 별도로 두고 관리한다.
또한 WAS는 여러 WAS를 두고 처리해야 되는 클라이언트의 요청에 대해 책임을 분할해서 처리할 수 있다.
이 부분을 로드 밸런싱(Load Balancing)이라고 부른다.
WAS(웹 어플리케이션 서버) = Web Container(웹 컨테이너) = Servlet Container(서블릿 컨테이너)
web.xml : 배포 서술자
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>test.bkjo.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<url-pattern>/test</url-pattern>
<servlet-name>TestServlet</servlet-name>
</servlet-mapping>
경로가 긴경우 서블릿 매핑을 해줘서 별칭으로 경로에 test.bkjo.TestServlet 대신에 /test를 입력해주면된다.
xml을 수정했을때는 서버를 재구동해줘야 적용이된다.
'웹 개발 시 알아두면 좋은 개념' 카테고리의 다른 글
JSON VS XML (0) | 2022.04.18 |
---|---|
Library VS Framework (0) | 2022.04.17 |
HTTP 상태 코드 별 특징 (0) | 2022.04.15 |
쿠키 vs 세션 vs 토큰 (1) | 2022.04.04 |