REST(Representational State Transfer)의 정의
자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고받는 모든 것을 의미.
즉, 자원의 표현에 의한 상태 전달. 자원이란 해당 소프트웨어가 관리하는 정보를 말하며 그 자원을 표현하기 위한 이름.
예를 들어 DB에 회원 정보가 자원일 때 자원의 이름을 members로 표현. 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍쳐이다.
REST의 개념
HTTP URI를 통해 자원(Resource)을 명시하고 HTTP Method(GET, PUT, DELETE, POST, PATCH)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다. 즉 자원 기반의 구조(Resource Oriented Architecture ROA)설계 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐를 의미한다.
REST의 장단점
장점
- HTTP 프로토콜 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축 할 필요가 없다.
- HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다.
- HTTP 프로토콜 표준에 따르는 모든 플랫폼에서 사용이 가능하다.
- REST API Message가 의도하는 바를 명확하게 나타내므로 쉽게 파악할 수 있다.
- 서버와 클라이언트 역할을 명확하게 분리 가능하다.
단점
- 표준이 존재하지 않아 정의가 필요하다.
- HTTP Method가 제한적이다.
- 구형 브라우저에서 아직 제대로 지원해주지 못 하는 부분이 존재한다.(PUT, DELTE)
REST API란?
REST의 원리를 따르는 API를 의미한다.
REST API 설계 기본 규칙
URI는 자원의 정보를 표시해야하는데 자원의 정보는 동사보다 명사를 대문자보다 소문자를 사용해야하고 마지막에 /를 포함하지 않는다.
http://localhost/members
언더바 대신에 하이폰을 사용한다.
http://localhost/member-list
URI에 행위, 확장자를 포함하지 않는다.
http://localhost/image.png (x)
http://localhost/delete-member (x)
RESTful이란?
REST API 설계 규칙을 올바르게 지킨 시스템을 RESTful하다 말한다. 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 목적으로 사용
'ComputerScience > Network' 카테고리의 다른 글
Cookie와 Session (0) | 2022.11.26 |
---|---|
HTTP (0) | 2022.11.21 |