|
😎 Web server와 WAS 알아보기 😎
- Web Server : Web Client(웹 브라우저)에게 컨텐츠를 제공하는 서버로서, 정적인 HTML이나 jpeg, gif 같은 이미지를 HTTP 프로토콜을 통해 웹 브라우저에 전송함.
웹 서버는 하드웨어와 소프트웨어로 구분된다. 하드웨어에서는 Web 서버가 설치되어 있는 컴퓨터를 말하며, 소프트웨어에서는 웹 브라우저 클라이언트로부터 HTTP 요청을 받고 정적인 컨텐츠(HTML, CSS 등)를 제공하는 프로그램을 의미한다.
웹 서버는 WAS를 거치지 않고 요청에 맞게 정적인 컨텐츠나 동적 컨텐츠 제공을 위한 요청을 전달하게 된다.
Web Server 종류 : IIS, apache, Nginx ...
1. 웹 서버 (소프트웨어) : 웹 브라우저클라이언트로부터 HTTP요청을 받아들이고, HTML문서와 같은 웹 페이지에서 흔히 찾아 볼 수 있는 자료 콘텐츠에 따라 HTTP에 반응하는 컴퓨터 프로그램.
2. 웹 서버 (하드웨어) : 위에 언급한 기능을 제공하는 컴퓨터 프로그램을 실행하는 컴퓨터.
- WAS(Web Application Server)의 정의
Server 단에서 Application을 동작할 수 있도록 지원함. => Jeus
기존 웹 서버와 달리 동적인 요구에 대응하기 위해 적합한 형태로 변화, Web Client(브라우저)에게는 결과 값만 전송함.
Container(컨테이너)라는 용어로 쓰이며, 초창기는 CGI, 그 후에서는 Servlet, JSP, ASP 등의 프로그램으로 사용된다.
WAS는 프로그램 실행 환경 및 DB 접속 기능을 제공하고 여러 트랜지션 관리 및 업무 처리를 위한 비즈니스 로직을 수행한다.
Was Server 종류 : Apache Tomcat, tMax jeus, BEA Web Logic, IBM Web Spere, JBOSS, Bluestone, Gemston ...
1. 웹과 기업의 기간 시스템 사이에 위치하면서, 웹 기반 분산 시스템 개발을 쉽게 도와주고 안정적인 트랜잭션 처리를 보장해 주는 일종의 미들웨어 소프트웨어 서버를 말한다.
2. 컴퓨팅 환경에서 기존 클라이언트/서버환경의 애플리케이션 서버와 같은 역할을 하며, 클라이언트와 서버 환경에서 트랜잭션 처리 및 관리와 다른 기종 시스템 간의 애플리케이션 연동 등을 주된 기능으로 하고 있다.
- WAS 도입효과
안정된 시스템 구성 : 안정적 서비스 보장, 자동적인 어플리케이션 복구기능 제공, 업무 로직이 중간 어플리케이션 서버에 존재, 쉽고 빠르게 구축할 수 있다.
DB 성능 보장 : WAS서버가 DB서버와의 최적 사용을 조절화, DB connection pool을 총해 DB connection 관리 및 트랜잭션 처리
비용절감 : 서버 리소스의 원활한 사용.
- WAS 기술 표준
J2EE : Java 기반의 분산객체 아키텍쳐
WAS는 J2EE 아키텍쳐를 구현한 플랫폼 솔루션
- WAS의 일반적인 기능
Web 환경을 위한 n-tier Architecture 플랫폼, Presentation(GUI)과 Business Logic의 분리 운영
Thread 관리, 부하조절(Load Balancing) 기능 지원, Web Service 플랫폼으로써의 역할
장애대책(Fail-Over) 기능 지원, Transaction 처리 자동화
- 웹서버와 WAS의 구성에 따른 분류
WAS & WebServer : 모든 컨텐츠를 한고에 집중시켜, 웹서버와 WAS의 역할을 동시에 수행, 스위치를 통한 로드 밸런싱, 사용자가 적을 경우 효율적.
WAS X WebServer : 웹서버와 WAS의 기능적 분류를 통해 효과적인 분산을 유도, 정적인 데이터는 웹서버에서 처리, 동적인 데이터는 WAS가 처리.
WAS X WAS X WebServer : WAS단을 프리젠테이션 로직와 비즈니스 로직으로 구분하여 구성, 특정 logic의 부하에 따라 적절한 대응, 구성이 복잡해지는 단점이 있음.
Jeus : Jeus는 국내 기업인 Tmax 에서 만든 것으로 제품 완성도나 지명도에서 떨어진다. 하지만 명성/악명 높은 강력한 기술지원력으로 국내 시장에서는 시장 점유율 1위로 올라선지 꽤 됐다.
Tomcat : 톰캣은 아파치소프트웨어 재단의 애플리케이션 서버로서, 자바 서블릿을 실행시키고 JSP코드가 포함되어 있는 웹페이지를 만들어준다. 자바 서블릿과 JSP 규격의 '참조용 구현'으로 평가되고 있는 톰캣은, 개발자들의 개방적 협력 작업의 산물로 바이너리 버전과 소스코드 버전 둘 모두를 아파치 웹사이트에서 얻을 수 있다.
톰캣은 자체적으로 보유하고 있는 내부 웹서버와 함께 독립적으로 사용될 수도 있지만 아파치나 넷스케이프엔터프라이즈 서버, IIS, 마이크로소프트의 PWS등 다른 웹서버와 함께 사용될 수도 있다.
톰캣을 실행시키기 위해서는 JRE1.1 이상에 부합되는 자바 런타임 환경이 필요하다.
다양한 프리젠테이션 로직 지원
- Servlet : 동적 HTML 문서 작성을 위한 Java 프로그래밍 모델을 지원하며, Servlet 엔진이 Multi-threading으로 구현되어 성능이 우수하고, EJB 등과 부드러운 연동이 가능하다.
- JSP (Java Server Page) : Servlet 사용을 통해 웹 페이지의 내용이나 모양을 제어하며, 웹 서버에 의해 실행될 자바 프로그램을 호출하게 한다.
- XML : 웹 상에서 구조화된 문서를 전송 가능하도록 설계된 표준화된 텍스트 형식으로, 안전한 전자상거래 구축을 가능하게 하는 등 웹을 좀 더 다양한 목적으로 이용할 수 있게 한다.
J2EE (Java 2 Enterprise Edition) 플랫폼과 호환
- JMS (Java Messaging Service) : 메시지 기반의 프로그래밍 기초를 제공.
- JNDI (Java Naming and Directory Interface) : 네이밍 서비스를 제공.
- JTS (Java Transaction Service) : 이기종 데이터베이스에 걸친 글로벌 트랜잭션을 제공.
- JDBC (Java Database Connectivity) Connection Pool : 데이터베이스와의 연결을 효율적으로 관리.
HTTP & 웹 동작의 원리 : https://velog.io/@haileeyu21/Session-HTTP-%EC%9B%B9-%EB%8F%99%EC%9E%91%EC%9D%98-%EC%9B%90%EB%A6%AC
★ Protocol(통신규약)의 이해 ★
TCP/IP 는 가장최근에 발명된 컴퓨터와 컴퓨터간의 지역네트워크(LAN) 혹은 광역네트워크(WAN)에서 원할한 통신을 가능하도록 하기 위한 통신규약(Protocol) 으로 정의할 수 있다.
최초 미국방성에서 구축한 ARPANET에서 시작되었으며, 후에 미국방위통신청(DAC-Defense Communication Agency)에서 컴퓨터간 통신을 위해서 TCP/IP를 사용하도록 한 것이 그 시초가 되었다.
TCP/IP가 인기를 구가하게 된건 인터넷의 등장이 그 결정적인 역할을 했다. 가장 인기있는 인터넷 서비스인 WWW, EMAIL, TELNET, FTP등 대부분이 TCP/IP 기반에서 만들어져 있다.
인터넷으로 연결된 수많은 컴퓨터와 통신을 위해서 TCP/IP를 선택한 이유는 개방성에 있다. 즉 하드웨어, 운영체제, 접속매체에 관계없이 동작할 수 있다는 점 때문에, 인터넷 통신을 위한 핵심으로 선택되었다. TCP/IP 란 이름에서 알수 있듯이, TCP/IP 는 TCP와 IP 의 2개의 프로토콜로 이루어져 있는데, 통상 IP 프로토콜 위에 TCP 프로토콜이 놓이게 되므로 TCP/IP 라고 부르게 되었다.
IP - node(단말기)와 node - 이해하기 쉽게 컴퓨터와 컴퓨터 - 간의 데이타 패킷을 전송하기 위해서는 각 node 에 (우편번호와 같은)주소를 필요로 한다.
IP는 4바이트로 이루어진 주소번호를 사용하여 각각의 node 를 구분하고, 목적지를 찾아가게 된다.
우리는 이를 IP Address라고 하며, "192.168.100.50" 와 같은 형식으로 사용한다.
IP 는 Internet Protocol 의 줄임말이다. 숫자로된 인터넷 주소를 사람이 식별하는 건, 그리 쉽지 않기 때문에,
IP주소를 인간이 식별하기 쉬운 Domain 네임으로 변환시켜 주는 Domain Name 서비스를 사용한다.
www.yahoo.co.kr 란 도메인명이 211.234,109.2 란 ip address 보다는 기억하기가 쉽다.
TCP - 서버와 클라이언트 간에 데이타를 신뢰성 있게 전달하기 위해 만들어진 프로토콜이다.
데이타는 네트워크를 통해 전달되는 과정에서 손실되거나 순서가 뒤바뀌어서 전달될 수 있는데, TCP는 손실을 검색해 내서, 이를 교정하고 순서를 재조합할 수 있도록 해준다. Transmission Control Protocol 의 줄임말이다.
데이타를 전송하기 전에 데이타 전송을 위한 연결을 만드는 연결지향 프로토콜이다.
HTTP(HyperText Transfer Protocol, 하이퍼본문전송규약) - WWW 상에서 정보를 주고 받을 수 있는 프로토콜이다.
주로 HTML 문서를 주고받는 데에 쓰인다. TCP와 UDP를 사용하며, 80번 포트를 사용한다.
HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다.
예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다. 이 정보가 모니터와 같은 출력 장치를 통해 사용자에게 나타나는 것이다.
HTTP를 통해 전달되는 자료는 http:로 시작하는 URL(인터넷 주소)로 조회할 수 있다.
요청 내용에 포함되는 요청 방법
HEAD : GET과 같은 요청이지만, 자료에 대한 정보(meta-information)만을 받는다.
GET : URL에 해당하는 자료의 전송을 요청한다.
POST : 서버가 처리할 수 있는 자료를 보낸다.
PUT : 해당 URL에 자료를 저장한다.
DELETE : 해당 URL의 자료를 삭제한다.
TRACE : 이전에 요청한 내용을 들을 것을 요청한다.
OPTIONS : 서버가 특정 URL에 대해 어떠한 HTTP Method를 지원하는지 묻는다.
CONNECT : 프록시가 사용하는 요청.
JSP를 사용하기 위해 tomcat 연동 중에 Root 디렉터리를 바꾸려고 하는 경우
server.xml의 아래에 한줄을 추가하고 서버를 재시작하면 localhost:포트번호/path로 접근할 수 있다.
<Context docBase="Root로 사용할 경로" path="/" reloadable="true"></Context>
첫댓글 좋은 설명 감사합니다.
Wow.