1. REST (Representational State Transfe) 란?
-
Client와 Server 사이의 통신 방식 중 하나로 자원, 행위, 표현으로 구성됨
-
자원의 이름으로 표현하여 해당 자원의 정보를 주고 받는 것
-
REST는 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하여 웹의 장범을 최대한 활용할 수 있는 아키텍쳐 스타일
2. REST의 기본 구조
REST는 제어할 자원을 표시한 URI로 수행할 행위인 HTTP Method를 보내 그 결과를 표현한다.
-
자원 Resource - URI ( Uniform Resource Idenrifier)
-
행위 Verb - HTTP Method
-
표현 Representation
2-1 URL과 URI의 차이
URL은 Uniform Resource Locator 이고, URI는 Uniform Resource Identifier 이고,
URL는 어떤 자원의 위치를 나타내고, URI는 어떤 자원을 식별하기까지 한다.
쉽게 설명하자면 아래에서 까지가 URL이고, 를 포함한 것이 URI라고 보면 된다.
https://6zeroe.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F
2-1-1 REST에서의 URI
REST에서 URI는 반드시 자원만을 가리켜야하며 행위가 포함되어서는 안된다.
post/delete/1 은 delete라는 행위가 포함되었으므로 REST를 적용시킨 URI가 아니다. 반면,
post/1은 REST를 적용시킨 URI다. 그렇다면 행위는 어디에 표현할까?
행위는 HTTP Method를 통해 수행하게 된다.
2-2 HTTP Method
REST에서 어떤 자원에 행할 수 있는 행위를 4가지로 나타내며 이를 CRUD 라고 한다.
CRUD는 각각 Create, Read, Update, Delete 를 의미하고
REST에서 CRUD는 HTTP Method의 POST, GET, PUT, DELETE에 대응된다.
CRUD | HTTP Method | 역할 |
CREATE | POST | POST를 통해 해당 URI를 요청하면 리소스를 생성한다. |
READ | GET | GET을 통해 리소스를 조회하고 해당 자원에 대한 자세한 정보를 가져온다. |
UPDATE | PUT | PUT을 통해 해당 리소스를 수정한다 |
DELETE | DELETE | DELETE를 통해 해당 리소스를 삭제한다 |
GET vs POST
- GET 방식은 URL에 데이터를 붙여서 전송하는 반면 POST 방식은 BODY에 데이터를 넣어 전송한다.
- 자세한 설명은 https://6zeroe.tistory.com/10 참고
2-3 Representation
Client가 자원의 자원의 URI에 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 보낸다.
즉, Client의 행위 요청에 대한 응답의 결과가 바로 Representation 이다.
Representation은 HTML, XML, JSON, TEXT 등 다양한 형태로 표현되며 보통 JSON, XML을 통해 데이터를 주고 받는다.
예를 들어, 2번 글의 내용을 확인하는 요청을 아래와 같이 보냈을 때,
GET post/2
응답으로 돌려받는 Representation에는 아래와 같은 JSON 파일이 올 것이다.
[
"post":{
"id": 1,
"title": "First Post",
"content": "Hello! This is the First Post!"
}
]
3. REST API
가장 직관적으로 설명한다면, REST 기반으로 API를 구현한 것이라고 말할 수 있다.
4. RESTful
출처
https://mangkyu.tistory.com/46
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
'노력만이 살길! > 네트워크' 카테고리의 다른 글
OSI 7계층 (0) | 2019.08.17 |
---|---|
GET, POST 차이 (0) | 2019.08.17 |