REST는 REpresantational State Transfer의 약자로, HTTP통신에서 어떤 자원에 대한 CRUD요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식입니다.
즉 웹에 존재하는 모든 자원에 고유한 URI를 부여해 활용하여 자원을 정의하고 자원에 대한 주소를 지정하는 방법이며, 이러한 REST 형식을 준수하는 시스템을 RESTful하다고 칭합니다.
REST API는 Resource(자원), Method(행위), Representation(표현)으로 구성됩니다.
- Resource (URI) : 서버는 Unique한 ID를 지니는 Resource를 가지고 있으며, 클라이언트는 이 Resource에 대한 요청을 보냅니다. 이러한 Resource는 URI입니다. ex) Members/1
- Method: 서버에 요청을 보내는 방식으로 GET,POST,PUT,PATCH,DELETE등이 있습니다. CRUD연산중에서 알맞은 Method를 사용하여 서버에 요청을 보냅니다.
-Representation : 클라이언트가 서버로 요청을 보낼때 서버가 응답으로 보내주는 자원의 형태를 Representation
이라고 합니다. ex) json,xml,text,rss...
REST의 조건
1. 클라이언트 / 서버 구조
자원을 가지고 있는 서버, 자원을 요청하는 쪽이 클라이언트에 해당합니다. 서버는 API를 제공하고, 클라이언트는 사용자 인증, Context등을 직접 관리하여 역할을 구분함으로써 서로간의 의존성을 줄입니다.
2. Stateless(무상태성)
HTTP는 Stateless프로토콜이므로 REST 또한 무상태성을 지닙니다. 서버는 각각의 요청을 별개의 요청으로 인식하여 처리하며, 클라이언트의 상태를 보관하지 않습니다. 이러한 무상태성은 서버에서 불필요한 정보를 처리하지 않으므로 구현의 난이도와 서버의 부담을 줄여줍니다.
3. 캐시 처리 가능
REST API는 웹 표준 HTTP프로토콜을 사용하므로 웹에서 사용하는 인프라(캐싱 기능)를 그대로 사용 가능합니다.
4. 인터페이스 일관성
Resource에 대한 요청을 공통된 규약으로 정해놓았기 때문에 특정 언어나 기술에 종속받지 않고 어느 플랫폼에서나 요청이 가능합니다.
5. 자체 표현 구조
Method + URI 로 이루어져 있어 어떤 자원에 어떤 행위를 하는지 메세지만 보고도 해당 작업을 이해할 수 있습니다.
6. Layered System(계층 구조)
REST API의 서버는 다중 계층으로 구성되어 있어서 보안, 로드밸런싱, 암호화 계층을 따로 추가하여 유연하게 구조를 변경할 수 있다고 합니다.
'CS > Computer Network' 카테고리의 다른 글
https에서 사용하는 SSL Handshaking 방식 및 대칭 / 비대칭키 암호화 방식 (0) | 2023.09.10 |
---|---|
CORS란? (0) | 2021.07.25 |
쿠키와 세션의 차이 (0) | 2021.07.11 |
HTTP 메서드와 그 역할 (2) | 2021.07.04 |
HTTP와 HTTPS 그리고 SSL HandShake (0) | 2021.06.28 |