REST란?
정의) Representational State Transfer의 약자
자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미
자원의 표현에 의한 상태 전달
- 자원의 표현
자원: 해당 소프트웨어가 관리하는 모든 것
자원의 표현: 그 자원을 표현하기 위한 이름
- 상태(정보) 전달
데이터가 요청되는 시점에서 자원의 상태(정보)를 전달함
JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적
- 월드와이드웹(WWW)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식
- REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일
- REST는 네트워크 상에서 클라이언트와 서버 사이의 통신 방식 중 하나임
REST의 구체적인 개념
- HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미
- 즉, REST는 자원 기반의 구조 설계의 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍처를 의미함
- 웹사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 ID인 HTTP URI를 부여함
- CRUD Operation
Create: 생성(POST)
Read: 조회(GET)
Update: 수정(PUT)
Delete: 삭제(DELETE)
HEAD: header 정보 조회(HEAD)
REST 구성 요소
자원: URI
- 모든 자원에 고유한 ID가 존재하고, 이 자원은 서버에 존재함
- 자원을 구별하는 ID는 HTTP URI
- 클라이언트는 URI를 이용해 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 서버에 요청함
행위: HTTP Method
- HTTP 프로토콜의 Method 사용
- HTTP 프로토콜은 GET, POST, PUT, DELETE와 같은 메서드를 제공
표현
- 클라이언트가 자원의 상태에 대한 조작을 요청하면 서버는 이에 적절한 응답을 보냄
- REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 표현으로 나타내어 질 수 있음
- JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적
REST API
- API: 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램 간 상호작용을 촉진하며, 서로 정보를 교환 가능하도록 하는 것
- REST API: REST 기반의 서비스 API, 최근 OpenAPI, 마이크로 서비스 등을 제공하는 업체 대부분은 REST API를 제공함
웹호스팅
홈페이지 운영을 위해 웹 공간을 임대하여 사용하는 서비스
도메인: 주소 + 웹호스팅: 콘텐츠의 웹 저장 공간 -> 홈페이지
URI
특정 리소스를 식별하는 통합 자원 식별자 의미, 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스
URL
흔히 웹 주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약, URI의 서브셋
-> 차이점: URI는 식별, URL은 위치를 가리킴
URI의 구조
- scheme: 사용할 프로토콜을 뜻하며 웹에서는 http 또는 https 사용
- user와 password: 서버에 있는 데이터에 접근하기 위한 사용자의 이름과 비밀번호
- host와 port: 접근할 대상(서버)의 호스트명과 포트번호
- path: 접근할 대상(서버)의 경로에 대한 상세 정보
- query: 접근할 대상에 전달하는 추가적인 정보(파라미터)
- fragment: 메인 리소스 내에 존재하는 서브 리소스에 접근할 때 이를 식별하기 위한 정보
'Old > Network' 카테고리의 다른 글
게임 네트워킹 (0) | 2023.07.27 |
---|---|
게임 서버와 클라이언트 (0) | 2023.07.24 |
Socket Programming (0) | 2023.07.24 |
컴퓨터 네트워크 (0) | 2023.07.24 |
Multi Threading (0) | 2023.07.24 |