'was'에 해당되는 글 1건

  1. 2009.11.05 WAS...!
카테고리 없음2009. 11. 5. 20:57

WAS(Web Application Server) 웹 애플리케이션 서버(Web Application Server, 약자 WAS)는 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리

케이션을 수행해 주는 미들웨어(소프트웨어 엔진)이다.

웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 

같이 수행이 된다. 한국에서는 일반적으로 "WAS" 또는 "WAS S/W"로 통칭하고 있으며 공공기관에서는 "웹 응용서버"로 

사용되고, 영어권에서는 "Application Server"로 불린다.

웹 애플리케이션 서버는 대부분이 자바 기반으로 주로 Java EE 표준을 수용하고 있으나, 자바 기반이지만 Java EE 표준을 

따르지 않는 제품과 .NET이나 Citrix 기반인 비Java 계열도 존재한다.

웹 애플리케이션 서버의 기본 기능은 3가지이다.

1. 프로그램 실행 환경과 데이터베이스 접속 기능을 제공한다.

2. 여러 개의 트랜잭션을 관리한다.

3. 업무를 처리하는 비즈니스 로직을 수행한다.

다만, 웹 애플리케이션의 정확한 정의는 존재하지 않아서 일부 기능을 제공하지 않는 웹 애플리케이션 서버도 존재한다. 업체

들은 이러한 3가지 기능 말고도 여러 기능을 추가하고 강화하고 있다.

여기까지 설명들은 웹에서 퍼온 내용이고...

쉽게 말해서 클라이언트 즉 사용자가 중간에서 뭘원하느지를 알아내서 원하는 데이터를 보내주는 걸 하는게 WAS가 하는일이

다. 클라이언트가 브라우저에서 요청을 하면 웹 서버로 Http Header가 전송된다. 

GET /board.jsp HTTP/1.1

Host: localhost:7070

User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; ko-kr) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9

Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Accept-Language: ko-kr

Accept-Encoding: gzip, deflate

Connection: keep-alive

이것이 Http Header의 정보...

이것을 웹서버가 받아서 분석한 다음 클라이언트가 원하는것이 무언인지를 파악한후 원하는 것을 보내준다. 수업시간에 만든 

웹서버는 클라이언트가 http://localhost:8080/board.jsp란 주소를 치게 되면 http Header에 여러가지 정보에/board.jsp

도 포함되서 웹서버에 오게 된다. 서블릿의 목록을 XML형태로 가지고 있다가 웹서버가 기동이 되면서 SAXParser를 이용해

맵의 형태로 가지고 있는다. 이때 Header에 포함되어 들어오는 URI를 맵의 키값으로 가지고 있고, 서블릿을 밸류로 가지고

있다가 사용자가 보고자 하는 페이지를 Header에 담아 보내주게 되면 Header에 있는 URI를 가지고 서블릿을 호출하게 

된다. 서블릿은 자기가 가지고 있는 역할에 충실히 수행한 후 결과를 사용자에게 보여주는것이 이번에 만들어본 WAS이다.

여기서 URL은 http://localhost:8080/board.jsp이며, /board.jsp부분이 URI가 된다.

URI와 URL의 구분...잘 알아두자...알기 싫음 말고...

우리가 흔히 사용하는 Apache Tomcat도 이러한 구조와 기능을 갖고있다.

Tomcat은 Header의 모든 정보를 맵형태로 가지고 있다가 사용자가 원하는 정보를 제공해준다.

사용자가 WAS에게 전해주는것이 Header이다. 근데 주기만 하나?? 받기도 해야한다.

이때 WAS가 우리에게 주는것이 Cookie이다.

Cookie에도 여러 정보를 가지고 있다.

Header와 Cookie에 대한 설명은 나중에 좀더 자세하게 설명하겠다.

Posted by Z700zZz