728x90
REST란?
- Representational State Transfer 라는 용어의 약자로 웹에 존재하는 모든 resource(이미지,동영상,DB 자원)에 고유한 URI를 부여해 자원을 정의하고 자원에 대한 주소를 지정해 활용하는 방법론
RESTful API
- REST 특징을 지키면서 API를 제공하는 것을 의미.(Coding Convention과 비슷)
REST API의 구성
개념 | REST API |
자원 | URI( = endpoint) |
행위 | HTTP Method |
표현 | 행위 + 자원 |
- HTTP의도에 맞게 활용한다는 것
- URI는 정보의 자원을 표현
- 하나의 자원에 대한 행위는 HTTP Method(GET,POST,PUT,DELETE)로 표현.
- 하나의 endpoint로부터 서로 다른 요청을 4개까지 할 수 있다.
- 표현은 이 둘의 조합으로 동사 목적어 처럼 사용하면 된다.
- ex) DELTE localhost:3000/resources/myResource.jpg
REST의 특징
- Uniform Interface
- HTTP 표준만 따른다면 모든 플랫폼(안드로이드/IOS)에서 언어나 기술에 종속되지 않고 사용가능하다.
- Stateless
- HTTP의 특성을 이용하기 때문에 서버에서 어떤 작업을 하기위해 상태정보를 기억할 필요가 없고 들어온 요청에 대해서만 처리해주면 된다.
- 상태정보란?
- 이전에 무엇을 했고, 지금은 무엇을 했는지에 대한 정보. 예를들어 로그인 요청에 대한 AuthToken을 발급하는 Backend 서버의 경우, 상태 정보란 로그인 요청 이후의 해당 사용자의 로그인 이력과 AuthToken을 의미한다.
- 웹 브라우저(클라이언트)의 요청에 대한 응답을 한 후, 해당 클라이언트와의 연결을 다음 요청이 올때까지 끊기 때문에 상태정보를 저장하지 못한다.
- 상태정보란?
- 상태정보(stateful) 유지를 위해 Cookie(client에 저장)와 Session(server에 저장) 기술을 사용한다.
- HTTP의 특성을 이용하기 때문에 서버에서 어떤 작업을 하기위해 상태정보를 기억할 필요가 없고 들어온 요청에 대해서만 처리해주면 된다.
- Cacheable
- HTTP라는 웹 표준을 사용하기 때문에 기본 브라우저에서 사용하는 인프라를 그대로 사용가능하다
- Self-descriptiveness
- Method + URI로 표현되어있어(body가 있다면 JSON형식) 메시지 포맷을 보고 직관적 이해가 가능하다.
- Client - Server 구조
- Client는 유저와 관련된 처리를 서버는 REST api를 제공함으로써 각각의 역할이 확실하게 구분되고 일관적인 인터페이스로 분리되어 작동할 수 있게 한다.
'HTTP' 카테고리의 다른 글
HTTP 1.0 / 1.1 / 2 (0) | 2021.07.23 |
---|---|
Basic HTTP Request/Response (0) | 2021.07.23 |
AJAX (0) | 2021.03.07 |
CSR vs SSR (0) | 2021.02.10 |