본문 바로가기

Study/Web Dev Basic

What is REST?

REST | REpresentational State Transfer(대표 state 전달)

REST is a guideline for how a client and server should communicate and perform CRUD operation on a given resource. 

 

REST는 클라이언트와 서버가 어떻게 리소스에 대한 CURD를 요청하고 응답할지를 제시하는 가이드라인이다. 

 

+) CRUD | create, read, update, delete

+) Resouce | HTTP를 통해 주고 받을 수 있는 하나의 개체(entity)를 말하며, 이미지, 동영상 등과 같은 파일이나, 댓글, 트윗 등과 같은 코멘트 등등이 있다.

Uniform Interface

REST에서 강조하는 개념 중 하나인 Uniform Interface는 일관적인(consistent) URL 패턴을 다른 HTTP method와 결합하여 사용하는 것이다. 이런 가이드라인을 잘 따른 시스템을 RESTful system이라고 한다. 예를 들어 다음과 같다.

 

+) HTTP method | GET, POST, PATCH, DELETE... => CRUD

 

HTTP method / Resource

GET /comments | get all comments 
POST /comments | create a new comment
GET /comments /:id | get one comments  
PATCH /comments /:id | update a comment 
DELETE /comments /:id | delete a comment

REST APIs

+) What is REST APIs? | Introduction 

REpresentational State Transfer (REST) is an architectural style that defines a set of constraints to be used for creating web services. REST API is a way of accessing web services in a simple and flexible way without having any processing.
An Hypertext Transfer Protocol request(HTTP Request) is made by a client, to a named host, which is located on a server. The aim of the request is to access a resource on the server. To make the request, the client uses components of a URL (Uniform Resource Locator), which includes the information needed to access the resource.

 

클라이언트와 서버가 통신할 때 사용하는 것이 HTTP라는 프로토콜이다. 이 이름과는 달리 hyper text 뿐만아니라, 모든 resource를 받아올 때 이 HTTP를 이용한다. REST는 이 Resource를 어떻게 가져오고, 수정하고, 삭제할건지 등 가장 대표적인 상태들을 처리하는 방법을 정해 놓은  것이다. 

 

req, res

 

웹 앱을 이용하는 Client는 Server에 항상 request(요청)를 보낸다. 이 요청은 web URL의 형식으로 이루어지는데, 가장 많이 이용되는 요청의 종류는 HTTP GET, POST, PUT, DELETE 네가지로 나누어 볼 수 있다. request를 받은 Server는 Client에게 response(응답)를 하고, 이 응답은 HTML, XML, 이미지, JSON 등과 같은 리소스의 형식을 가지고 있다. 웹 서비스에서 최근 가장 많이 사용되는 리소스 형식은 json이다. 

 

  1. GET: The HTTP GET method is used to read (or retrieve) a representation of a resource. In the safe path, GET returns a representation in XML or JSON and an HTTP response code of 200 (OK). In an error case, it most often returns a 404 (NOT FOUND) or 400 (BAD REQUEST). => 이미 존재하는 정보를 읽을 때 이용
     
  2. POST: The POST verb is most-often utilized to create new resources. In particular, it’s used to create subordinate resources. That is, subordinate to some other (e.g. parent) resource. On successful creation, return HTTP status 201, returning a Location header with a link to the newly-created resource with the 201 HTTP status. 
    NOTE: POST is neither safe nor ??? idempotent(초기 적용 이후의 결과를 변경하지 않고 여러 번 적용할 수 있는 것을 idempotent이라고 한다). => 새로운 정보를 만들 때
     
  3. PUT: It is used for updating the capabilities(기능). ??? However, PUT can also be used to create a resource in the case where the resource ID is chosen by the client instead of by the server. In other words, if the PUT is to a URI that contains the value of a non-existent resource ID. On successful update, return 200 (or 204 if not returning any content in the body) from a PUT. If using PUT for create, return HTTP status 201 on successful creation. PUT is not safe operation but it’s idempotent. => 이미 존재하는 정보를 업데이트 할 때
     
  4. DELETE: It is used to delete a resource identified by a URI. On successful deletion, return HTTP status 200 (OK) along with a response body. => 존재하는 정보를 삭제할 때

'Study > Web Dev Basic' 카테고리의 다른 글

What is LocalStorage?  (0) 2022.06.19
What is Database?  (0) 2022.06.04
Markdown  (0) 2022.05.02
Browser & window  (0) 2022.04.05
What is the Web?  (0) 2022.04.05