REST, REST API, RESTful에 대한 이해

REST란

  • "Representational State Transfer"의 약자
  • 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.
  • 즉, 자원(Resource)의 표현(representation)에 의한 상태전달

자원표현

  • 자원 : 해당 소트프웨어가 관리하는 모든 것
  • ex) 문서, 그림, 데이터
  • 자원의 표현 : 그 자우너을 표현하기 위한 이름
  • ex) DB의 학생 정보가 자원일 때, 'Students'를 자원의 표현으로 정한다.

상태(정보)전달

  • 데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전달한다.
  • JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적이다.

REST는 기본적으로 웹의 기존기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.

 

REST는 네트워크상에서 Cliedt와 Server사이의 통신 방식 중 하나이다.

 

REST의 구체적인 개념

  • HTTP URI를 통해 자우너을 명시하고 HTTP Method(Post, get, Put, Delete)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
  • 즉, REST는 자원 기반의 구조(ROA, Resource Oriented Architecture) 설계 중심에 Resource가 있고 HTTP MEthod를 통해 Resource를 처리하도록 설계된 아키텍처 이다.

CRUD Operation

  • Create 생성(post)
  • Read 조회(get)
  • Update 수정(put)
  • Delete 삭제(deltete)
  • Head : header 정보 조회
REST하다는 것

REST(REpresentational State Transfer)란, "웹에 존재하는 모든 자원(이미지, 동영상, DB자원)에 고유한 URI를 부여해 활용" 하는 것으로 자원을 정의하고, 자원에 대한 주소를 지정하는 방법론을 의미합니다. 따라서 RESTful API는 REST특징을 지키면서 API를 제공하는 것을 의미합니다.

 

REST

어떤 자원에 대해 CRUD(Create, Read, Update, Delete) 연산을 수행하기 위해 URI(Resource)로 요청을 보내는 것, Get, Post 등의 방식(Method)을 사용하여 요청을 보내며, 요청을 위한 자원은 특정한 형태로 표현됩니다. 

Resource(자원의 위치 URI)와 이에 대한 Method(행위, POST) 그리고 Resprestation of Resource(자원의 형태, JSON)을 사용하면 표현이 명확지므로 이를 REST라고 한다. 이러한 규칙을 지켜서 설계된 API를 REST API 또는 RESTful API라고 합니다. 

 

아래 설명할 6가지 조건을 “REST”라고 하며 이를 잘 지키는 서비스 디자인을 보고 RESTful하다고 한다.

l  Uniform Interface

l  Client-Server

l  Stateless

l  Cacheable

l  Layered System

l  Code on Demand(optional)

 

 

HTTP vs HTTPS
 

HTTP란 인터넷에서 데이터를 주고 받을 수 있는 프로토콜 입니다. (프로토콜 : 규칙) 입니다.

 

상태코드
  • 1xx (정보): 요청을 받았으며 프로세스를 계속한다
  • 2xx (성공): 요청을 성공적으로 받았으며 인식했고 수용하였다
  • 3xx (리다이렉션): 요청 완료를 위해 추가 작업 조치가 필요하다
  • 4xx (클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할 수 없다
  • 5xx (서버 오류): 서버가 명백히 유효한 요청에 대해 충족을 실패했다

 

HTTPS

 

HTTPS는 웹서버와 브라우저간 정보를 암호화된 상태로 주고받는 반면, HTTP는 정보를 평문으로 주고받기 때문에 오가는 정보를 중간에서 탈취당할 위험이 크다. 크롬 브라우저는 이 부분을 경고하고 있다.

+ Recent posts