ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • REST 란?
    용어 2020. 2. 19. 11:41
    반응형

    REST(REpresentational State Transfer)

     REST는 네트워크 구조 원리의 모음으로, 리소스를 정의하고 자원에 대한 주소를 지정하는 방법에 대한 조건들을 의미합니다. 즉, 도메인 지향 데이터를 HTTP 위에서 부가적인 전송 레이어 없이 전송하기 위한 간단한 구조를 정의한 것 입니다.

     2000년도 로이 필딩은 자신의 박사학위 논문에서 REST라고 이름을 붙인, 웹의 구조적 스타일에 대한 제약조건들을 설명하였습니다. 


    REST 제약조건

    • 클라이언트(Client)/서버(Server)

     웹의 일관된 인터페이스를 따른다는 전체하에 클라이언트와 서버는 독립적으로 구현되어야 합니다.

    • 균일한 인터페이스(Uniform Interface)

     자원 식별, 표현을 통한 자원 처리, 자기 서술적 메시지 HATEOAS(Hypermedia As The Engine Of Application State)같은 인터페이스 제약에 따라 서로 일관성 있게 상호 운영되어야 합니다.

    • 계층 시스템(Layered System)

     웹의 일관된 인터페이스를 사용해서 프락시 또는 게이트웨이 같은 네트워크 기반의 중간매체를 사용할 수 있어야 합니다.

    • 캐시 처리(Cacheable)

     웹 서버가 응답 데이터마다 캐시 여부를 선언할 수 있어야 합니다.

    • 무상태(Stateless)

     웹 서버가 클라이언트의 상태를 관리할 필요가 없어야 합니다.

    • 주문형 코드(Code-on-demand)

     선택사항으로 스크립트나 플러그인 같은 실행 가능한 프로그램을 클라이언트에 전송하여 클라이언트가 실행할 수 있도록 해야 합니다.


    REST 인터페이스의 원칙에 대한 가이드

    • 자원의 식별

     요청 내에 기술된 개별 자원을 식별할 수 있어야 합니다. 웹 기반의 REST 시스템에서의 URI의 사용을 예로 들 수 있습니다.  자원 그 자체는 클라이언트가 받는 문서와는 개념적으로 분리되어 있습니다. 예를 들어, 서버는 데이터베이스 내부의 자료를 직접 전송하는 대신, 데이터베이스 레코드를 HTML, XML이나 JSON 등의 형식으로 전송합니다.

    • 메시지를 통한 리소스의 조작

     클라이언트가 어떤 자원을 지칭하는 메시지와 특정 메타데이터만 가지고 있다면 이것으로 서버 상의 해당 자원을 변경·삭제할 수 있는 충분한 정보를 가지고 있는 것 입니다.

    • 자기서술적 메시지

     각 메시지는 자신을 어떻게 처리해야 하는지에 대한 충분한 정보를 포함해야 합니다. 예를 들어 MIME type과 같은 인터넷 미디어 타입을 전달한다면, 그 메시지에는 어떤 파서를 이용해야 하는지에 대한 정보도 포함해야 합니다. 미디어 타입만 가지고도, 클라이언트는 어떻게 그 내용을 처리해야할 지 알 수 있어야 합니다. 메시지를 이해하기 위해 그 내용까지 살펴봐야 한다면, 그 메시지는 자기서술적이 아닙니다. 예를 들어, 단순히 "application/xml"이라는 미디어 타입은, 실제 내용을 다운로드 받지 않으면 그 메시지만 가지고는 무엇을 해야할지에 대해 충분히 알려주지 못 합니다.

    • 애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어

     만약에 클라이언트가 관련된 리소스에 접근하기를 원한다면, 리턴되는 지시자에서 구별될 수 있어야 합니다. 충분한 콘텍스트 속에서의 URI를 제공해주는 하이퍼텍스트 링크의 예를 들 수 있습니다.


    출처 : 스프링을 이용한 RESTful 웹 서비스 구축하기

    반응형

    '용어' 카테고리의 다른 글

    TCP/IP 란?  (0) 2020.02.25
    HTTP 란?  (0) 2020.02.21
    SOAP 이란?  (0) 2020.02.19

    댓글

Designed by Tistory.