REST(Representational State Transfer)

REST (Representational State Transfer)

조건

  1. Client와 Server의 분리
    • 서로 독립적으로 분리되어 있어야 한다.
  2. Stateless
    • 요청에 대해서 클라이언트의 상태를 서버에 저장하지 않는다.
    • 매 요청을 새롭게 처리한다
  3. Cache (캐시)
    • 클라이언트는 서버의 응답을 임시 저장하여, 재사용하고 부하를 낮추어야한다.
  4. Layered System (계층화)
    • 서버와 클라이언트 사이를 다양한 계층 형태로 구성하고, 이를 확장할 수 있어야한다.
  5. 인터페이스 일관성
    • 인터페이스의 일관성을 지킨다.
    • 아키텍처를 단순화, 작은 단위로 분리하여 클라이언트, 서버를 독립적으로 개선할 수 있어야한다.

인터페이스의 일관성을 기초로 REST를 잘 사용하였는지 판단할 수 있다.

  • 자원의 식별
    • URI를 통하여 리소스에 접근한다.
  • 메시지를 통한 리소스 조작
    • 데이터의 타입을 알려주는 header부분의 content-type
  • 자기 서술적 메시지
    • 요청하는 데이터가 어떻게 처리되어야하는지 충분한 데이터 포함
  • 애플리케이션 상태에 대한 엔진으로써 하이퍼미디어
    • 요청에 대한 데이터만이 아닌 관련된 리소스에 대한 Link정보 포함
  1. Code On Demand
    • 특정 기능을 서버로부터 전달받아 클라이언트가 실행할 수 있어야한다.

Method

  1. GET
    • 리소스 취득
    • CRUD 중 R(Read)
  2. POST
    • 리소스 생성, 추가
    • CRUD 중 C(Create)
  3. PUT
    • 리소스 갱신, 생성
    • CRUD 중 C(Create)/U(Update)
    • 데이터가 없으면 생성하고, 있으면 갱신한다.
  4. DELETE
    • 리소스 삭제
    • CRUD 중 D(Delete)
  5. HEAD
    • 헤더 데이터 취득
  6. OPTIONS
    • 지원하는 메소드 취득
  7. TRACE
    • 요청메시지 반환
  8. CONNECT
    • 프록시 동작의 터널 접속으로 변경

REST(Representational State Transfer)

http://inwoo.github.io/09/29/rest/

Author

Inwoo Jeong

Posted on

2021-09-29

Updated on

2021-11-03

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.

댓글