본문 바로가기
웹 프로그래밍/Servlet & JSP

웹 문서(정적 컨텐츠, 동적 컨텐츠), 웹 애플리케이션, 웹 서비스

by kgvovc 2021. 3. 10.
반응형

웹이란?

(1) 웹 문서

웹 문서란, 웹에서 클라이언트가 서버에 정보를 요청하면 응답하는 콘텐츠라고 할 수 있으며, 정적인 웹 문서와 동적인 웹 문서로 구분할 수 있다.

 

  • 정적 컨텐츠: 웹 서버가 이미 만들어져 있는 문서를 클라이언트에게 제공. (HTML)

  • 동적 컨텐츠: 웹 서버가 요청 시마다 다른 웹 문서의 내용을 클라이언트에게 제공. 다음 두 가지 방법 중 하나에 의해 처리됨.

    • 클라이언트가 서버에 웹 문서를 요청하면 웹 문서에 동적인 요소를 포함하는 방식(스크립트 방식)
    • 클라이언트가 서버에 웹 문서를 요청하면 서버가 다른 애플리케이션을 통해 웹 문서를 재생성하여 제공하는 방식

 

동적인 웹 문서 작성 기술로는 CGI, ASP, PHP, 서블릿과 JSP 등이 있다. 앞으로 학습하게 될 JSP가 첫 번째 방식인 스크립트 방식이고, 서블릿은 두 번째 방식을 지원하는 기술이다.

 

(2) 웹 애플리케이션

웹 애플리케이션은 수행되는 위치에 따라서 웹서버에서 수행되는 기술(Server Side)과 대표적인 웹 클라이언트인 브라우저에서 수행되는 기술(Client Side)로 나뉘며, 구현하는 방식에 따라서 컴파일 방식과 비컴파일 방식(스크립트 방식)으로 나뉜다.

 

  • Client Side: 클라이언트가 요청 -> 웹 애플리케이션이 클라이언트에게 전송됨 -> 클라이언트의 자원을 이용해 클라이언트에 의해 수행
  • Server Side: 웹 애플리케이션이 서버에서 일차 수행(서버의 자원 활용) -> 그 결과를 클라이언트에 전송

 

  • 컴파일 방식: 웹 애플리케이션이 미리 컴파일되고 실행 파일이 만들어진 후 사용됨
  • 비컴파일 방식: 요청이 있을 때마다 해석(Interpret)되거나 컴파일이 필요 없음

 

 

(3) 웹 서비스

웹 서비스란 네트워크상에 분산된 자원들을 서로 연동하여 자원을 공유하기 위한 추상적인 서비스 형태를 의미한다. 웹 서비스를 위한 기술로는 SOAP 기반 웹 서비스와 RESTful 기반 웹 서비스가 있다.

 

SOAP 기반 웹 서비스

SOAP 기반 웹 서비스는 SOA(Service Oriented Architecture) 개념을 실현하기 위한 기술이다. 서비스 제공자가 공유 혹은 서비스하려는 자원을 UDDI라는 전역 서비스 저장소에 등록(publish)하여 공개하면, 서비스 요청자가 검색한 후 서비스 제공자와 HTTP의 응용 프로토콜인 SOAP를 이용하여 메시지를 주고받는 방식이다.

 

서비스 제공자와 요청자가 주고받는 SOAP 메시지SOAP 봉투(envelope), SOAP 헤더와 SOAP 몸체로 구성된 하나의 XML 문서로 표현된다. 이것은 HTTP로 전달되므로 크기가 크며, 송수신 시 헤더와 몸체를 인코딩/디코딩해야 하는 작업을 거친다.

 

 

RESTful 기반 웹 서비스

RESTful 웹 서비스는 ROA(Resource Oriented Architecture) 개념을 실현하기 위한 리소스 중심의 표현, 전달, 접근 방식의 기술이다. RESTful 웹 서비스는 SOAP 기반 웹 서비스의 문제점인 오버헤드 발생, 메시지의 인코딩/디코딩의 어려움을 보완할 수 있는 REST(Representational State Transfer) 기반의 웹 서비스로서, HTTP의 기본 기능만으로 원격 정보에 접근할 수 있다.

 

RESTful 웹 서비스는 상호 연동을 위한 서비스를 등록하기 위한 저장소가 필요하지 않으며, 단순히 서버와 클라이언트로만 분리되어 있다. 따라서 리소스 접근을 위해 단순 URI로 표현하며, HTTP의 요청 방식인 GET, POST, PUT, DELETE만으로 접근할 수 있다. 또한, SOAP 메시지는 구조가 복잡하지만, RESTful 기반 웹 서비스의 리소스는 HTTP 요청방식으로 서비스되므로 클라이언트에서 XML, JSON, HTML, 텍스트, 이미지 등 원하는 형식으로 표현할 수 있다. 이러한 표현 형식은 HTTP의 accept 헤더 값이나 URI 파라미터로 지정한다.

 

반응형

댓글