햄찌개

2020-11-19 정적/동적 페이지, 웹 서버 본문

웹기반어플리케이션

2020-11-19 정적/동적 페이지, 웹 서버

햄찌개 2020. 11. 19. 12:15

웹 동작 원리

정적 페이지, 동적 페이지

  • 정적 페이지 : 고정된, 변하지않는 성격을 가진 페이지
  • 동적 페이지 : 자동으로 생성된 페이지, 기존의 웹 서버에 새로운 기능을 가진 프로그램을 탑재하여 동적으로  HTML 을 생성

동적인 컨텐츠 생성을 수용하는 서버측 구성

 

 

서버가 필요한 이유 : 미들티어의 역할을 맞기기 위해

 

서버 : 웹서버, 웹어플리케이션 서버 

 

서버 역할 : 클라이언트 요청 대기 

 

 

웹서버 

  • 웹브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 정적으로 처리      해 반환 하는 프로그램  ex) 아파치, IIS
  • 장점 : 웹 서버는 월드 와이드 웹 뿐만 아니라 프린터, 라우터, 웹캠과 같은 임베디드 장치, 그리고 근거리 통신망(local network)에서도 사용된다.   시스템의 모니터링 또는 장치 관리자를 위한 목적으로 사용되는데, 이렇게 웹서버는 클라이언트에 추가적인 소프트웨어의 설치없이 대부분의 운영체제에 포함된 웹 브라우저만으로 서비스를 제공할 수 있다.

웹 어플리케이션

  • HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진) ex) Web Logic
  • 프로그램 실행 환경과 데이터 베이스 접속 기능을 제공
  • 여러개의 트랜잭션을 관리
  • 업무를 처리하는ㄴ 비즈니스 로직 수행

 

웹서버, 웹어플리케이션서버 차이 

  • 웹서버는 정적 데이터를 처리하고, 웹어플리케이션 서버는 동적 데이터를 처리한다.
  • WAS는 동적 처리에 최적화 되어 있는 서비스 이기 때문에 처리 속도를 위해, 정적처리는 웹서버에서 처리를 하고, 동적 컽넽츠는 WAS에서 처리한다.
  • 웹서버에 웹문서를 처리하는 기능을 분배하여 서버의 부담을 줄일수 있고, 이로인해 웹어플리케이션에서 정적 데이터 처리를 위해 지연되는 시간이 줄어드는 동적 컨텐츠의 처리 속도가 빨라진다.

 

 

CGI(Common Gateway Interface)

  • 동적 페이지를 위한 기술
  • 웹 서버와 동적 컨텐츠 생성을 맡은 프로그램 사이에서 정보를 주고받는 인터페이스
  • 초기 웹 프로그래밍에 사용된 기술
  • 프로세스 단위로 실행되기 때문에 사용자가 증가하면 급격히 성능 저하

 

확장 CGI

  • 전통적인 CGI 방식의 단점들을 보완한 기술
  • 매번 프로세스를 생성하는 방식이 아니고 동일한 프로그램에 대해서는 하나의 프로세스를 생성한 후 여러 개의 스레드로서 요청을 처리하는 방식 -> 시스템의 부하를 줄임
  • ASP, PHP, Servlet, JSP
  • ASP MS사에서 만들어진 확장 CGI, 특정 웹 서버와 OS에 동작
  • PHP ASP와는 달리 특정 영역에서만 동작하지않음, 적은 명령어들로서 프로그래밍이 가능, 기능들이 미약
  • Servlet Sun, Java 언어를 기반으로 하여 동적인 컨텐츠를 생성, Java 코드안에 HTML태그가 혼재되어 있어서 작업에 대한 분리적인 측면에서 효율성이 떨어짐
  • JSP Sun, Java언어를 기반, HTML태그 사이에 스크립트 언어 형식으로 프로그램을 작성

 

동적 컨텐츠 처리를 위한 기술들


1. 서버

 

클라이언트(웹브라우저 등)가 HTTP 프로토콜을 통해 요청한 HTML 페이지나 화일들을

정적 또는 동적으로 제공하는 서버

 

ㅇ 보통, 서버라 함은,

- 소프트웨어 및 하드웨어 형태의 서버들이 조합된 것을 가리키거나,

- ` 서버`,` 어플리케이션 서버(WAS)`,`데이터베이스 서버` 모두를 통한

동적 기능의 결합을 말하기도 함

 

 

2. Apache 등과 같은 서버 특징

 

운영체제 위에서 동작하면서,

- 어플리케이션을 지원하며, 웹 브라우저에게 항상 포트를 열어두는,

- 웹 서비스 운용을 위한 소프트웨어 모음

 

ㅇ 주요 기능

- HTTP 프로토콜 구현

- 사용자 요청 결과를 HTML 형태로 변환해 전달

- 기능 구현 관련 자원의 관리

- TCP 연결 관리에 대해 운영체제와 별도로 일부 역할 분담 등

 

서버 例

- Apache 웹서버

. Apache 소프트웨어 재단에서 제공

. 명칭은 NCSA HTTPD 1.3 버젼의 패치화일을 제공하는 사람들의 모임명에서 유래

.. `A PAtCH server`

. 오픈소스 소프트웨어

 

- MS社 IIS (internet information server) 서버

- 엔진엑스(NginX)

. 고 성능 지향 (대용량 동시처리, 작은 실행 메모리 등)

. Web Proxy, Mail Proxy, Web Page Cache, Load Balancing

 

 

3. 동적 서버 구성 및 형태

 

ㅇ 동적 서버 구성

- ` 서버`, ` 어플리케이션 서버(WAS)`, `데이터베이스 서버`의 동적인 기능 결합

 

ㅇ 동적 서버 형태

- 1-Tier : 서버,WAS,데이터베이스서버가 모두 단일 서버에 구축된 형태

- 2-Tier : 서버,WAS가 하나의 서버에 데이터베이스서버가 또다른 서버에 구축된 형태

- 3-Tier : 서버,WAS,데이터베이스서버가 모두 다른 서버에 분리 구축된 형태

 

 

4. 어플리케이션 서버 (WAS,Web Application Server)

 

ㅇ 동작 개시 형태

- 주로, 서버를 통해 들어온 사용자 입력에 따라 동작

. 사용자가 요청한/제출한 매개변수 값에 근거하여 동작함

 

ㅇ 서버측 어플리케이션의 구성

- 구성 요소

. 후면의 시스템(데이터베이스 서버 등)들과 상호작용하는 일체의 응용 프로그램

- 동적 수행 : 폼 처리 등을 하며 동적으로 웹페이지 생성을 위한 PHP,JSP,ASP

. 폼 처리 : 어플리케이션의 중추적인 기능으로, 사용자와 서버가 소통하는 수단

. 처리 결과 : 동적 웹페이지 생성

. 생성된 웹페이지 : HTML, CSS, 자바스크립트 등으로 작성됨

- 데이터 저장 : 후면에서 동작하는 MySQL데이터베이스 서버를 이용

 

ㅇ WAS 例) Tomcat(톰캣) 등

 

ㅇ 한편, 클라이언트 어플리케이션은,

- 웹브라우저 상에서 동작하는 어플리케이션(주로, 자바스크립트로 쓰여짐)을 말함

 


tomcat의  context Root는 webapps 

server.xml 에 

  <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

로  webapps로 appBase가 설정되어 있어서 url 입력시 webapps 이후가 루트가 된다.

context path 5개

 

WEB-INF 안에 만든 것들은 클라이언트에서 확인 불가 서버단에서만 확인 가능 

   src, web.xml, lib 등 중요한것 숨겨둠

'웹기반어플리케이션' 카테고리의 다른 글

HttpServletResponse  (0) 2020.12.01
jsp 소스 표준 구성 요소  (0) 2020.11.26
객체지향 5대원칙 : SOLID  (0) 2020.11.25
모델1, 모델2  (0) 2020.11.25
2020-11-25 Request 메소드  (0) 2020.11.25