도움말닫기
편집할 때 기술적인 문제가 발생했다면 보고해 주세요.
알림 2개닫기

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

이 편집기가 공식적으로 지원하지 않는 브라우저를 사용하고 있습니다.

REST

IT 위키
Representational State Transfer

HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 정보 전달 방식

  • Roy Fielding 박사학위 논문에서 제안

1 용어[편집 | 원본 편집]

  • REST API: REST를 기반으로 만들어진 API
  • RESTful: REST API를 활용하여 개발되는 서비스

2 SOAP과의 비교[편집 | 원본 편집]

REST는 기존 공식 표준인 SOAP을 넘어서 사실상 표준이 됨
구분 SOAP RESTful
사용 프로토콜 HTTP HTTP
주안점 동작과 프로세싱에 집중 데이터 처리에 집중
표현 방식 주로 XML 주로 JSON

3 REST의 구성[편집 | 원본 편집]

구성 설명
자원

(Resource)

  • 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재
  • 자원을 구별하는 ID는 '/groups/:group_id'와 같은 HTTP URI
  • Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청
행위

(Verb)

  • HTTP 프로토콜의 Method 사용
  • HTTP 프로토콜은 GET, POST, PUT, DELETE 와 같은 메서드 제공
표현

(Representation)

  • Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 회신
  • REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태로 표현
  • 일반적으로 JSON이나 XML 이용

4 REST의 속성[편집 | 원본 편집]

  • Server-Client
  • Stateless(무상태)
  • Cacheable(캐시 처리 가능)
  • Layered System(계층화)
  • Code-On-Demand(실행 코드 제공)
    • 클라이언트의 기능을 일시적으로 확장하거나 커스트마이징 가능
    • Java Applet, JavaScript, Flash 등이 Code On Demand의 예시
    • 보안 취약점 발생
  • Uniform Interface(인터페이스 일관성)

Representational State Transfer

HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 정보 전달 방식

  • Roy Fielding 박사학위 논문에서 제안

용어

  • REST API: REST를 기반으로 만들어진 API

  • RESTful: REST API를 활용하여 개발되는 서비스

SOAP과의 비교

REST는 기존 공식 표준인 SOAP을 넘어서 사실상 표준이 됨

구분

SOAP

RESTful

사용 프로토콜

HTTP

HTTP

주안점

동작과 프로세싱에 집중

데이터 처리에 집중

표현 방식

주로 XML

주로 JSON

REST의 구성

구성

설명

자원

(Resource)

  • 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재

  • 자원을 구별하는 ID는 '/groups/:group_id'와 같은 HTTP URI

  • Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청

행위

(Verb)

  • HTTP 프로토콜의 Method 사용

  • HTTP 프로토콜은 GET, POST, PUT, DELETE 와 같은 메서드 제공

표현

(Representation)

  • Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 회신

  • REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태로 표현

  • 일반적으로 JSON이나 XML 이용

REST의 속성

  • Server-Client

  • Stateless(무상태)

  • Cacheable(캐시 처리 가능)

  • Layered System(계층화)

  • Code-On-Demand(실행 코드 제공)

    • 클라이언트의 기능을 일시적으로 확장하거나 커스트마이징 가능

    • Java Applet, JavaScript, Flash 등이 Code On Demand의 예시

    • 보안 취약점 발생

  • Uniform Interface(인터페이스 일관성)