일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- cors
- rest api
- @ConfigurationProperties
- 정적 리소스
- WebApplication Type
- Application Event
- 스프링부트
- 다익스트라
- 리소스 서버
- Application Runner
- 리소스핸들러
- 백트래킹
- 알고리즘
- HATEOAS
- Application Argument
- JPA
- application.properties
- 스프링 부트
- OAuth2
- 백기선
- AuthenticationPrincipal
- webjar
- 백준
- Spring Security
- JsonSerializer
- EnableAutoConfiguration
- 브루트포스
- HttpMessageConverters
- 외부설정
- @Profile
- Today
- Total
아카이브
REST 본문
REST ( REpresentational State Transfer )
- 소프트웨어 아키텍처 스타일
- REST 원리를 따르는 시스템을 RESTful이라고 지칭
- 직관적으로 웹에 있는 자원들을 HTTP를 활용하여 자원에 접근하는 것
- 웹 상의 자료를 HTTP 위에서 SOAP나 쿠키를 통한 세션 트래킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스
- ROA(Resource Oriented Architecture, 자원 지향 아키텍처) 를 실현하기 위한 기술
● SOUP ? XML 기반의 메시지를 네트워크 상에서 교환하는 프로토콜
웹 서비스에서 기본적인 메시지를 전달하는 기반
SOA (Service Oriented Architecture, 서비스 지향 아키텍처) 를 실현하기 위한 기술
단점 : REST보다 어렵고, 무거움
개발하기 어렵고 도구가 필요함
REST 구성요소
- Resource
● 유일한 ID를 가지는 Resource가 서버에 존재하고, 클라이언트는 각 Resource의 상태를 조작하기 위해 요청을 보냄
- Method
● Resource를 조작할 수 있는 동사형의 단어
● 클라이언트는 URI를 이용해서 Resource를 지정하고, 조작하기 위해 Method를 사용
● GET, POST, PUT, DELETE 등
- Representation of Resource
● 서버가 응답으로 보내주는 Resource의 상태
● xml, json, text, rss 등으로 전달할 수 있음
- URI 구성
● URI는 직관적으로 어떤 정보를 제공하는지 알 수 있어야 함
ex) /users, /groups
● URI path가 계층적인 구조를 가져야 함
ex) /groups/{groupId}/member/{memberId}
● URI의 상위 path는 하위 path의 집합을 의미하는 단어로 구성해야 함
ex) /groups/101/member/12345 에서 'groups'는 '101' 등의 그룹의 집합이므로, /groups 만으로 그룹의 목록을 알 수 있어야 함
REST 규칙
- URI는 정보의 자원 표현해야 함 ( 명사 )
ex) /members/1
- 행위는 method로 표현한다
GET : 조회
POST : 생성
PUT : 수정
DELETE : 삭제
REST의 특징
- Addressablitty ( URI를 이용 )
● URI로 지정한 리소스에 대한 직관적인 접근
● 1번 유저에 대한 상세정보를 볼때 /members/1
- Stateless ( 무상태성 )
● 이전, 이후에 대한 정보가 없이 단순히 들어오는 요청만을 처리
● 별도의 세션, 쿠키 관리가 필요없음
● 서비스의 자유도가 높아지고, 유연한 아키텍처 적용이 가능
- Self-Descriptiveness ( 자체 표현 구조 )
● 메시지 포맷만으로 직관적으로 이 메시지가 무엇을 의미하는지 알 수 있어야 함
참고링크
'네트워크' 카테고리의 다른 글
웹의 동작 원리 (0) | 2018.06.20 |
---|---|
세션 & 쿠키 (0) | 2018.06.20 |
OSI 7계층 (0) | 2018.06.18 |
LAN vs WAN (0) | 2018.06.13 |
HTTP vs HTTPS (0) | 2018.06.13 |