[목표]
- 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
2) MDN, HTTP headers Content-Language : https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Content-Language
3) MDN, HTTP headers Content-Type : https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Content-Type
4) Toast Meetup!, REST API 제대로 알고 사용하기 : http://meetup.toast.com/posts/92
'javascript' 카테고리의 다른 글
[웹기본개념] 스크립트 언어, JIT 컴파일이란 (0) | 2017.05.04 |
---|---|
[웹기본개념] 마크업, 마크다운, DOM 생성 (0) | 2017.04.29 |
[자바스크립트] 빌트인객체(2) js 전역객체와 기본제공 객체 (0) | 2017.04.25 |
[자바스크립트] 빌트인객체(1) - 브라우저와 웹페이지를 위한 객체 (0) | 2017.04.25 |
[자바스크립트] Ajax 통신 (0) | 2017.04.22 |
댓글