CS/Network

REST API

prden 2021. 7. 30. 14:56

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