갱스타
갱스타의 블로그
갱스타
전체 방문자
오늘
어제
  • 분류 전체보기 (93)
    • TIL(Today I Learned) (10)
    • 노력만이 살길! (58)
      • 알고리즘 (29)
      • 네트워크 (3)
      • Python (1)
      • Spring Boot (1)
      • 합격하기 (0)
      • Adsp (3)
      • SQLD (10)
      • 데이터분석 (5)
      • 취업일기 (4)
      • IT 프로젝트 관리 (1)
      • 운영체제 (1)
    • Life (10)
      • 일상 그리고 리뷰 (10)
    • 기타 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준 참외밭
  • 백준 2477번
  • 백준
  • java 알고리즘
  • 알고리즘
  • 백준 알고리즘
  • mac 단축키
  • 싸피합격
  • 달팽이 반복문
  • 통신
  • 싸피
  • swea
  • SWEA 13038
  • SW Expert Academy
  • post
  • 네트워크
  • 백준 달팽이
  • 달팽이문제
  • Get
  • 싸피7기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
갱스타

갱스타의 블로그

REST, REST API, RESTful
노력만이 살길!/네트워크

REST, REST API, RESTful

2019. 8. 17. 18:35

1. REST (Representational State Transfe) 란?

  • Client와 Server 사이의 통신 방식 중 하나로 자원, 행위, 표현으로 구성됨

  • 자원의 이름으로 표현하여 해당 자원의 정보를 주고 받는 것

  • REST는 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하여 웹의 장범을 최대한 활용할 수 있는 아키텍쳐 스타일

 

 

2. REST의 기본 구조

REST는 제어할 자원을 표시한 URI로 수행할 행위인 HTTP Method를 보내 그 결과를 표현한다.

 

  • 자원 Resource - URI ( Uniform Resource Idenrifier)

  • 행위 Verb - HTTP Method

  • 표현 Representation

 

 

 2-1 URL과 URI의 차이

 

  URL은 Uniform Resource Locator 이고,  URI는 Uniform Resource Identifier 이고, 

  URL는 어떤 자원의 위치를 나타내고, URI는 어떤 자원을 식별하기까지 한다.

  쉽게 설명하자면 아래에서         까지가 URL이고,       를 포함한 것이 URI라고 보면 된다.

 

   https://6zeroe.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F

 

 

2-1-1  REST에서의 URI

  REST에서 URI는 반드시 자원만을 가리켜야하며 행위가 포함되어서는 안된다.

  post/delete/1 은 delete라는 행위가 포함되었으므로 REST를 적용시킨 URI가 아니다. 반면,

  post/1은 REST를 적용시킨 URI다. 그렇다면 행위는 어디에 표현할까?

  행위는 HTTP Method를 통해 수행하게 된다. 

 

 

2-2  HTTP Method

 

  REST에서 어떤 자원에 행할 수 있는 행위를 4가지로 나타내며 이를 CRUD 라고 한다.

  CRUD는 각각 Create, Read, Update, Delete 를 의미하고

  REST에서 CRUD는 HTTP Method의 POST, GET, PUT, DELETE에 대응된다.

  

CRUD HTTP Method 역할
CREATE POST POST를 통해 해당 URI를 요청하면 리소스를 생성한다.
READ GET GET을 통해 리소스를 조회하고 해당 자원에 대한 자세한 정보를 가져온다.
UPDATE PUT PUT을 통해 해당 리소스를 수정한다
DELETE DELETE DELETE를 통해 해당 리소스를 삭제한다

   GET vs POST

   - GET 방식은 URL에 데이터를 붙여서 전송하는 반면 POST 방식은 BODY에 데이터를 넣어 전송한다. 

   - 자세한 설명은 https://6zeroe.tistory.com/10  참고

 


2-3 Representation 

 

 Client가 자원의 자원의 URI에 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 보낸다.

 즉, Client의 행위 요청에 대한 응답의 결과가 바로 Representation 이다.

 Representation은 HTML, XML, JSON, TEXT 등 다양한 형태로 표현되며 보통 JSON, XML을 통해 데이터를 주고 받는다.

 

 예를 들어, 2번 글의 내용을 확인하는 요청을 아래와 같이 보냈을 때, 

GET post/2

 응답으로 돌려받는 Representation에는 아래와 같은 JSON 파일이 올 것이다. 

[
    "post":{
        "id": 1,
        "title": "First Post",
        "content": "Hello! This is the First Post!"
    }
]

3. REST API

 가장 직관적으로 설명한다면, REST 기반으로 API를 구현한 것이라고 말할 수 있다.

 

 

4. RESTful 

 

 

 

 

 

 

출처

https://mangkyu.tistory.com/46 

https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

https://nachwon.github.io/rest-1/

https://bcho.tistory.com/321

'노력만이 살길! > 네트워크' 카테고리의 다른 글

OSI 7계층  (0) 2019.08.17
GET, POST 차이  (0) 2019.08.17
    '노력만이 살길!/네트워크' 카테고리의 다른 글
    • OSI 7계층
    • GET, POST 차이
    갱스타
    갱스타
    열심히 배워보자

    티스토리툴바