REST 는 http 프로토콜을 통해 api를 설계하기 위한 아키텍처 스타일, 뛰어난 유연성이 장점이다.
개발자는 서버에서 직접 웹 애플리케이션이나 사이트의 사용자에게 데이터를 제공해야 하는 모든 곳에서 rest api 를 사용한다.
rest api의 주요 구성요소:
고객 - 통신을 시작하는 사용자 측에서 시작된 클라이언트 또는 프로그램
섬기는 사람 - api를 기능 및 데이터에 대한 엑세스로 사용하는 서버
자원- 서버가 클라이언트에 정송하는 모든 콘텐츠(비디오,텍스트,사진)
리소스는 정보 추상화인 rest api에서 중요한 개념. 문서,이미지,임시 서비스와 같은 모든 정보가 됨
정보는 json,html,xlt,python 또는 일반 텍스트와 같은 다양한 형식으로 클라이언트에 전달할 수 있음.
json이 가장 인기있음
웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍쳐
Represintational safe trnasfer
REST : 자원의 표현에 의한 상태 전달
자원의 표현
-> 자원: 해당 소프트웨어가 관리하는 모든 것
-> 문서, 그림, 데이터 , 해당 소프트웨어 자체등
-> 자원의 표현: 그 자원을 표현하기 위한 이름
-> Db의 학생정보가 자원일때, students를 자원의 표현으로 정한다.
상태 전달
-> 데이터가 요청되어지는 시점에서 자원의 상태를 전달.
-> json 혹은 xml을 통해 데이터를 주고 받는 것이 일반적
-> www와 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식
-> REST는 네트워크 상에서 클라이언트와 서버 사이의 통신 방식 중하나이다.
rest는 자원 기반구조 설계의 중심에 resource가 있고 http mothod를 통해 resource를 처리하도록 설계된 아키텍쳐
웹사이트의 이미지, 텍스트, DB내용 등의 모든 자원에 고유한 ID인 HTTP URL을 부여함.