반응형
REST(Representational State Transfer)
- REST란 대규모 네트워크 시스템을 위한 아키텍처
- 2000년 Roy Fielding의 박사 학위 논문에서 처음 제안
http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
REST 방식
웹상이 모든 것들은 URL로 표현 (Representation)
1. 잘 정의된 URL을 통해 웹 애플릿케이션을 구동
2. 그 결과(State)를 전달(Transfer)받아 처리
Representational State Transfer은 잘 디자인된 웹 어플리케이션이 어떻게 동작하는 지에 대한 이미지를 떠올리게 하가 위한 용어이다. 웹 페이지들의 네트워크가 있고 사용자가 링크를 선택하면 다음 페이지가 보여진다. 즉 웹을 Virtual State Machine이라고 생각하면 링크를 선택함으로써 State가 변하고 Next State Representation(다음 페이지)가 보여지게 된다
REST 특징
REST는 웹이 성공을 이룰 수 있었던 것은 다음과 같은 특징을 가졌기 때문이라고 주장
1. 상태를 유지하지 않는 클라이언트/서버 구조를 가진다.
2. 작고 어디에서나 적용되는 인터페이스를 가진다. (e.g., GET, POST, PUT, DELETE)
3. 모든 자원은 URI를 이용하여 유일하게 지칭될 수 있다.
4. 자원들의 표현(Representation)들이 URI을 통해 서로 연결되어 있다.
- REST의 원칙에는 쿠키나 세션을 사용하지 않는다.
- PUT과 Delete 메소드는 HTTP스펙에는 존재하지만 지원하는 브라우저는 많지 않다.
REST VS SOAP
2003년도 아마존이 SOAP과 REST 두 가지 방식의 인터페이스를 제공. REST가 압도적으로 우세.
REST (XML over HTTP) 85% VS SOAP 15%
구글의 유서깊은 SOAP 기반 검색 API가 12월 5일 부로 중단. 대신 구글은 REST 기반의 Ajax Search API를 대안으로 제시
REST방식의 주소
"서버 주소 + 서비스 이름 + 자원"
REST에서 말하는 올바른 주소 : http://atin.com/member/34234
REST에서 말하는 틀린 주소 : http://atin.com/member/getMember?id=31
- URL을 통해 필요한 자원을 계속해서 추적하여 얻어(HTTP GET) 가거나 삽입(HTTP PUT), 삭제(HTTP DELETE)할 수 있게 분류 설계한다.
- 한번에 모든 정보를 제공해서는 안 된다.
자바에서의 REST
- Java
XML과 웹 서비스 관련 API 투자
JAX-WS2에서 HTTP바인딩과 함께 REST 지원
JAX-WS의 핵심은 SOAP-WSDL이여서 그다지 쓰이지 않았음.
- Restlet
자바를 위한 경량화 REST framework
오픈소스 프로젝트
서블릿의 프로그래밍 모델을 기반
JSR 311 Java API for RESTful Web Services (이하 JSR 311)
Restlet 홈페이지 - http://www.restlet.org/
썬에서 RESTful Web Services API와 개발 환경을 배포 - http://developers.sun.com/web/swdp/index.jsp
반응형
'Devlopment > 정리 글' 카테고리의 다른 글
C와 Java의 컴파일 과정 (1) | 2011.05.27 |
---|---|
난수 발생기 (2) | 2010.06.23 |
SnmpWalk (0) | 2010.04.27 |
객체 지향 원칙 (0) | 2008.08.21 |
리소스 지향 아키텍처(ROA) (0) | 2008.07.29 |
검색엔진 (1) | 2008.07.17 |
피어슨 상관 계수 (0) | 2008.07.09 |
상관 분석 (0) | 2008.07.08 |
유클리디안 거리 (0) | 2008.07.08 |
집단지성 (0) | 2008.06.25 |