[REST]
REST 는 Representational State Transfer 의 약자이다. Web Client는 URL link나 Resource Identifier 를 통하여 리소스에 대해 요청을 하고 결과를 받는다. 이 요청에 대한 결과는 클라이언트의 화면에 새로운 내용이 보여지는 등의 방식으로 나타나는데 이 과정을 통해 Web Browser 의 표현 상태(Representational State) 가 변경(Transfer) 된다.
- URI, URL 등을 통해 요청(URI : Uniform Resource Identifier 인터넷 상의 자원을 나타내는 유일한 주소)
- 요청시점 데이터 상태에서 Resource ID의 데이터값에 대해 요청받은 작업 수행
- 결과를 받아 Display
요약하면, HTTP 통신에서 어떤 리소스에 대해 CRUD 연산을 위해 URI 요청을 보내는 것이다. (주로 Get, Post 등의 Method 를 사용해 요청)
- Create - Post
- Read - Get(Select)
- Update - Put
- Delete - Delete
요청을 위한 Resource + Method ( 행위 ) + Representation of Resource ( 리소스의 형태 ) 같은 규칙으로 설계된 API 를 Rest API 라고 한다.
[API]
Application Programming Interface 로 데이터와 기능을 제공하여 프로그램간 상호작용, 정보 교환을 가능하게 하는 것이다.
[REST API 의 구성요소]
- Resource : Unique ID를 가진 리소스가 서버에 존재한다. URI 를 통해 접근
- Method : Post, Get, Put, Delete 와 같이 서버에 원하는 연산 요청을 보냄
- Representation of Resource : Client와 Server 가 Data를 주고받는 형식 (Json, Xml ...etc) 메시지
[REST 의 특성]
- Client - Server 구조 : Client(요청을 하는 주체), Server(Resource 가 저장된 곳)
- Stateless : 서버는 각 요청을 별개의 것으로 인식한 후 처리, 즉 Session 정보나 Cookie 정보를 활요하지 않는다. (구현 단순, 서버 부담 low)
- Cacheable : 대량의 요청을 캐시를 이용해서 효율적으로 처리
- Uniform Interface : 예를 들어, HTTP + JSON 형식으로 REST API를 정의했다면 그 두가지를 사용할 수 있는 어떤 언어를 사용하거나 기술을 사용하더라도 사용이 가능하다.
- Self-Descripiveness : API의 메시지만으로도 직관적으로 이해 가능
- Layered System : 다중 계층 구조로 구성될 수 있고 보안, 암호화, Load Balancing을 위해 계층 구조 변경 가능
[RESTful]
RESTful 이란 REST Architecture 를 구현하는 웹 서비스를 나타내는 말이다. 즉, REST API를 제공하는 서비스는 RESTful 하다고 할 수 있다.
- RESTful의 목적
- 사용이 쉬운 REST API
- API 의 이해도와 호환성을 높인다. 성능이 목적이 아니다.
- RESTful 하지 않은 경우
- CRUD 연산을 모두 POST로 처리하는 API
- route 에 Resource, ID 외의 다른 정보가 들어가는 API
'SERVER' 카테고리의 다른 글
MVC Pattern (0) | 2019.06.18 |
---|