WEB

Web Server & WAS

hongdangmoo 2023. 11. 17. 00:31

◎ Web Server

-> 아래 두 가지 의미가 있다.

1. 소프트 웨어적 측면으로 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아 *정적 컨텐츠(html, css 등)를 제공하는 프로그램

2. 하드웨어 측면으로는 1번의 기능을 제공하는 컴퓨터 프로그램을 실행하는 컴퓨터

*정적 컨텐츠 : 모든 클라이언트에 대해 동일한 응답 결과를 제공하는 컨텐츠

-> HTTP 기반으로 동작한다.

 

-> Web Server 기능

- 클라이언트로부터 http 요청을 받는다.

- 정적 컨텐츠를 제공한다.

- *동적 컨텐츠 요청 시 해당 클라이언트의 요청을 WAS에 보내고 WAS에서 처리한 응답을 클라이언트에게 전달한다.

*동적 컨텐츠 : 클라이언트에 따라 각각 다른 형태의 응답을 제공하는 컨텐츠

클라이언트와 웹 서버의 요청/응답 흐름

 

WAS(Web Application Server)

-> 여러 로직 처리나 db 관련 데이터 조회 등의 동적 컨텐츠를 제공하는 프로그램

-> 웹 서버 기능 + 정적 컨텐츠 제공(가능)

-> 프로그램 코드를 실행하여 애플리케이션의 로직을 수행한다.

-> 인터넷 상에서 http를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행하는 미들웨어다.

 

-> WAS의 기능 

- 프로그램의 실행환경과 데이터베이스 접속 기능 제공

- 여러 개의 트랜잭션 관리

- 업무를 처리하는 비즈니스 로직 수행

WAS

 

◎ Web Server와 WAS를 구분하는 이유

-> Web Server는 정적 페이지를 담당하고, WAS는 db 조회 및 다양한 로직 처리를 담당하게 하여 기능을 분리해서 서버의 부하를 방지할 수 있다.

-> web server와 was를 물리적으로 분리하여 *ssl에 대한 암호화 및 복호화 처리에 web server를 사용하여 보안을 강화한다.

*ssl : 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약

-> 여러 대의 was를 연결하여 하나의 was에 문제가 생겨도 다른 was는 정상 동작하고 있기 때문에 사용자 입장에서는 문제를 인식하지 못하고 서비스를 사용할 수 있다.

-> 정적 리소스가 많이 사용되면 web server를 증설하고, 애플리케이션 리소스가 많이 사용되면 was를 증설한다.

-> client - web server - was - db 형태로 분리하여 web server와 was를 분리하여 생기는 장점을 활용할 수 있다.

 

★ 참고

https://www.youtube.com/watch?v=mcnJcjbfjrs

https://ko.wikipedia.org/wiki/%EC%9B%B9_%EC%84%9C%EB%B2%84

https://ko.wikipedia.org/wiki/%EC%9B%B9_%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98_%EC%84%9C%EB%B2%84

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-%EC%9B%B9-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B5%AC%EC%A1%B0-%EC%A0%95%EB%A6%AC

https://ko.wikipedia.org/wiki/%EC%A0%84%EC%86%A1_%EA%B3%84%EC%B8%B5_%EB%B3%B4%EC%95%88

https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html