REST란?
REST(Representational State Transfer)는 분산 시스템을 설계하기 위한 소프트웨어 아키텍처 스타일로, 특히 HTTP 프로토콜을 기반으로 한 웹 서비스 설계에서 주로 사용됩니다. REST는 클라이언트와 서버 간 통신에서 리소스의 상태와 표현(Representation)을 전송한다는 개념에서 이름이 유래되었습니다.
REST의 등장
REST는 미국의 컴퓨터 과학자인 로이 필딩이 2000년 박사 논문에서 처음으로 제안되었습니다. 웹의 확장성과 상호운용성을 극대화하기 위해 정의된 아키텍처 스타일입니다.
하나의 브라우저만 지원하면 되었던 이전과는 달리 여러 브라우저, 멀티 플랫폼, 멀티 디바이스 시대가 되며 플랫폼들에 범용적으로 사용될 수 있는 서버 디자인이 필요하게 되었고, 이를 해결할 수 있는 아키텍처로 REST가 사용되고 있는것입니다.
어떻게?
REST api는 Client side의 플랫폼에 제약을 두지 않아야합니다. 그래서 Server side에선 Client side를 전혀 고려하지 않고 메시지 기반, XML, JSON과 같이 Client에서 객체로 치환가능한 형태의 데이터 통신을 지향하면서 Server와 Client의 역할을 분리하게 됩니다.
REST의 구성
- 자원(Resource) - URI
- 행위(Verb) - Http Method
- 표현(Representations)
1. 자원 (Resource) URI
모든 자원엔 고유한 ID가 존재하고, 이 자원은 Server에 존재합니다.
이 ID는 /product/3과 같은 HTTP URI의 형태로 구분합니다.
2. 행위 (Verb) - Http Method
Http프로토콜의 Method를 사용합니다.
Http Method는 POST, GET, PUT, DELETE가 있습니다.
3. 표현 (Representation of Resource)
Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 보냅니다.
REST에서 하나의 자원은 JSON,XML,TEXT,RSS등 여러 형태의 응답을 받을 수 있습니다.
JSON혹은 XML을 통해 주고받는것이 일반적입니다.
REST의 제약조건
RESTful한 설계를 위해 아래와 같은 6가지 조건을 지켜야 합니다.
1) Client-Server(클라이언트-서버 구조) : 클라이언트와 서버를 명확히 분리하여 각자의 역할에 집중할 수 있도록 한다.
2) Stateless(상태 비저장성) : 서버는 클라이언트의 상태 정보를 저장하지 않는다. 각 요청은 독립적으로 처리되어야하며, 필요한 모든 정보는 요청에 포합되어야 한다.
3) Cacheable(캐시 처리 가능) : 서버 응답이 캐시될 수 있어야하며, 클라이언트는 이를 활용하여 네트워크 트래픽과 서버부하를 줄일 수 있다.
4) Code on demand(Optional) : 필요에 따라 서버가 클라이언트에 코드를 전송하여 실행할 수 있다. 예: Javascript, 플러그인 등
5) Uniform interface(인터페이스 일관성) : 일관된 인터페이스를 이용하여 모든 플랫폼에서 상호작용이 가능하도록한다. 특정 언어나 기술에 종속되지 않는다.
6) Layered System(계층화 시스템) : 클라이언트와 서버 간에 여러 계층을 둘 수 있으며, 각 계층은 독립적으로 동작한다.(예 :프록시 서버, 암호화 계층등)
RESTful API란?
Restful API는 REST의 설계 규칙을 잘 지켜서 설계된 API를 말합니다. 즉, REST API를 제공하는 서비스를 Restful 하다고 할 수 있습니다.
RESTful의 목적
이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것, 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것이 주 목적입니다.
Reference
https://hahahoho5915.tistory.com/54
[간단정리] REST, REST API, RESTful 특징
개요 REST, REST API, RESTful 특징 알아보기 REST REST 정의 REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식 REST는 기본적으로 웹
hahahoho5915.tistory.com
https://velog.io/@somday/RESTful-API-%EC%9D%B4%EB%9E%80
RESTful API 이란
REST API 에서 REST는 Representational State Transfer 의 약자로 소프트웨어 프로그램 아키텍처의 한 형식 입니다.즉, 자원을 이름 (자원의 표현) 으로 구분하여 해당 자원의 상태 (정보)를 주고 받는 모든
velog.io
https://ko.wikipedia.org/wiki/REST
REST - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 대한민국의 힙합 음악가에 대해서는 R-EST 문서를 참고하십시오. 다른 뜻에 대해서는 레스트 문서를 참고하십시오. 엄격한 의미로 REST는 네트워크 아키텍처 원
ko.wikipedia.org
'Dev > Web' 카테고리의 다른 글
MVC(Model-View-Controller) 디자인 패턴 (0) | 2024.07.06 |
---|