반응형
정의
REST(Representational State Transfer).
서로 다른 장치나 시스템 간에 데이터를 주고받는 방법을 규정한 규칙.
- 고유한 HTTP URI(Uniform Resource Identifier)를 통해 식별을 하고
- HTTP Method(POST, GET, PUT, DELETE, PATCH 등)라는 명령어를 시용해서
- 해당 자원(Resource)을 읽고, 수정하고, 삭제할수 있습니다. (CRUD Operation)
Resource
HTTP 프로토콜에서 리소스(resource)란 고유한 URI(Uniform Resource Identifier)로 식별되고 요청될 수 있는 모든 정보나 개체를 말합니다.
리소스의 예시로는 웹 페이지, 이미지, 비디오, 오디오 파일, 문서 등 HTTP를 통해 인터넷에서 액세스할 수 있는 다양한 데이터 유형이 포함됩니다.
CRUD Operation
기본적인 데이터 처리 기능인 생성, 조회, 수정, 삭제를 묶어서 일컫는 말
- Create(POST): 데이터 생성
- Read(GET): 데이터 조회
- Update(PUT, PATCH): 데이터 수정
- Delete(DELETE): 데이터 삭제
REST의 특징
- Server-Client(서버-클라이언트 구조): 서버-클라이언트 구조는 네트워크 상에서 서비스를 요청하는 클라이언트와 서비스를 제공하는 서버 간의 구조를 말합니다. 클라이언트는 서버에게 요청을 보내고, 서버는 요청에 대한 응답을 보내는 방식으로 동작합니다. 이 구조는 인터넷과 웹 등의 기술에서 가장 일반적으로 사용되며, 분산 시스템과 클라우드 컴퓨팅 등 다양한 분야에서도 사용됩니다.
- Stateless(무상태): 무상태(Stateless)란 서버가 클라이언트의 이전 요청 내용을 저장하지 않는 것을 말합니다. 이는 서버가 각각의 요청을 독립적으로 처리하고, 각각의 요청이 서로 영향을 미치지 않도록 하는 것입니다. 이를 통해 서버의 부하를 줄이고, 확장성을 높일 수 있습니다.
- Cacheable(캐시 처리 가능): 캐시 처리 가능(Cacheable)은 서버의 응답이 클라이언트나 중간 서버에 의해 저장될 수 있다는 것을 의미합니다. 이를 통해 이전에 요청한 데이터나 리소스를 다시 요청할 필요 없이, 저장된 데이터를 사용하여 더 빠른 응답 속도와 적은 대역폭을 사용할 수 있습니다.
- Layered System(계층화): 계층화(Layered System)는 서버와 클라이언트 간의 중간 서버가 존재할 수 있으며, 이 서버들이 각자 독립적으로 요청과 응답을 처리하는 것을 말합니다. 이를 통해 서버와 클라이언트 간의 결합도를 낮추고, 시스템의 유연성과 확장성을 높일 수 있습니다.
- Uniform Interface(인터페이스 일관성): 인터페이스 일관성(Uniform Interface)은 서버와 클라이언트 간의 인터페이스가 일관성 있게 설계되어야 함을 의미합니다. 이를 통해 서로 다른 시스템 간의 통신이 가능하고, 시스템의 각 구성 요소들이 서로 독립적으로 변경될 수 있으며, 새로운 기술이나 기능이 추가되어도 시스템 전체를 변경할 필요 없이 일부분만 변경할 수 있습니다.
REST의 장단점
장점
- HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구출할 필요가 없다.
- HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해 준다.
- HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
- REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
- 여러 가지 서비스 디자인에서 생길 수 있는 문제를 최소화한다.
- 서버와 클라이언트의 역할을 명확하게 분리한다.
단점
- 표준이 자체가 존재하지 않아 정의가 필요하다.
- HTTP Method 형태가 제한적이다.
- 브라우저를 통해 테스트할 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다 Header 정보의 값을 처리해야 하므로 전문성이 요구된다.
- 구형 브라우저에서 호환이 되지 않아 지원해주지 못하는 동작이 많다.(익스폴로러)
출처
https://khj93.tistory.com/entry/네트워크-REST-API란-REST-RESTful이란
반응형
'old > Cyber Security' 카테고리의 다른 글
Assignment: GET / POST 메서드로 웹 서버에 데이터 전달해보기. (0) | 2023.04.05 |
---|---|
REST API vs. RESTful API 차이점 (0) | 2023.04.04 |
Assignment: Happy Hacking 문구가 출력되는 페이지 만들어보기. 동적, 정적 모두 (0) | 2023.04.04 |
우분투에 APM: Apache, PHP, MySQL 환경 셋팅 (0) | 2023.04.01 |
APM: Apache, PHP, MySQL의 역할과 상호작용 이해하기 (0) | 2023.03.31 |