웹 애플리케이션 서버🖇

jurin·2021년 5월 19일
0

웹 서버와 웹 애플리케이션 서버 구분

정적 페이지 vs 동적 페이지

정적 페이지는 누가, 언제 요구하더라도 항상 같은 내용을 표시하는 웹 페이지이다. 해당 웹 서비스의 제공자가 사전에 준비하여 서버 측에 배치한 것으로 동일한 리소스(URL)의 요청에 대해서는 항상 동일한 내용의 페이지를 반환한다.

동적 페이지요구에 따라 각각 다른 내용이 반환되는 페이지로 현재 시각을 보여주는 페이지 등이 있다.

정적, 동적 용어는 사용자가 페이지를 요청하는 시점에 페이지의 내용이 유지되는가 또는 변경되는가를 구분해주는 용어로 동적 페이지에는 프로그래밍 코드가 포함되어 있어서 페이지 요청 시점에 HTML 문장을 만들어내는 것이다.

CGI

동적 페이지에 대한 요구사항이 생기고 필요한 데이터를 저장하고 꺼내오는 등의 데이터베이스 처리에 대한 요구가 많아짐에 따라 웹 서버와는 다른 별도의 프로그램이 필요하게 되었는데 이런 별도의 프로그램과 웹 서버 사이에 정보를 주고받는 규칙을 정의한 것이 CGI(Common Gateway Interface) 규격이다.

웹 서버와 독립적인 프로그램(프로세스) 사이에 정보를 주고받는 규격을 의미하며, 이 규격을 준수하면 어떤 언어를 사용해도 CGI 프로그램을 개발할 수 있다.

CGI 방식의 단점

CGI의 근본적인 문제점은 각각의 클라이언트 요청에 대해서 독립적인 별도의 프로세스가 생성된다는 것이다. 요청이 많아질수록 시스템에 많은 부하를 주게 된다.

CGI 방식의 대안 기술

  1. 별도의 애플리 케이션을 Perl, PHP 등의 스크립트 언어로 작성하고 스크립트를 처리하는 스크립트 엔진(인터프리터)을 웹 서버에 내장시켜서 CGI 방식의 단점이었던 별도의 프로세스를 기동시키는 오버헤드를 줄이는 방식

  2. 애플리케이션을 처리하는 프로세스를 미리 데몬으로 가동시켜 놓은 후, 웹 서버의 요청을 데몬에서 처리하는 방식

CGI 애플리케이션을 별도의 데몬으로 처리하는 방식이 점차 발전함에 따라 스레드 처리가 보강되고 객체 지향 기술이 반영되면서 애플리케이션 전용 데몬인 애플리케이션 서버 방식으로 발전하였다.

JSP, ASP 기술에서 애플리케이션 서버 방식 사용

애플리케이션 서버 방식

웹 애플리케이션 서버를 통해 간접적으로 웹 애플리케이션 프로그램을 실행한다. 웹 애플리케이션 서버는 애플리케이션 프로그램의 실행 결과를 웹 서버에 전달해주며, 웹 서버는 웹 애플리케이션 서버로부터 전달받은 응답 결과를 웹 클라이언트에 전송한다.

애플리케이션 서버 방식을 사용하면 각 서버 간 구성은 다음과 같이 된다.

웹 서버정적 페이지를 웹 클라이언트에게 제공하는 것이 주 역할이지만, 그 외 캐시 기능, 프록시 기능 등의 추가적인 기능과 다수의 클라이언트로부터 동시에 요청을 받아 처리해야 하기 때문에 동시에 접속을 허가하는 클라이언트 수의 제한 및 처리 프로세스의 관리, 요청 및 응답에 관한 로그의 기록, 안정성 확보를 위한 인증 제어 및 암호화 처리 등 HTTP/HTTPS의 제어에 필요한 여러 가지 기능을 제공한다.





출처: Django로 배우는 파이썬 웹 프로그래밍(기초) - 김석훈님

profile
anaooauc1236@naver.com

0개의 댓글