250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 게임
- psql
- 엘든링
- Front-end
- 야생의숨결
- hybride
- 오픈워터
- JS
- 어드벤스
- ubuntu
- 스쿠버다이빙
- 세부
- window
- 공략
- poe2
- Linux
- 씨홀스
- 여행
- 페오엑
- WebView
- docker
- 취미
- window10
- 다이빙
- 젤다의전설
- 뱀파이어서바이벌
- JavaScript
- PostgreSQL
- 개발툴
- guide
Archives
- Today
- Total
Rianshin
RESTful? 본문
728x90
반응형
SMALL
- RESTful 이란?
- 정의
- REST는 ROA를 따르는 웹 서비스 디자인 표준이다.
- 정의
-ROA : Resource Oriented Architecture
- 주요특징
- 무분별한 파라미터의 남발이 아니라, 오브젝트 맴버변수만을 따라가는 듯한 URI를 가진다.
- 주요특징
- RESTful방식의 웹서비스는 세션을 쓰지 않는다.
- 기존 서비스 개발에서는 세션을 이요하여 인증정보 및 파라미터를 가지고 다녀 요청처리가 무거워지는 단점이 있음.
- 또한, 요청간의 전후 관련성이 생기기 때문에 한 세션의 일련의 요청은 무조건 하나의 서버가 처리해야 함.
(이는 로드발란싱을 위해 고가의 로드발란싱 서버가 필요하게 됨.)
- REST는 세션을 사용하지 않아 각각의 요청이 독립적이다.
- 이는 각각의 요청은 이전 요청과는 무고나하게 처리되므로, 로드발란싱이 간단해 진다.
- 단, 인증 관려에 관해선 복잡해질수 있다.
- RESTful 웹 서비스 속성
- Addressablilty (주소로 표현 가능함)
- RESTful 웹 서비스 속성
- 제공하는 모든 정보를 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를 이용하여 추가 액션을 정의할 수 있다. (되도록 지양하자)
728x90
반응형
LIST
'Develop' 카테고리의 다른 글
Docker ubuntu install (0) | 2019.02.20 |
---|---|
Docker install (for window10 pro) (0) | 2019.02.20 |
기대되는 오픈프로젝트 (0) | 2016.08.10 |
Google의 웹기술 1000 (0) | 2016.08.05 |
Fabric 적용하기~ (0) | 2016.08.05 |
Comments