REST(Representational State Transfer)
REST (Representational State Transfer)
조건
- Client와 Server의 분리
- 서로 독립적으로 분리되어 있어야 한다.
- Stateless
- 요청에 대해서 클라이언트의 상태를 서버에 저장하지 않는다.
- 매 요청을 새롭게 처리한다
- Cache (캐시)
- 클라이언트는 서버의 응답을 임시 저장하여, 재사용하고 부하를 낮추어야한다.
- Layered System (계층화)
- 서버와 클라이언트 사이를 다양한 계층 형태로 구성하고, 이를 확장할 수 있어야한다.
- 인터페이스 일관성
- 인터페이스의 일관성을 지킨다.
- 아키텍처를 단순화, 작은 단위로 분리하여 클라이언트, 서버를 독립적으로 개선할 수 있어야한다.
인터페이스의 일관성을 기초로 REST를 잘 사용하였는지 판단할 수 있다.
- 자원의 식별
- URI를 통하여 리소스에 접근한다.
- 메시지를 통한 리소스 조작
- 데이터의 타입을 알려주는 header부분의 content-type
- 자기 서술적 메시지
- 요청하는 데이터가 어떻게 처리되어야하는지 충분한 데이터 포함
- 애플리케이션 상태에 대한 엔진으로써 하이퍼미디어
- 요청에 대한 데이터만이 아닌 관련된 리소스에 대한 Link정보 포함
- Code On Demand
- 특정 기능을 서버로부터 전달받아 클라이언트가 실행할 수 있어야한다.
Method
- GET
- 리소스 취득
- CRUD 중 R(Read)
- POST
- 리소스 생성, 추가
- CRUD 중 C(Create)
- PUT
- 리소스 갱신, 생성
- CRUD 중 C(Create)/U(Update)
- 데이터가 없으면 생성하고, 있으면 갱신한다.
- DELETE
- 리소스 삭제
- CRUD 중 D(Delete)
- HEAD
- 헤더 데이터 취득
- OPTIONS
- 지원하는 메소드 취득
- TRACE
- 요청메시지 반환
- CONNECT
- 프록시 동작의 터널 접속으로 변경
REST(Representational State Transfer)
You need to set
install_url
to use ShareThis. Please set it in _config.yml
.