Web Server
인터넷을 기반으로 클라이언트에게 웹 서비스를 제공하는 컴퓨터
- Web 인터넷을 기반으로 정보를 공유, 검색할 수 있게 하는 서비스
웹의 3요소: URL(주소), HTTP(통신 규칙), HTML(내용)
- Server 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템 (저장소)
브라우저
웹서버에 주소(url)를 통신규칙(http)에 맞게 요청하면 알맞은 내용(html)을 응답 받음.
↕
서버
클라이언트의 요청을 기다리고, 웹 요청(http)에 대한 데이터를 만들어서 응답.
이때 데이터는 웹에서 처리할 수 있는 html, css, 이미지 등 정적인 데이터로 한정.
로컬컴퓨터도 웹서버로 만들 수 있다!
- 무료인 아파치 웹서버를 깔고 포트번호와 html파일을 어디로할지 디렉토리만 저장해주면 전세계 웹서비스를 할 수 있는 컴퓨터 완성.
html은 프로그래밍 언어가 아니지만 JAVA는 프로그래밍 언어입니다!
- DB에서 데이터를 가져와 전달하는 것 조차도 못하는 그냥 마크업 언어.
- 동적처리를 필요로 하기에 쓰려고 나온게 WAS.
WAS(Web Application Server)
(웹 → 웹 어플리케이션: html의 한계 극복)
- 인터넷을 통해 웹 브라우저에서 이용할 수 있는 응용 소프트웨어
- 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크
- WAS = 웹 서버 + 웹 컨테이너
- php, jsp, asp와 같은 언어들을 사용해 동적인 페이지를 생성할 수 있는 서버
- 프로그램 실행 환경과 데이터베이스 접속 기능 제공
- 비즈니스 로직 수행가능
- 클라이언트가 WAS로 요청을 보냄
- WAS안의 웹서버에서 정적/동적요청 파악
- 프로그래밍 돌려야하는 동적이면 컨테이너로 보냄 (정적이면 바로 6번 과정으로 끝냄)
- 컨테이너에서 서블릿이 실행됨 (JSP면 서블릿으로 변환 후 실행)
- 동적 컨텐츠를 생성해 웹서버에 전달
- 웹서버가 클라이언트에 전달
Web Server와 WAS의 차이
- 웹서버는 정적인 컨텐츠만
- WAS는 애플리케이션 돌리고 디비연결하고 동작실행해 만들어진 데이터, 동적 컨텐츠를 줄 수있는 서버
- 한줄요약: "상황에 따라 변하는 정보를 제공할 수 있는가"