1. 의미
REST(분산 하이퍼 미디어 시스템(웹)을 위한 아키텍처 스타일) 아키텍처 스타일을 따르는 API
2. REST를 구성하는 스타일
- client-server
- stateless
- cache
- uniform interface의 제약조건 (identification of resources, manipulationof resources through representations, self-descriptive messages, HATEOAS)
- layered system
- code-on-demand(optional) -ex) JavaScript 서버에서 클라이언트로 보낸 코드가 작동해야
3. uniform interface의 제약조건
1) self-descriptive messages (메시지는 스스로를 설명해야한다. )
2) HATEOAS: 에플리케이션의 상태는 Hyperlink를 이용해 전이되어야 한다.
이 두가지를 오늘날의 REST API는 잘 따르지 못하고 있다.
4. 이런 제약조건 지켜야 하는 이유
서버와 클라이언트가 각각 독립적으로 진화하기 위해서 (서버 기능이 변경되어도 클라이언트를 업데이트할 필요 없게)
5. REST가 웹의 독립적 진화에 도움을 주었나
- HTTP에 지속적으로 영향 줌
- Host 헤더 추가
- 길이 제한을 다루는 방법 명시
- URI에서 리소스의 정의가 추상적으로 변경됨 : "식별하고자 하는 무언가"
- HTTP/1.1 명세 최신판에서 REST에 대한 언급이 들어감
6. REST API는 제약조건 잘 지켜지고 있나?(REST는 잘 지켜짐)
아니다.
1) 문법 해석은 가능하지만 의미를 해석하려면 별도의 문서(API문서 등)가 필요하다. - self-descriptive 하지 않음
ex) JSON id가 뭐고 title이 뭔지 알 길이 없다.(VS. HTML)
2) HATEOAS측면에서 다음 상태로 전이할 링크가 없다.
◎참고 : https://www.youtube.com/watch?v=RP_f5dMoHFc
'CS > Network' 카테고리의 다른 글
window host 파일 (0) | 2022.03.13 |
---|---|
ping이란 (0) | 2022.03.13 |
영카트 호스팅 (0) | 2022.02.19 |
NAT, checksum (0) | 2022.02.14 |
WAS (Web Application Server) vs. Web Server (0) | 2021.06.07 |