문) REST
답)
1. Web 2.0의 가벼운 프로그래밍 모델, REST의 개요
가. REST(Representational State Transfer)의 정의
- HTTP의 POST/GET요구에 대해 XML 형식으로 실행결과를 리턴하는 웹서비스 제공 및 사용이 간단한 아키텍처
나. SOAP에서 REST로 관심 이동 이유
- URL기반(자원접근용이), 시스템확장성(느슨/독립 컴포넌트)
- 캐시허가(트래픽감소), 웹응용개발편리(정해진메소드)
2. REST의 주요특징 및 SOAP와 비교
가. REST의 주요특징
- 클라이언트/서버형 PULL기반 상호작용 방식 : 호출한 측이 데이터 가져옴
- 무상태(Stateless) : 서버측에서 세션관리 안함, 클라이언트/서버 교환 단순
- 계층화 시스템(Layed System) : 시스템을 복수계층으로 분할, Proxy배치 가능
- Code-In-Demand : 클라이언트에서 코드를 다운로드해서 실행
나. 복잡한 SOAP와 단순한 REST의 비교
구분 SOAP REST
Proxy Server 사용불가(별도구현필요) 사용가능
Caching 불가능 사용가능
상호운용성 비지원(커스터마이징필요) 지원
보안 우수(내용과메소드가메시지은닉) 별도 구현 필요
동작개념도 Client>SOAP요청>Server>SOAP반환, Client>URL요청>Server>XML Data반환
- 공통점 : 둘다 HTTP 프로토콜 이용, 웹서비스 제공에 활용
3. REST 방식 디자인시 주의사항 및 전망
가. 모든 리소스를 URL로 설계하여 서비스 제공하고, URL통해 자원조회/등록/삭제지원함
(URL =서버주소+서비스이름+자원)
나. 최근 SOAP 중심의 SOA 구성에서 효과적인 분산환경을 적용을 위해 REST 활용한 WOA서비스로 발전
끝.
====================================================================
* REST의 장점
- URL 텍스트를 브라우저 URL에 입력하면 바로 웹페이지로 엑세스가 가능함
- 웹페이지가 리소스와 그 상태로 단순화되어 빠르고 저렴함을 실현가능
*REST의 필요성
- 단순성 : 자원접근 및 인식(사람과 컴퓨터 공통)용이
- 시스템 확장성: Loosely coupled & Independent 컴포넌트 사용
- 서버 성능 향상 : 세션 정보를 클라이언트가 직접 관리
- 웹 응용 개발 편의성 향상 : 4개 기본 메소드, 2개 선택적 메소스 활용
* SOAP에서 REST로 관심 이동 이유
- 단순성(자원접근용이), 시스템 확장성(느슨, 독립 컴포넌트 사용)
- 성능향상(클라이언트가 세션정보관리), 편의성(웹응용개발)
*REST의 주요 특징
- 클라이언트/서버형 PULL기반 상호작용방식: 호출한 측이 데이터가져옴
- 무상태(Stateless) : 서버측에서 세션관리 안함, 클라이언트/서버 교환 단순
- 계층화시스템(Layed System) : 시스템을 복수계층으로 분할, Proxy 배치 가능
- Code-In-Demand : 클라이언트에서 코드를 다운로드 해서 실행
- Uniform Interface : 인터페이스 통일(GET, POST)