REST: Difference between revisions
From CS Wiki
No edit summary |
|||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
[[분류:인터넷]][[분류:네트워크]] | [[분류:인터넷]][[분류:네트워크]] | ||
;Representational State Transfer | ;Representational State Transfer | ||
HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 정보 전달 방식 | |||
* Roy Fielding 박사학위 논문에서 제안 | * Roy Fielding 박사학위 논문에서 제안 | ||
Line 53: | Line 53: | ||
* Layered System(계층화) | * Layered System(계층화) | ||
* Code-On-Demand(실행 코드 제공) | * Code-On-Demand(실행 코드 제공) | ||
** 클라이언트의 기능을 일시적으로 확장하거나 커스트마이징 가능 | |||
** Java Applet, JavaScript, Flash 등이 Code On Demand의 예시 | |||
** 보안 취약점 발생 | |||
* Uniform Interface(인터페이스 일관성) | * Uniform Interface(인터페이스 일관성) |
Latest revision as of 23:09, 16 September 2020
- Representational State Transfer
HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 정보 전달 방식
- Roy Fielding 박사학위 논문에서 제안
용어[edit | edit source]
- REST API: REST를 기반으로 만들어진 API
- RESTful: REST API를 활용하여 개발되는 서비스
SOAP과의 비교[edit | edit source]
- REST는 기존 공식 표준인 SOAP을 넘어서 사실상 표준이 됨
구분 | SOAP | RESTful |
---|---|---|
사용 프로토콜 | HTTP | HTTP |
주안점 | 동작과 프로세싱에 집중 | 데이터 처리에 집중 |
표현 방식 | 주로 XML | 주로 JSON |
REST의 구성[edit | edit source]
구성 | 설명 |
---|---|
자원
(Resource) |
|
행위
(Verb) |
|
표현
(Representation) |
REST의 속성[edit | edit source]
- Server-Client
- Stateless(무상태)
- Cacheable(캐시 처리 가능)
- Layered System(계층화)
- Code-On-Demand(실행 코드 제공)
- 클라이언트의 기능을 일시적으로 확장하거나 커스트마이징 가능
- Java Applet, JavaScript, Flash 등이 Code On Demand의 예시
- 보안 취약점 발생
- Uniform Interface(인터페이스 일관성)