오늘은 새로운 카테고리들을 몇개 생성하게 되네요
공부를 해야 할 놈들이라는거죠
남들 다 하는대 이제 공부 합니다 ㅠㅠ

http://ko.wikipedia.org/wiki/REST

http://www.ibm.com/developerworks/kr/library/wa-ajaxarch/

 - 웹의 모든 리소스를 URI로 표현하고 
 - 모든 리소스를 구조적이고 유기적으로 연결하여
 - 비 상태 지향적인 방법으로
 - 정해진 method만을 사용하여 리소스를 사용하는
 아키텍쳐 이다.

+ 이는 4가지의 고유한 속성과 연관되어 진다.
 - Addressablilty
 - Connectedness
 - Statelessness
 - 
Homogeneous Interface

+ Addressablilty (주소로 표현 가능함)
 - 제공하는 모든 정보를 URI로 표시할 수 있어야 한다.
 - 직접 URI로 접근할 수 없고 HyperLink를 따라서만 해당 리소스에 접근할 수 있다면 이는 RESTful하지 않은 웹서비스이다.
 - 예를 들면, GMail은 모든 메일 리소스는 하나의 URI와 연결되어 있다. (http://mail.google.com/mail/?hl=ko#sent/1036854d04d6de9e) 하지만 코리아닷컴의 경우에는 http://mbox07.korea.com/mail/mailView.crd 라는 주소에 접근한 후에 페이지에 표시된 메일의 링크를 통해서만 접근이 가능하다. (특정 회사를 지칭해서 유감입니다. 관계자 분들은 이해 부탁드립니다.) 둘 간의 차이가 이해가 되십니까?

+ Connectedness (연결됨)
 - 일반 웹 페이지처럼 하나의 리소스들은 서로 주변의 연관 리소스들과 연결되어 표현(Presentation)되어야 한다.
 - 예를 들면,
<user>
  <name>MK</name>
</user> 는 연결되지 않은 독립적인 리소스이다.
<user>
  <name>MK</name>
  <home>MK/home/</home>
  <office>MK/office</office>
</user> 는 관련 리소스(home, office)가 잘 연결된 리소스의 표현이다.

+ Statelessness (상태 없음)
 - 현재 클라이언트의 상태를 절대로 서버에서 관리하지 않아야 한다.
 - 모든 요청은 일회성의 성격을 가지며 이전의 요청에 영향을 받지 말아야 한다.
 - 다시 또 코리아닷컴의 예를 들면 메일을 확인하기 위해 꼭 '..코리아닷컴../mailView.crd'에 접근하여 해당 세션을 유지한 상태에서 메일 리소스에 접근해야 한다. 이것이 바로 Statelessness가 없는 예이다.
 - 세션을 유지 하지 않기 때문에 서버 로드 발란싱이 매우 유리하다.
 - URI에 현재 state를 표현할 수 있어야 한다. (권장사항)

+ Homogeneous Interface (동일한 인터페이스)
 - HTTP에서 제공하는 기본적인 4가지의 method와 추가적인 2가지의 method를 이용해서 리소스의 모든 동작을 정의한다.
 - 리소스 조회 : GET
 - 새로운 리소스 생성 : PUT, POST (새로운 리소스의 URI를 생성하는 주체가 서버이면 POST를 사용)
 - 존재하는 리소스 변경 : PUT
 - 존재하는 리소스 삭제 : DELETE
 - 존재하는 리소스 메타데이터 보기 : HEAD
 - 존재하는 리소스의 지원 method 체크 : OPTION
 - 대부분의 리소스 조작은 위의 method를 이용하여 대부분 처리 가능하다. 만일 이것들로만 절대로 불가능한 액션이 필요할 경우에는 POST를 이용하여 추가 액션을 정의할 수 있다
 

'Interesting > TIPTECH' 카테고리의 다른 글

GoogleMusic  (0) 2011.08.01
반값할인쿠폰모음 - 티켓초이스TicketChoice 업데이트  (0) 2011.07.26
NoSQL  (0) 2011.07.25
Google Plus Custom Search Engines in Chrome  (0) 2011.07.22
7월14일 업데이트된 구글플러스 APK  (3) 2011.07.20

+ Recent posts