본문 바로가기
javascript

[웹기본개념] REST 친숙해지기

by jinbro 2017. 4. 28.
[목표]
- REST REST하는데 REST가 정확하게 무엇을 뜻하는지 알아보기


[먼저 보면 좋은 게시글]
- HTTP 그리고 REST API 다가가기 : http://jinbroing.tistory.com/96
- URL / URI / REST API : http://jinbroing.tistory.com/68
- 브라우저 동작원리 : http://jinbroing.tistory.com/86


[REST란 무엇인가]
- HTTP 설계의 우수성을 최대한 활용하기위한 아키텍처
- REpresentational State Transfer의 줄임말
- REpresentational : 어떤 리소스의 특정 시점 상태를 반영하고 있는 정보, State : 웹어플리케이션의 상태, Transfer : 전송
- 웹어플리케이션이란? 웹브라우저와 웹서버가 연결되어 사용자에게 가치를 제공하는 어플리케이션을 말함
- 사용자가 메뉴 버튼을 눌러 다른 페이지로 넘어갈 때 REpresentational의 전송(transfer)을 통해 웹어플리케이션의 상태(state)가 변경됨
- 웹브라우저와 웹서버 간의 통신(REST : GET 메서드 - 정보를 요청, Read)

1) 웹브라우저를 통해 클라이언트가 리소스 요청(주소를 통해, 주소 구성 - HTTP 메서드 + 리소스 선택)을 함

2) 서버는 요청을 받아 리소스를 주는 것이 아니라 요청한 리소스가 가리키는 정보를 응답해줌
3) 웹브라우저는 응답 정보를 표시(랜더링)

결론 
1) 서버로 요청을 할 때 HTTP 메서드 + 선택할 리소스로 주소 구성, 요청

- 레일즈 REST URI 디자인 : URI Pattern, Verb(HTTP 메서드 - GET, POST, PUT, DELETE) 주목

- 가리키는 현재 정보는 계속해서 변할 수 있으나, 요청할 때 주소는 그대로


2) 서버는 선택한 리소스가 가리키는 현재의 정보에 대해 HTTP 메서드에 따라 처리 후 응답



[REpresentational 구성요소]
- REpresentational이란? 어떤 리소스의 특정 시점 상태를 반영하고 있는 정보

1) representational data : 요청한 리소스가 가리키는 정보
- 요청 주소에 해당하는 정보
- HTTP 메서드에 의해 Create / Read / Update / Delete

2) representational meta-data : representational data의 정보
- Content-Type(요청 정보의 타입, 반환되는 정보의 유형)
- Content-Language(요청자의 언어환경을 참고한 정보의 언어 설정) : 웹표준을 지키면 좋음(html lang type 기입)
- HTTP Response Header 참고



[참고자료]
1) 개인블로그, REST의 reprresentation이란 무엇인가 : https://goo.gl/l7F5bt

4) Toast Meetup!, REST API 제대로 알고 사용하기 : http://meetup.toast.com/posts/92



댓글