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의 특징

  1. Uniform Interface
    • HTTP 표준만 따른다면 모든 플랫폼(안드로이드/IOS)에서 언어나 기술에 종속되지 않고 사용가능하다.
  2. Stateless
    • HTTP의 특성을 이용하기 때문에 서버에서 어떤 작업을 하기위해 상태정보를 기억할 필요가 없고 들어온 요청에 대해서만 처리해주면 된다.
      • 상태정보란?
        • 이전에 무엇을 했고, 지금은 무엇을 했는지에 대한 정보. 예를들어 로그인 요청에 대한 AuthToken을 발급하는 Backend 서버의 경우, 상태 정보란 로그인 요청 이후의 해당 사용자의 로그인 이력과 AuthToken을 의미한다.
      • 웹 브라우저(클라이언트)의 요청에 대한 응답을 한 후, 해당 클라이언트와의 연결을 다음 요청이 올때까지 끊기 때문에 상태정보를 저장하지 못한다.
    • 상태정보(stateful) 유지를 위해 Cookie(client에 저장)와 Session(server에 저장) 기술을 사용한다.
  3.  Cacheable
    • HTTP라는 웹 표준을 사용하기 때문에 기본 브라우저에서 사용하는 인프라를 그대로 사용가능하다
  4.  Self-descriptiveness
    • Method + URI로 표현되어있어(body가 있다면 JSON형식) 메시지 포맷을 보고 직관적 이해가 가능하다.
  5. 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

+ Recent posts