REST: Difference between revisions
From CS Wiki
(새 문서: 분류:인터넷분류:네트워크 ;Representational State Transfer ;HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET,...) |
No edit summary |
||
(2 intermediate revisions 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 26: | Line 26: | ||
! 구성 !! 설명 | ! 구성 !! 설명 | ||
|- | |- | ||
| 자원(Resource) | | 자원 | ||
(Resource) | |||
|| | || | ||
* 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재 | * 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재 | ||
Line 32: | Line 33: | ||
* Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청 | * Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청 | ||
|- | |- | ||
| 행위(Verb) | | 행위 | ||
(Verb) | |||
|| | || | ||
* HTTP 프로토콜의 Method 사용 | * HTTP 프로토콜의 Method 사용 | ||
* HTTP 프로토콜은 GET, POST, PUT, DELETE 와 같은 메서드 제공 | * HTTP 프로토콜은 GET, POST, PUT, DELETE 와 같은 메서드 제공 | ||
|- | |- | ||
| 표현(Representation | | 표현 | ||
(Representation) | |||
|| | || | ||
* Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 회신 | * Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 회신 | ||
Line 50: | 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(인터페이스 일관성)