불타는 Study
By - phpbae
REST에 대해서..
REST 를 알아보자!
REST = REpresentational State Transfer(표현상태전이)
-> 웹 서비스 아키텍쳐
ROA(Resource Oriented Architecture)를 따르는 웹 서비스 디자인
Architecture ? 아키텍쳐는 비즈니스 요구사항을 만족하는 시스템을 구축하기 위해서, 전체 시스템에 대한 구조를 정의한 문서로,
시스템을 구성하는 컴포넌트, 컴포넌트의 관계, 컴포넌트가 다루는 데이터를 정의.
REST (REpresentational State Transfer)는 소프트웨어 아키텍처 스타일입니다.
RESTful은 일반적으로 REST 아키텍처를 구현하는 웹 서비스를 나타 내기 위해 사용됩니다.
URI ? Uniform Resource Identifier -> 인터넷에 있는 자원을 식별하기 위한 유일한 주소(문자열)
URI의 하위개념으로는 URL, URN이 있다.
What is the REST?
REST = REpresentational State Transfer
- REST는
1. URI와 HTTP Method를 이용해 객체화된 서비스에 접근하는 것.
2. HTTP URI로 잘 표현된, 리소스에 대한 행위를 HTTP Method에 정의
리소스에 내용은 json, xml, yaml 등의 다양한 언어로 정의.
3. 하나의 URI는 하나의 고유한 리소스를 대표하도록 설계된다는 개념.
* REST는 표준이 아님 + REST는 프로토콜이 아님.
What is the REST?
REST = REpresentational State Transfer
- 클라이언트가 서버에 특정 리소스를 요청합니다.
- 서버는 요청 된 자원을 전달하여 해당 요청에 응답합니다.
- 서버에는 클라이언트에 대한 정보가 없습니다. 따라서 동일
한 클라이언트의 두 요청간에 차이가 없습니다.
- 자원의 표현이 클라이언트와 서버간에 전송되는 모델. 우리
가 알고 있는 웹은 이미 이 형식으로 되어 있습니다!
자원(Resource) - URI
행위(Verb) - HTTP Method
표현(Representations)
1. 자원(Resource) : “사용자” -> http://www.ohjic.com/users 라는 형태의 URI
REST에서 말하는 resource는 기본적으로 제공하는 URI로 액세스 되는 모든 것.
모든 리소스는 URI를 통해, 고유하게(Unique) 주소 지정이 가능해야함.
2. 행위(Verb) : “가져온다” -> HTTP GET Method
REST에서 행위는 대상 리소스가 문서, 이미지,
비디오든 상관없이 같은 메소드에 의해 다뤄진다.
여기서 사용되는 메소드는 HTTP Method를 의미.
3. 표현(Representations) : “이름이 배님인 사용자” ->
생성하고자 하는 사용자의 내용을
JSON/XML 형식을 이용해서 표현
-> REST에서 표현은 자원의 대한 행위의 내용을 정의
(HTTP Content-Type) / Payload 라고도 표현을 한다.
REST의 구성
OPERATION HTTP METHOD
Create POST
Read GET
Update PUT or POST
Delete DELETE
URI Example(파일 확장자는 URI에 포함시키지 않음)
http://localhost:9999/restapi/books
GET – get all books
POST – add a new book
http://localhost:9999/restapi/books/{id}
GET – get the book whose id is provided
POST – update the book whose id is provided
DELETE – delete the book whose id is provided
CRUD Operations Mapped to HTTP Methods in RESTful Web Services
1. URI (통합자원식별자)
Uniform Resource Identifier (URI) consists of a string of characters used to identify or name a resource on the Internet .
-> 인터넷의 자원을 식별하기 위한 문자열의 구성.
2. URL (파일식별자)
URL is an acronym for Uniform Resource Locator and is a reference (an address) to a resource on the Internet.
-> 인터넷에의 자원에 대한 참조(주소).
http://test.com/work/sample.pdf -> URI 이면서, URL
http://test.com/work/ -> URI (test.com 밑에 work라는 파일은 존재X, 요청하는 주소가 파일이라기보다는, 구분자로 보는것)
http://img0.gmodules.com/ig/images/korea/logo.gif 이와 같은 형식은 logo.gif라는 인터넷상의 자원 위치를 의미 한다.
이는 URI이면서도 URL라고 말할 수 있다.
http://endic.naver.com/endic.nhn?docid=1232950 http://endic.naver.com/란 서버에 위치한 endic.nhn파일은 query string인
docid의 값에 따라 여러가지 결과를 나타낸다. 여기서 URL은 endic.nhn의 위치를 표기한
http://endic.naver.com/endic.nhn 까지이다. 내가 원하는 정보에 도달 하기위해서는 ?docid=1232950라는 식별자
(Identifier)가 필요한 것이다.
결국 위의 http://endic.naver.com/endic.nhn?docid=1232950 주소는 URI이긴 하지만 URL은 아니다.
결국에는, URL도 해당파일명이 식별자역할을 하기 때문에, URI 가 URL을 포함하는 관계가 성립한다.
URI 제대로 파악하기
1) Uniform Interface
Uniform Interface는 URI로 지정한 리소스에 대한 조작 또는 액세스를 HTTP 기반(일반 인터페
이스)으로 통일하고, 통신을 보다 쉽게 관리 할 수 있습니다.
2) Stateless
작업을 위한 상태정보를 따로 저장하고 관리하지 않습니다. 세션 정보나 쿠키정보를 별도로
저장하고 관리하지 않기 때문에 REST API 서버는 들어오는 요청만을 단순히 처리하면 됩니다.
그래서, 클라이언트 세션 데이터 또는 서버에 저장된 Context가 없기 때문에, 클라이언트 세
션을 유지할 필요가 없는 서비스 계층은 확장하기가 훨씬 쉽습니다. -> 확장성
REST Characteristics
3) Cacheable
HTTP 응답은 클라이언트가 캐시 할 수 있어야 합니다. 성능에 중요합니다. 리소스에 대한
새로운 요청이 잠시 후에 발생하면 캐시 된 응답이 반환됩니다. HTTP 프로토콜 표준에서
사용하는 Last-Modified태그나 E-Tag를 이용하면 캐싱 구현이 가능합니다.
4) Self-descriptiveness (자체 표현 구조)
REST의 또 다른 큰 특징 중 하나는 REST API 메시지만 보고도 이를 쉽게 이해 할 수 있는 자
체 표현 구조로 되어 있다는 것입니다.
REST Characteristics
5) Client - Server 구조
클라이언트와 서버는 서로 독립적입니다.
클라이언트는 서버에 보관 된 리소스에 대해 아무것도 모릅니다. 서버는 올바른 요청이
들어올 때까지 응답합니다.
- 목표 : 플랫폼 독립성 및 확장성 향상.
6) Layered System
REST 서버는 다중 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 계층을 추가해 구
조상의 유연성을 둘 수 있고 PROXY, 게이트웨이 같은 네트워크 기반의 중간매체를 사용할
수 있게 합니다.
실제로 클라이언트는 마지막 서버 또는 중간 서버에 연결되어 있는지 여부를 알지 못합니
다. 중개자는 캐싱 및 메시지 전달을 통해 성능을 향상시킬 수 있습니다.
REST Characteristics
Scalability – 확장성.
Simplicity – 간결함.
Modifiability - 수정 가능성.
Useability – 편리성.
Portability – 이식성.
Reliability - 신뢰성.
위의 REST에서 추구하는 목표들이
곧 REST의 장점(REST의 특징을 잘 살펴보자!)
단점이 있다면 HTTP Method의 한계 및 표준이 없어서 관리하기 어려
움 정도가 존재.(REST는 웹서비스 아키텍쳐일뿐, 표준이 아님!)
What REST actually aims
for?

More Related Content

PPTX
Web http spec(basic)
PPTX
Web html spec
PPT
Google
PDF
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
PDF
REST에 대해 알아봅시다.pdf
PDF
제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처
PPTX
대용량 분산 아키텍쳐 설계 #5. rest
PPTX
REST
Web http spec(basic)
Web html spec
Google
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
REST에 대해 알아봅시다.pdf
제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처
대용량 분산 아키텍쳐 설계 #5. rest
REST

Similar to REST Concept (20)

PPTX
REST Ovewview
PDF
WoO 2012-Web 서비스 기술
PPTX
Restfull api
PDF
서버성능개선 류우림
PDF
RESTful API
PDF
ASP.NET Web API를 이용한 오픈 API 개발
PPTX
REST API 설계
PPTX
Ksug 세미나 (윤성준) (20121208)
PPTX
220302 사내세미나_오정민 REST API와 크롤링
PPTX
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
PPTX
Spring portfolio2
PDF
Web server page_ed10
PPTX
Web http spec
PPTX
Web http spec
PDF
SOAP 기반/ RESTful기반 웹서비스 비교
PPTX
Restful web service
PDF
Elastic Search (엘라스틱서치) 입문
PDF
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
PPTX
Elastic Search Performance Optimization - Deview 2014
PDF
Ch1 일래스틱서치 클러스터 시작
REST Ovewview
WoO 2012-Web 서비스 기술
Restfull api
서버성능개선 류우림
RESTful API
ASP.NET Web API를 이용한 오픈 API 개발
REST API 설계
Ksug 세미나 (윤성준) (20121208)
220302 사내세미나_오정민 REST API와 크롤링
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
Spring portfolio2
Web server page_ed10
Web http spec
Web http spec
SOAP 기반/ RESTful기반 웹서비스 비교
Restful web service
Elastic Search (엘라스틱서치) 입문
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
Elastic Search Performance Optimization - Deview 2014
Ch1 일래스틱서치 클러스터 시작
Ad

More from ChangHyeon Bae (16)

PPT
호이스팅, 클로저, IIFE
PPTX
Webpack&babel
PPTX
PPTX
PPTX
javascript03
PPTX
javascript02
PPTX
javascript01
PPTX
Java memory
PPTX
JavaScript 실행컨텍스트와 클로저
PPTX
WAS와 웹서버 간단 정리
PPTX
Srping data rest
PPTX
Angular 살짝 해보고 발표.
PPTX
OOP - Object Oriendted Programing
PPTX
TDD - Test Driven Development
PPTX
DI - Dependency Injection
PPTX
CDN - Content Delivery Network
호이스팅, 클로저, IIFE
Webpack&babel
javascript03
javascript02
javascript01
Java memory
JavaScript 실행컨텍스트와 클로저
WAS와 웹서버 간단 정리
Srping data rest
Angular 살짝 해보고 발표.
OOP - Object Oriendted Programing
TDD - Test Driven Development
DI - Dependency Injection
CDN - Content Delivery Network
Ad

REST Concept

  • 1. 불타는 Study By - phpbae REST에 대해서..
  • 2. REST 를 알아보자! REST = REpresentational State Transfer(표현상태전이) -> 웹 서비스 아키텍쳐 ROA(Resource Oriented Architecture)를 따르는 웹 서비스 디자인 Architecture ? 아키텍쳐는 비즈니스 요구사항을 만족하는 시스템을 구축하기 위해서, 전체 시스템에 대한 구조를 정의한 문서로, 시스템을 구성하는 컴포넌트, 컴포넌트의 관계, 컴포넌트가 다루는 데이터를 정의.
  • 3. REST (REpresentational State Transfer)는 소프트웨어 아키텍처 스타일입니다. RESTful은 일반적으로 REST 아키텍처를 구현하는 웹 서비스를 나타 내기 위해 사용됩니다. URI ? Uniform Resource Identifier -> 인터넷에 있는 자원을 식별하기 위한 유일한 주소(문자열) URI의 하위개념으로는 URL, URN이 있다. What is the REST? REST = REpresentational State Transfer - REST는 1. URI와 HTTP Method를 이용해 객체화된 서비스에 접근하는 것. 2. HTTP URI로 잘 표현된, 리소스에 대한 행위를 HTTP Method에 정의 리소스에 내용은 json, xml, yaml 등의 다양한 언어로 정의. 3. 하나의 URI는 하나의 고유한 리소스를 대표하도록 설계된다는 개념. * REST는 표준이 아님 + REST는 프로토콜이 아님.
  • 4. What is the REST? REST = REpresentational State Transfer - 클라이언트가 서버에 특정 리소스를 요청합니다. - 서버는 요청 된 자원을 전달하여 해당 요청에 응답합니다. - 서버에는 클라이언트에 대한 정보가 없습니다. 따라서 동일 한 클라이언트의 두 요청간에 차이가 없습니다. - 자원의 표현이 클라이언트와 서버간에 전송되는 모델. 우리 가 알고 있는 웹은 이미 이 형식으로 되어 있습니다!
  • 5. 자원(Resource) - URI 행위(Verb) - HTTP Method 표현(Representations) 1. 자원(Resource) : “사용자” -> http://www.ohjic.com/users 라는 형태의 URI REST에서 말하는 resource는 기본적으로 제공하는 URI로 액세스 되는 모든 것. 모든 리소스는 URI를 통해, 고유하게(Unique) 주소 지정이 가능해야함. 2. 행위(Verb) : “가져온다” -> HTTP GET Method REST에서 행위는 대상 리소스가 문서, 이미지, 비디오든 상관없이 같은 메소드에 의해 다뤄진다. 여기서 사용되는 메소드는 HTTP Method를 의미. 3. 표현(Representations) : “이름이 배님인 사용자” -> 생성하고자 하는 사용자의 내용을 JSON/XML 형식을 이용해서 표현 -> REST에서 표현은 자원의 대한 행위의 내용을 정의 (HTTP Content-Type) / Payload 라고도 표현을 한다. REST의 구성 OPERATION HTTP METHOD Create POST Read GET Update PUT or POST Delete DELETE URI Example(파일 확장자는 URI에 포함시키지 않음) http://localhost:9999/restapi/books GET – get all books POST – add a new book http://localhost:9999/restapi/books/{id} GET – get the book whose id is provided POST – update the book whose id is provided DELETE – delete the book whose id is provided CRUD Operations Mapped to HTTP Methods in RESTful Web Services
  • 6. 1. URI (통합자원식별자) Uniform Resource Identifier (URI) consists of a string of characters used to identify or name a resource on the Internet . -> 인터넷의 자원을 식별하기 위한 문자열의 구성. 2. URL (파일식별자) URL is an acronym for Uniform Resource Locator and is a reference (an address) to a resource on the Internet. -> 인터넷에의 자원에 대한 참조(주소). http://test.com/work/sample.pdf -> URI 이면서, URL http://test.com/work/ -> URI (test.com 밑에 work라는 파일은 존재X, 요청하는 주소가 파일이라기보다는, 구분자로 보는것) http://img0.gmodules.com/ig/images/korea/logo.gif 이와 같은 형식은 logo.gif라는 인터넷상의 자원 위치를 의미 한다. 이는 URI이면서도 URL라고 말할 수 있다. http://endic.naver.com/endic.nhn?docid=1232950 http://endic.naver.com/란 서버에 위치한 endic.nhn파일은 query string인 docid의 값에 따라 여러가지 결과를 나타낸다. 여기서 URL은 endic.nhn의 위치를 표기한 http://endic.naver.com/endic.nhn 까지이다. 내가 원하는 정보에 도달 하기위해서는 ?docid=1232950라는 식별자 (Identifier)가 필요한 것이다. 결국 위의 http://endic.naver.com/endic.nhn?docid=1232950 주소는 URI이긴 하지만 URL은 아니다. 결국에는, URL도 해당파일명이 식별자역할을 하기 때문에, URI 가 URL을 포함하는 관계가 성립한다. URI 제대로 파악하기
  • 7. 1) Uniform Interface Uniform Interface는 URI로 지정한 리소스에 대한 조작 또는 액세스를 HTTP 기반(일반 인터페 이스)으로 통일하고, 통신을 보다 쉽게 관리 할 수 있습니다. 2) Stateless 작업을 위한 상태정보를 따로 저장하고 관리하지 않습니다. 세션 정보나 쿠키정보를 별도로 저장하고 관리하지 않기 때문에 REST API 서버는 들어오는 요청만을 단순히 처리하면 됩니다. 그래서, 클라이언트 세션 데이터 또는 서버에 저장된 Context가 없기 때문에, 클라이언트 세 션을 유지할 필요가 없는 서비스 계층은 확장하기가 훨씬 쉽습니다. -> 확장성 REST Characteristics
  • 8. 3) Cacheable HTTP 응답은 클라이언트가 캐시 할 수 있어야 합니다. 성능에 중요합니다. 리소스에 대한 새로운 요청이 잠시 후에 발생하면 캐시 된 응답이 반환됩니다. HTTP 프로토콜 표준에서 사용하는 Last-Modified태그나 E-Tag를 이용하면 캐싱 구현이 가능합니다. 4) Self-descriptiveness (자체 표현 구조) REST의 또 다른 큰 특징 중 하나는 REST API 메시지만 보고도 이를 쉽게 이해 할 수 있는 자 체 표현 구조로 되어 있다는 것입니다. REST Characteristics
  • 9. 5) Client - Server 구조 클라이언트와 서버는 서로 독립적입니다. 클라이언트는 서버에 보관 된 리소스에 대해 아무것도 모릅니다. 서버는 올바른 요청이 들어올 때까지 응답합니다. - 목표 : 플랫폼 독립성 및 확장성 향상. 6) Layered System REST 서버는 다중 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 계층을 추가해 구 조상의 유연성을 둘 수 있고 PROXY, 게이트웨이 같은 네트워크 기반의 중간매체를 사용할 수 있게 합니다. 실제로 클라이언트는 마지막 서버 또는 중간 서버에 연결되어 있는지 여부를 알지 못합니 다. 중개자는 캐싱 및 메시지 전달을 통해 성능을 향상시킬 수 있습니다. REST Characteristics
  • 10. Scalability – 확장성. Simplicity – 간결함. Modifiability - 수정 가능성. Useability – 편리성. Portability – 이식성. Reliability - 신뢰성. 위의 REST에서 추구하는 목표들이 곧 REST의 장점(REST의 특징을 잘 살펴보자!) 단점이 있다면 HTTP Method의 한계 및 표준이 없어서 관리하기 어려 움 정도가 존재.(REST는 웹서비스 아키텍쳐일뿐, 표준이 아님!) What REST actually aims for?