티스토리 뷰
목차
결과물을 보는 게 좋아 무작정 만들기만 했었는데,
우연찮게 면접 후기를 본 뒤
(cors가 프론트영역이냐, 백앤드 영역이냐 란 질문이었다)
개념에 대해서도 알아둬야겠다 생각했다.
나아가기 위해서 알을 깨야한다.
Representational
원래 REST부터 접근하려 했는데,
REST를 이해하기 위해선
먼저 Representational를 이해해야 할 것 같다.
이해를 위해 구글링을 했는데
똑같은 인용, 똑같은 문단이 여러 글에서 보이는 것 보니 이를 통해 이해하면 좋을 듯하다.
리소스
자료
HTTP GET 요청을 서버에 보낸 뒤,
GET https://example.org/greeting
Host: example.org
Accept: text/plain, text/html; q=0.9 *; q=0.1
Accept-Language: en, ko; q=0.9, *; q=0.1
다음과 같은 메시지 응답을 받았다.
HTTP/1.1 200 OK
Content-Length: 6
Date: Sun, 19 Mar 2017 10:20:47 GMT
Last-Modified: Sun, 19 Mar 2017 08:00:00 GMT
Content-Type: text/plain
Content-Language: en
Hello
이때 넘겨받은 'hello'는 리소스가 아니라 representation data 라 한다.
Get 메서드의 정의는
GET 메서드는 target resource에 대한 현재 선택된 하나의 리소스를 반환한다.
라 한다.
여기서 target resource란 해당 URI가 가리키는 resource라 한다.
URI란 네트워크상 자원을 가리키는 고유 식별자(ID)라 한다.
리소스란 HTTP 요청의 대상이다.
hello라는 텍스트가 리소스가 아니고, 환영의 의미를 담은 문서가 리소스이다.
이해
Get 메서드를 써서 목표 URI가 가진 네트워크 자원을 리소스라 한다.
그런데 이 리소스는, 우리가 보는 텍스트 형식이 아니라 의미를 담은 문서이다.
representation
리소스의 특정 시점의 상태를 반영하는 정보
representation data와 representation metadata로 구성된다.
위의 Hello가
representation data이며,
Content-Type: text/plain
Content-Language: en가
representation metadata이다.
representation metadata에 따라
여러 가지
representation 가 될 수 있다.
Content-Type: text/plain
Content-Language: ko
안녕하세요
Content-Type: text/plain
Content-Language: de-DE
Hallo!
Content-Type: text/html; charset=UTF-8
Content-Language: en
<html><body>hello</body></html>
이 중에 하나를 선택한다.
클라이언트와 서버 간의 내용 협상(Content Negotiation)을 통해 선택한다.
선택 주체는 협상 방법에 따라 다르다.
사전 협상(proactive negotiation)은 서버가 선택한다.
클라이언트가 GET 메서드에(요청) "Accept-Langouage:ko"헤더를 포함해 요청하면, 이에 맞는 문서를 보여준다.
서버가 URI목록으로 된 선택지를 제공하고, 클라이언트가 선택하는 사후 협상(reactive
이는 선택지마다 URI가 다르므로, 클라이언트가 리소스 중 하나를 선택한다고 해도 된다.
서버가 URI 목록으로
이해
클라이언트가 GET메서드(요청)할 때 Type, Language 등을 포함해 요청한다.
그럼 클라이언트와 서버 간의 설정에 따라 Representation이 선택된다.
이때, URI이 가진 리소스(의미를 담은 문서)는 하나이다.
이를 표현하는 Representation이 여러 가지인데, 이를 하나 선택해서 전달하는 것이다.
REST의 respresentation
웹 페이지가 representation의 전송을 통해 이루어지는 것.
REST는 Representational State Transfer의 줄임말로써, representation 상태 전송이다.
위의 representation이란 개념이 여기서 발생하였다.
- Total
- Today
- Yesterday
- dom
- Redux
- Hook
- Expo
- 서버
- 접근성
- usecookies
- switch
- SVG
- CSS
- proptype
- homebrew
- html
- 아이콘
- Router
- 가상샐렉터
- 무료아이콘
- async
- 클릭
- useReducer
- visualcode
- 에러
- 쿠키
- 웹접근성
- 랜더링
- 비동기
- react
- touchable
- nodejs
- 이쁜코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |