REST

union·2022년 6월 13일
0

공부

목록 보기
2/2

REST

네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나
기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용해 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일

  • JSON 혹은 XML을 통해 데이터를 주고 받는 것이 일반적
  • 즉, HTTP URI를 통해 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것
  • CRUD Operation
    - Create : POST
    • Read : GET
    • Update : PUT
    • Delete : DELETE
    • HEAD : header 정보 조회 (HEAD)
  • 장점
    - HTTP 프로토콜의 인프라를 그대로 사용하여 REST API 사용을 위한 별도의 인프라를 구출할 필요가 없음
    - HTTP 프로토콜의 표준을 최대한 활용해 여러 추가적인 장점을 함께 가져갈 수 있게 해줌
    - HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용 가능
    - Hypermedia API의 기본을 충실히 지키면서 범용성을 보장
    - 여러가지 서비스 디자인에서 생길 수 있는 문제를 최소화
    - 서버와 클라이언트의 역할을 명확하게 분리
    단점
    - 표준이 존재하지 않음
    - 사용 가능한 메소드가 4가지
    - 구형 브라우저가 아직 제대로 지원 못함

REST가 필요한 이유

  • 애플리케이션 분리 및 통합
  • 다양한 클라이언트의 등장 ex) 브라우저, 안드로이드, 아이폰
  • 멀티 플랫폼에 대한 지원을 위해 서비스 자원에 대한 아키텍처를 세우고 이용하는 방법을 모색한 결과, REST에 관심을 가지게 됨

REST 구성 요소

  1. 자원 : URI
    • 모든 자원에 고유 ID가 존재, 이 자원은 Server에 존재
    • 자원을 구별하는 ID는 HTTP URI
    • Client는 URI를 이용해 자원ㅇ르 지정하고 해당 자원의 상태에 대한 조작을 Server에 요청
  2. 행위(Verb) : HTTP Method
    • HTTP 프로토콜의 Method를 사용
    • HTTP 프로토콜은 GET, POST, PUT, DELETE 와 같은 메서드를 제공
  3. 표현
    • Client가 자원의 상태에 대한 조작을 요청하면 Server는 이에 적절한 응답을 보냄
    • REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 Representation으로 나타내질 수 있음
    • JSON, XML을 통해 데이터를 주고받는 것이 일반적

REST 특징

  1. 서버-클라이어늩 구조
    장점 : 서로 간 의존성이 줄어듬

  2. Stateless (무상태)

  • HTTP 프로토콜은 Stateless Protocol이므로 REST 역시 무상태성을 갖는다.
  • Client의 context를 Server에 저장하지 않는다
  • Server는 각각의 요청을 완전히 별개의 것으로 인식하고 처리
    - 각 API 서버는 Client의 요청만을 단순 처리
    • 이전 요청이 다음 요청의 처리에 연관되어서는 안됨
  1. Cacheable (캐시 처리 가능)
  • 웹 표준 HTTP

0개의 댓글