⚡ REST 가 뭘까..?
- REST는 Representational State Transfer의 약자이다.
- 각 단어의 뜻을 풀어보면,
- Representational => 표현, 묘사
- State => 상태
- Transfer => 전송
- 즉, (웹 어플리케이션의) 어떠한 상태(정보)를 전송하는 표현방식이라고 할 수 있다.
❗️ REST를 한마디로 정의하면
- HTTP라는 프로토콜(규약, 규칙)을 이용하여, Web에서 제공하는 모든 자원들을 하나하나 가르킬수 있는
- 고유한 주소(URI)를 이용하여
- HTTP Method를 통해 작업(CRUD)을 하는 방식을 말한다.
- Web에서의 통신 = HTTP 프로토콜을 이용한 통신
- 클라이언트의 웹브라우저에서 주소(URI)를 입력
- 웹브라우저가 주소를 이용해 HTTP request 메세지 전송
- 웹서버는 주소와 매핑된 서버 내 문서나 프로그램을 찾아서 작업(CRUD)을 처리
- 처리 후 웹서버에서는 HTTP response 메세지를 클라이언트 웹으로 전송
- 클라이언트 웹브라우저는 받은 메세지는 웹브라우저에 맞게 변환하여 표시
⚡ REST의 구성요소
🟢 자원 (Resource)
- 웹서버가 관리 하는 모든것
- 자원은 URI을 통해 고유한 주소로 지정하여 식별
🟢 자원 조작 (Verb)
- HTTP 프로토콜에 있는 Method를 통해 CRUD를 처리
- Method: GET, POST, PUT, DELETE
🟢 표현 (Representation)
- 클라이언트는 자원의 상태(정보)를 조작하는 요청(request)을 하고,
- 서버는 요청을 처리하고 response를 보냄
- 자원은 TEXT, JSON, XML 등의 타입이 있으나, 대부분은 JSON 형태를 선호함
⚡ 그러면 REST API는 무엇일까?
🟣 API란?
- API는 응용프로그램들 사이에서 데이터를 주고받는 방법으로, 프로그램과 소통하게 해주는 인터페이스이다.
- 즉, API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체라고 할 수있다.
- (클라이언트나 서버같이 서로 다른 프로그램끼리 데이터를 주고받는 방법 혹은 규격)
🟣 REST API
- REST는 HTTP를 잘 활용하기 위한 원칙이며, REST API는 이 원칙을 준수하여 만든 API이다.
- (HTTP 프로토콜의 URI 주소를 이용하여 서버의 기능을 처리하게 하는 것)
🟣 HTTP를 잘 활용하기 위한 원칙은?
- URI로 자원을 표현하는데 집중하고, 자원의 상태에 대한 정의는 HTTP Method로 하는 것이 API 설계의 중심 규칙
- RESTful 한 설계의 중심규칙 2가지
- URI로 자원(리소스) 표현
- 자원에 대한 행위는 HTTP Method로 표현
< HTTP / REST API Method >
HTTP Verb | REST API Method | 설명 |
POST | Create | 생성 |
GET | Read | 읽기 |
PUT | Update | 전체 변경 |
PATCH | Update | 부분 변경 |
DELETE | Delete | 삭제 |
GET /users/delete/1
// 위와 같은 방식은 REST를 제대로 적용하지 않은 URI이다. URI는 자원을 표현하는데 중점을 두어야 한다. delete와 같은 행위에 대한 표현이 들어가서는 안된다.
// 위의 잘못된 URI를 HTTP Method를 통해 수정
DELETE /users/1
// 회원정보를 가져오는 행위는 GET, 회원 추가 시의 행위를 표현하고자 할 때는 POST METHOD를 사용하여 표현한다.
// 회원정보를 가져오는 URI
GET /users/read/1 (x)
GET /users/1 (o)
//회원을 추가할 때
GET /users/insert/2 (x) // GET 메서드는 리소스 생성에 적절치 않음
POST /users/2 (o)
'코딩 > HTTP, 네트워크' 카테고리의 다른 글
[HTTP/네트워크] Ajax (0) | 2023.05.26 |
---|