웹(Web) 이란?
웹이란 인터넷 상의 정보를 하이퍼텍스트 방식과 멀티미디어 환경에서 검색할 수 있게 해주는 정보검색 시스템이다.
하나의 사이트나 다른 사이트와의 관계가 거미집처럼 복잡하게 얽혀 있기 때문에 웹(Web)이라고 부른다고 한다.
웹 사이트 (Web Site) : 웹 서비스를 제공하는 기관이나 장소
웹 어플리케이션(Web Application) :
웹에서 실행되는 응용프로그램을 뜻하며 인터넷을 통한 업무, 쇼핑, 등등 인터넷에서 하는 여러 서비스를 총칭하며 사용자가 필요한 요청(Request) 를 하고 서버에서는 이에 해당하는 요청을 수행하고요청한 데이터를 응답(Response) 한다.
웹의 3요소
웹을 구성하는 3대 요소로 HTML, HTTP, URI가 있다. HTTP는 웹 서버와 웹 클라이언트간의 통신을 할 수 있도록 지원해주며 URI는 웹 클라이언트가 웹 서버로 리소스를 요청한 후 HTML이 담긴 응답을 하며 웹 클라이언트 프로그램인 웹 브라우저가 이를 해석하여 사용자에게 구조화된 인터페이스를 출력하여 보여준다.
Web Server VS WAS
웹 서버(Web Server)란?
사전적 의미
- 웹 서버(하드웨어 측면) : 웹 서비스를 제공하는 호스트컴퓨터
- 웹 서버(소프트웨어 측면) : 클라이언트로부터 HTTP 요청을 받아 정적 컨텐츠(html, css, jpg 파일 등)인 각종 리소스를 제공하는 컴퓨터 프로그램
개념
- 정적(static) 컨텐츠 제공 : WAS를 거치지 않고 리소스를 즉시 제공
- 동적(dynamic) 컨텐츠 제공 : 클라이언트의 요청을 WAS에 보냄
정적 컨텐츠란? 변화가 없는 컨텐츠, 모든 사용자에게 동일한 결과값을 보여주는 것(html, css, jpg 파일 등)
동적 컨텐츠란? 주문조회나 장바구니 등 해당 사용자의 맞춤형 정보를 제공해야할 때 사용하는 것(DB, 비즈니스 로직)
EX) Apache Server, Nginx, 등등
기능
- HTTP 프로토콜을 기반으로 하여 클라이언트의 요청을 서비스 하는 기능을 담당한다.
- 정적 컨텐츠 제공
- 동적 컨텐츠 제공을 위한 요청 전달
( 클라이언트의 요청을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 응답한다.)
웹 어플리케이션 서버(WAS, Web Application Server)란?
사전적의미
- 동적 컨텐츠 제공을 위해 만들어진 어플리케이션 서버
개념
- DB 조회나 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application Server
- WAS를 Web Container 혹은 Servlet Container 라고 직접적으로 부르기도 한다.
Container란 jsp, Servlet을 실행시킬 수 있는 소프트웨어를 말한다.
기능
- 프로그램 실행 환경과 DB 접속 기능 제공
- 여러 개의 트랜잭션 관리 기능
- 업무 처리하는 비즈니스 로직수행
EX) Tomcat, Websphere 등등
Tocat(WAS) 의 기능과 특징
기능
- JSP/ Servlet Container 중 하나로 사용자에게 JSP 요청을 받으면 서블릿으로 바꾸어 실행
- Web Server에서 요청한 동적 페이지를 읽어 프로그램을 실행
- 그 결과를 다시 HTML로 재구성하여 Web Server에게 전달
특징
- Servlet Container를 지원
- 플랫폼에 제약이 없음 ( Windows, Linux, Unix )
References (참고 자료)