rest와 restful에 대해 알아봅시다.
REST(Representational State Transfer)
: 클라이언트와 서버의 통신 방식으로 URI와 HTTP를 이용한, 통신 목적의 아키텍처 스타일RESTful
: REST가 적용된 시스템REST API
: REST가 적용된 API, REST API를 제공하는 시스템은 RESTful😜 추가 지식
REST의 특징
- 일관된 인터페이스
URI 사용, HTTP메소드 사용, RPC 미호출 등의 지정된 인터페이스 준수- 클라이언트 서버
클라이언트는 서버에 요청, 서버는 응답- 무상태성
클라이언트의 세션과 쿠키같은 컨텍스트를 서버에 저장하지 않으므로 서버 구현이 단순해짐- 캐시 가능
서버의 응답 메시지는 캐싱될 수 있음- 계층화된 시스템
계층별로 기능이 분리, 중간 계층의 기능이 변경되어도 통신에 영향을 주지 않음- 주문형 코드(선택)
손쉬운 데이터 처리를 위해 서버는 클라이언트에서 실행될 스크립트를 전송할 수 있음URI(Uniform Resource Identifier) : 문서, 그림, 영상 등의 자원식별 용 이름
URL(Uniform Resource Locator) : 자원의 위치
아키텍쳐 스타일 : 아키텍쳐의 종류 e.g. 클라이언트/서버, 저장소, 파이프/필터, REST
자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미
HTTP URI(Uniform Resource Identifier)
를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)
를 통해 해당 자원에 대한 CRUD Operation
을 적용하는 것을 의미
구성 요소
😜 추가 지식
자원: 해당 소프트웨어가 관리하는 모든 것
-> Ex) 문서, 그림, 데이터, 해당 소프트웨어 자체 등자원의 표현: 그 자원을 표현하기 위한 이름
-> Ex) DB의 학생 정보가 자원일 때, ‘students’를 자원의 표현으로 정함.상태(정보) 전달 : 데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전달
->JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적
#bad
GET /getTodos/1
GET /todos/show/1
#good
GET /todos/1
주로 5가지 메서드(GET, POST, PUT, PATCH, DELETE)를 사용하여 CRUD를 구현
리소스에 대한 행위는 HTTP 요청 메서드를 통해서만 표현하며 URI에 표현하지 않음.
# bad
GET /todos/delete/1
#good
DELETE /todos/1
😜 추가 지식
- GET과 POST 차이
- 사용목적
- GET : 서버의 리소스에서 데이터를 요청
- POST : 서버의 리소스를 새로 생성하거나 업데이트
- 요청 시 body 유무
- GET : URL 파라미터에 요청하는 데이터를 담아 보내기 때문에 HTTP 메시지에 body가 없음
- POST : body 에 데이터를 담아 보내기 때문에 당연히 HTTP 메시지에 body가 존재
- 멱등성 (idempotent)
- GET 요청은 멱등이며, POST는 멱등이 아님멱등 : 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질
=> GET은 리소스를 조회한다는 점에서 여러 번 요청하더라도 응답이 똑같지만, POST는 리소스를 새로 생성하거나 업데이트할 때 사용되기 때문에 멱등이 아님
해당 사이트의 내용을 참고로 작성했습니다. 추후에 더 알게 되는 내용들을 추가하겠습니다.
TIL 38 Node.js- Restful API
[Network] REST란? REST API란? RESTful이란?
REST란? REST API 와 RESTful API의 차이점
REST란? REST API / RESTful API차이점
[ Network ] REST란? / Rest API와 Restful API의 차이점 / REST 규칙
[Web] REST vs RESTful vs REST API(RESTful API)
[간단정리] REST, REST API, RESTful 특징
REST API(RESTful API, 레스트풀 API): 개념, 서버, 사용 방법
API, HTTP API, REST API 차이
REST(Representational State Transfer)란? 꼭보세요