⭐ REST(Representational State Transfer)
: HTTP에 존재하는 모든 자원에 고유한 URI를 부여하여 활용하는 것으로, 자원을 정의하는 방법론
: 또한 이와 같이 REST 방식을 따르는 시스템을 RESTful이라고 한다.
⭐ REST 구성
- 자원(RESOURCE): URI
- 행위(Verb): HTTP METHOD
- 표현(Representations)
> URI는 정보의 자원을 표현해야 한다.
> 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.
> 슬래시 구분자(/)는 계층 관계를 나타내는 데 사용하며, 마지막 문자로 포함되면 안된다.
> 하이픈(-)은 가독성을 높이는 데 사용하며, 언더바(_)는 사용하지 않는다.
> 소문자를 사용하며, 파일 확장자는 포함시키지 않는다.
⭐ REST 아키텍처에 적용되는 6가지 제한 조건
- 인터페이스 일관성: 일관적인 인터페이스로 분리되어야 한다.
- 무상태(Stateless): 각 요청간 클라이언트의 콘텍스트가 서버에 저장되어서는 안된다.
- 캐시 처리 가능(Cacheable): 클라이언트는 응답을 캐싱할 수 있어야 한다.
- 계층화(Layered System) 클라이언트는 보통 대상 서버에 직접 연결되었는지, 또는 중간 서버를 통해 연결되었는지를 알 수 없다. 중간서버는 로드 밸런싱 기능이나 공유 캐시 기능을 제공함으로써 시스템 규모 확장성을 향상시키는 데 유용하다.
- 클라이언트/서버 구조: 아키텍처는 단순화시키고 작은 단위로 분리함으로써 클라이언트-서버의 각 파트가 독립적으로 개선될 수 있도록 해준다.
- Code on demand (optional)
⭐ REST 인터페이스의 원칙에 대한 가이드
1. 자원의 식별
: 요청 내에서 기술된 개별 자원을 식별할 수 있어야 한다. 웹 기반의 REST시스템에서의 URI의 사용을 예로 들 수 있다. 자원 그 자체는 클라이언트가 받는 문서와는 개념적으로 분리되어 있다. 예를 들어, 서버는 데이터베이스 내부의 자료를 직접 전송하는 대신, 데이터베이스 레코드를 HTML, XML이나 JSON등의 형식으로 전송한다.
2. 메시지를 통한 리소스의 조작
: 클라이언트가 어떤 자원을 지칭하는 메시지와 특정 메타데이터만 가지고 있다면 이것으로 서버상의 해당 자원을 변겅, 삭제할 수 있는 충분한 정보를 가지고 있는 것이다.
3. 자기 서술적 메시지
: 각 메시지는 자신을 어떻게 처리해야 하는지에 대한 충분한 정보를 포함해야 한다.
⭐ 상태코드
상태 코드 | |
200 | 클라이언트의 요청을 정상적으로 수행 |
201 | 클라이언트가 어떠한 리소스 생성을 요청했고, 해당 리소스가 성공적으로 생성됨 |
400 | 클라이언트의 요청이 부적절함 |
401 | 클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청함 |
403 | 유저 인증상태와 관계 없이 응답하고싶지 않은 리소스를 클라이언트가 요청 |
405 | 클라이언트가 요청한 리소스에서는 사용 불가능한 Method를 이용 |
301 | 클라이언트가 요청한 리소스에 대한 URI가 변경됨 |
500 | 서버에 문제가 있을 경우 |
⭐ reference
'ETC' 카테고리의 다른 글
Git ignore 적용하기, Authentication failed 에러 해결하기. (0) | 2021.11.01 |
---|---|
Eclipse 관련 작고 사소한 정보들 (0) | 2021.09.01 |