REST, RESTful, REST API, POST, GET, PUT, DELETE

2019. 12. 4. 01:09JavaScript

728x90

REST: 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나

- HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미

- REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악

- 서버와 클라이언트의 역할을 명확하게 분리

- 사용할 수 있는 메소드가 4가지로 제한적

- 구형브라우저에서는 지원되지 않음(PUT, DELETE, pushState)


REST 구성요소: 자원, 행위, 표현

1. 자원(Resource) : URI
 - 모든 자원은 고유한 ID를 갖고있고, 이 자원은 서버에 존재한다
 - 자원을 구별하는 ID는 HTTP URI이고, 그 형식은 /groups/:group_id 이다.
 - 클라이언트는 URI를 이용해서 자원을 선택하고, 그 자원 정보를 서버에 요청한다.

2. 행위(Verb) : HTTP Method(POST, GET, PUT,DELETE) [자세히보기]
 - POST: Create
 - GET: read
 - PUT: update / replace
 - DELETE: delete

3. 표현(Representation of Resource)
 - 클라이언트가 요청을 보내면, 서버는 이에 적절한 응답(Representation)을 보낸다.
 - 자원의 형태는 JSON, XML, TEXT, RSS 등 다양하다. JSON이나 XML이 일반적이다.


REST 특징

1. 서버-클라이언트 구조


2. Stateless : HTTP프로토콜은 Stateless 프로토콜이므로, REST 역시 이를 따른다.


3. Cacheable : 캐싱 기능을 적용할 수 있다. 캐시를 사용함으로써 응답시간이 빨라지고 REST server transaction이 발생하지 않기 때문에 전체 응답시간, 성능, 서버의 자원 이용률을 향상시킬 수 있다.


4. Layered System(계층화):
 - 클라이언트는 REST API 서버만 호출한다.
 - REST 서버는 다중계층으로 구성될 수 있다. 


5. Uniform Interface(인터페이스 일관성): URI로 지정한 자원에 대한 조작을 통일되고 한정적인 인터페이스로 수행한다. HTTP 표준 프로토콜을 따르는 모든 플랫폼에서 사용이 가능하며, 특정 언어나 기술이 종속되지 않는다.

API(Application Programming Interface): 컴퓨터 프로그램간 상호작용을 촉진하고 서로 정보를 교환가능하도록 하는 것. 이를 위해 데이터와 기능의 집합을 제공한다.

REST API: REST 기반으로 서비스 API를 구현한 것
 - 최근 open API나 마이크로서비스 등을 제공하는 업체 대부분은 REST API를 제공한다.
 - 예를 들어 구글맵, 공공데이터, 애플리케이션 아키텍처 등

 

- 참고자료:

https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

 

https://www.restapitutorial.com/lessons/httpmethods.html#:~:targetText=The%20primary%20or%20most%2Dcommonly,or%20CRUD)%20operations%2C%20respectively. 

 

728x90
반응형

'JavaScript' 카테고리의 다른 글

자바스크립트 querySelector, querySelectorAll 차이  (0) 2019.12.25
classList toggle  (0) 2019.12.21
자바스크립트 플러그인 종류 몇개  (0) 2019.12.03
웹브라우저 크기  (0) 2019.12.01
padding, margin 차이  (0) 2019.12.01