나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-04-21 20:16:42

REST



파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
왁타버스 고정멤버 오리지널 곡에 대한 내용은 REST(노래) 문서
번 문단을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.
1. 개요2. 조건3. 용도4. 구성요소
4.1. 자원(Resource)4.2. 메서드(Method)4.3. 메시지(Message)

1. 개요

REST(Representational State Transfer)는 로이 필딩(Roy Fielding)이 자신의 2000년 박사 학위 논문에 정의한 네트워크 소프트웨어 아키텍처다. 쉽게 말하면 '네트워크에서 통신을 구성할 때 이런 구조로 설계하라는 지침' 정도로 볼 수 있다.

본디 네트워크 통신을 위해 제시하였으나, 현실적으로 온라인 '네트워크'의 지분 중 태반을 차지하는게 월드 와이드 웹이기 때문에 '웹' 기반의 전송을 위해 쓰이는 경우가 대부분이다. 태생 자체가 데이터 송수신에 최적화 되어 있다보니 이를 위한 웹 API 쪽에서 굉장히 많이 쓰인다. 이를 'REST API'라고 부르는데, 이제는 그냥 '웹 API'와 동일하다고 볼 수 있을 정도로 보편화되었다. 어디선가 HTTP기반의 웹 API를 구현한다면 십중팔구는 REST를 준수하는 RESTful API라고 보면 된다.

대표적으로 Google을 포함하여, Facebook, 트위터, Naver, 카카오톡 등 IT 회사라면 각 회사의 서비스를 활용할 수 있는 REST API를 지원한다. 뿐만 아니라 OP.GG 같은 소위 '전적 사이트'들도 다 REST API를 기반으로 돌아가는 사이트들이다.

2. 조건


조건은 이렇지만, 현실적으로 '무상태성'을 가만히 놔두면 디도스 공격의 좋은 먹잇감이 되므로 실질적으로는 여러 인증 절차를 둬서 무분별한 이용을 막는 경우가 대부분이다. 이를 위해 OAuth 2.0(또는 OpenID)을 대표적으로 사용한다. 아래는 구글 API를 사용하는 OAuth 2.0 방법은 다양하게 존재하며 대표적으로 아래와 같이 구분할 수 있다#.

3. 용도

  1. Web server applications
  2. Client-side (JavaScript) applications
  3. Applications on limited-input devices
  4. Service accounts

4. 구성요소

4.1. 자원(Resource)

나무위키에서 몇가지를 예로 들자면,
URI 의미
https://namu.wiki/w/A A 문서 조회
https://namu.wiki/history/A A 문서의 변경기록 조회
https://namu.wiki/backlink/A A 문서의 역링크 조회
https://namu.wiki/edit/A A 문서 수정
https://namu.wiki/move/A A 문서의 표제어 수정
https://namu.wiki/delete/A A 문서 삭제

여기서 /는 계층 관계를 나타낸다.

4.2. 메서드(Method)

HTTP 메서드를 사용한다.
POST 자원 생성(Create)
GET 자원 조회(Read)
PUT 자원 수정(Update)
DELETE 자원 삭제(Delete)

4.3. 메시지(Message)

파일:상세 내용 아이콘.svg   자세한 내용은 HTTP/응답 코드 문서
번 문단을
부분을
참고하십시오.