추상화레벨 | 이름 | 예시 | |
1 | 아키텍처 스타일 | REST | |
2 | 아키텍처 | 브라우저, 서버, 프록시, HTTP, URI, HTML | |
3 | 구현 | Apache, Firefox, Chrome |
URI
리소스를 통일적으로 식별하는 ID
인터넷상에서 유일한 호스트 명의 구조와 호스트 내에서 유일한 계층 경로를 결합해 리소스 간 절대 중복되지 않는 것을 보장한다.
웹 상에 존재하는 이름을 가진 모든 정보
다른 리소스와 구분되는 고유한 명칭
전 세계의 무수한 리소스는 각각 URI로 의미 있는 이름을 가진다.
URI를 이용해 프로 글 매은 리소스가 표현하는 정보에 접근할 수 있다.
URI는 구조를 가지고 있기 때문에 프로그램에서 간단하게 표현하는 경로에 접근할 수 있다.
어드레스 가능성(Addressability)
URI가 지니고 있는 리소스를 간단히 가리킬 수 있는 성질
REST 아키텍처 스타일의 구성
REST = ULCDODC$SS = 클라이언트/서버 + 스테이트리스 서버 + 캐시 + 유니폼 인터페이스 + 계층화 시스템 + 코드온디맨드
클라이언트/서버 | 유저 인터페이스와 처리를 분리한다 |
스테이트리스 서버 | 서버 측에서 애플리케이션의 상태를 가지지 않는다 |
캐시 | 클라이언트와 서버의 통신횟수와 양을 감소시킨다 |
유니폼 인터페이스 | 인터페이스를 고정한다(8개의 메소드로 프로토콜 고정) |
계층화 시스템 | 시스템을 계층별로 분리한다(프록시, 로드밸런서, 레거시에 웹 애플리케이션 추가 등이 가능해짐) |
코드 온 디맨드 | 프로그램을 클라이언트에 다운로드하여 실행한다 |
상대 경로 vs 절대 경로
절대경로 = Base URI + 상대 경로
리소스의 URI를 상대, 혹은 절대 경로로 할 때 장단점
절대 경로
직관적이고 이해하기 쉽다
URI 전부를 클라이언트 측에서 가지고 있어야 한다(알고 있어야 한다)
URI 인코딩
기본은 UTF-8을 따른다.
%로 시작하며 UTF-8 인코딩을 한 URI를 주고받는다.
URI에 아스키코드 이외의 문자를 넣을 경우 가능한 UTF-8 인코딩을 하는 것이 바람직하다.
URI, URL, URN
URI는 URL과 URN을 총칭하는 이름이다.
URL은 도메인을 갱신하지 않거나 서버가 장애로 인해 변경되면 액세스 할 수 없게 되는 문제점이 있다.
URN은 독립적인 이름으로 통일된 ID이다. (예: 서적의 URN / ISBN:123123123)
URN은 도메인명에 의존하지 않는다.
하지만 URN은 프로토콜명이 없어 URI로서 리소스를 취득할 수 없고, URI 자체를 가능한 한 영속적으로 액세스 할 수 있도록 만들어놓는 움직임이 있고 그것을 권장해서 URN이 상대적으로 필요가 줄어들었다.
|
'Review' 카테고리의 다른 글
웹을 지탱하는 기술 04 (0) | 2021.01.23 |
---|---|
웹을 지탱하는 기술 03 (0) | 2021.01.23 |
웹을 지탱하는 기술 01 (0) | 2021.01.23 |
코딩을 지탱하는 기술 04 (0) | 2021.01.23 |
코딩을 지탱하는 기술 03 (0) | 2021.01.23 |