
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)란? 꼭보세요