REST 개념
HTTP URI를 통해 자원을 명시한다.❗❗❗
자원을명시하되 HTTP method를 사용하여 CRUD를 적용한다.❗❗❗
REST는 자원기반구조(ROA)의 설계중심이고 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐를 의미한다.
웹의 모든 자원에 고유한 ID인 HTTP URI를 부여한다.
REST 특징
Client-Server
사용자들에게 제공하는 인터페이스인 유저인터페이스와 데이터스토리지 등의 서버 내부 작업을 분리함으로서 유저인터페이스는 여러 플랫폼에서 이식성을 향상, 서버는 그 구성요소를 단순화 하여 확장성을 단순화할 수 있다.
Stateless(무상태성)
서버와 클라이언트 상태가 없을 의미하는 것이 아니라 서로의 상태를 알 필요가 없다는
뜻임. 서버는 과거 요청한 기록을 유치하지 않고 요청은 독립형으로 처리된다.
cache(캐시)
요청에 대한 응답내의 데이터에 요청은 캐시가 가능한지 불가능한지 명시해야 된다.
uniform interface(유니폼 인터페이스)
특정언어와 기술에 종속되지 않으며 HTTP 표준만 따르면 모든 플랫폼에서 사용가능하고
URI로 지정한 리소스에 대한 조작을 가능하게 하는 아키텍처 스타일이다.
layered system(계층화)
계층화된 시스템 아키텍처를 사용하여 각 구성들이 간의 계층을 마음대로 상호작용 할 수
없도록 제한 함으로써 인터페이스를 일원화 할수 있다.
code-on-demand
서버가 네트워크로 클라이언트에 전달한 자바스크립트 등과 같은 프로그램들은 그 자체로
실행이될 수 있어야 한다.
평소에 정적 테이터를 xml 또는 json에 담아서 client로 보내고 client가 이것을 가공한다.
다만 code on demand는 client에 보내는 데이터를 바로 실행 가능한 코드를 보내서 이것
을 client에서 실행하는 것을 말한다.
Uniform Interface 4가지 조건
REST 규칙
reference
https://codewords.recurse.com/issues/five/what-restful-actually-means
https://www.youtube.com/watch?v=RP_f5dMoHFc&t=1149s