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