layout: post
title: "웹을 지탱하는 기술 스터디 - Chapter4"
date: 2022-03-12T00:00:00-00:00
author: sangyeop
categories: Sproutt-2nd
URI(Uniform Resource Identifier)란? : 유니폼 리소스 식별자. 리소스를 통일적으로 식별하는 ID를 의미한다
즉, URI만 있으면 모든 리소스에 간단하게 접속할 수 있게 된다.
http://blog.example.com/entries/1
http
blog.examples.com
/entries/1
인터넷 상 유일한 호스트명 + 호스트 내 유일한 계층적 경로 -> 전 세계 다른 리소스들과 중복 가능성 X
http://yohei:pass@blog.example.com:8000/search?q=test&debug=true#n10
http
yohei:pass
blog.example.com
8000
/search
q=test&debug=true
절대 경로란? : 루트('/')에서부터 전체 경로를 기술한 것
상대 경로란? : 현재 디렉토리의 위치에서 어떤 경로를 기술한 것
상대 경로 | 절대 경로 |
---|---|
hoge | /foo/bar/hoge |
hoge/fuge | /foo/bar/hoge/fuga |
./hoge | /foo/bar/hoge |
../hoge | /foo/hoge |
../hoge/fuga | /foo/hoge/fuga |
../../hoge | /hoge |
절대 URI 예
http://example.com/foo/bar
상대 URI 예
/foo/bar
Base URI란? : 상대 URI의 기준이 되는 URI를 지정 하는 것
상대 URI | 절대 URI |
---|---|
/foo/bar | http://example.com/foo/bar |
상대 URI만 가지고는 클라이언트가 바르게 해석할 수 없으므로 절대 URI로 변환해주어야 한다.
상대 URI를 절대 URI로 변경하기 위해서 Base URI가 필요하다.
상대 URI가 들어오면, 그 리소스 URI를 Base URI로 하고 상대 URI를 해석
HTML과 XML 안에서 명시적으로 Base URI를 지정하는 방법
<base>
요소xml:base
속성ASCII 문자들만 가능하다. %16진수를 사용하여 URI에 넣을 수 없는 문자를 입력하는 %인코딩
이라는 방식을 이용한다.
어드레스에 보이는 URI
http://ko.wikipedia.org/wiki/가
실제 URI
http://ko.wikipedia.org/%EA%B0%80
스펙상으로 제한이 없다. 그러나 브라우저간 구현상 제한은 존재할 수 있다.
공식적인 목록은 IANA
에 약 70여개가 등록되어있다. 역사적으로는 HTTP에 대응한 http 스키마가 먼저 탄생하였고, 뒤를 이어 여러가지가 등록되었다.
URI의 해석
%인코딩
UTF-8
방식을 사용한다.웹의 가치가 향상되고, 리소스와 URL은 가능한 한 영속적으로 액세스 할 수 있도록 해야 한다는 사고가 확산되었기 때문에, URN을 사용할 필요가 없어진 경우가 많아졌다.