URI, URL, URN

유영·2023년 5월 2일
0

HTTP

목록 보기
4/22

1. URI (Uniformurce Resource Identifier)

URI(Uniformurce Resource Identifier)의 약자이다.
웹 서버 리소스들은 각자의 이름이 있다. 클라이언트는 관심있는 리소스를 지목 가능한데, 서버 리소스의 이름은 URI(통합 자원 식별자,Uniform Resource Identifier)의 약자이다.

URI는 인터넷의 우편물 주소 같은 것으로 생각하면 된다. 정보 리소스를 고유하게 식별하고 위치지정이 가능하다.

예시)
"http://www.hellopages.com/specials/example.gif"
라는 주소가 있다고 가정하자.(없는 주소이다)
여기서 http://부분은 http 프로토콜을 사용하라는 뜻이다.
www.hellopages.com은 이 곳으로 이동하라는 의미이고,
/specials/example.gif는 이러한 리소스를 가져오라는 의미라고 생각하면 된다.

이와 같이 http는 주어진 URI 객체를 찾아온다.
그리고 URI에는 두 가지 종류가 있는데, 하나는 URL이고, 다른 하나는 URN이다.


2. URL (Uniform Resource Location)

URL (Uniform Resource Location)의 약자이다. 한국말로 통합 지원 지시자이다.
URL은 리소스 식별자의 가장 흔한 형태인데, URL은 특정 서버의 한 리소스에 대한 구체적 위치를 서술한다.
URL은 리소스가 정확히 어디에 있고, 어떻게 접근하는지 분명히 알려준다.
대부분의 URL은 세 부분으로 이루어진 표준 포맷을 따라온다.

  • URL의 첫 번째 부분은 스킴(scheme)이라고 불리는데, 리소스 접근을 위해 사용되는 프로토콜을 서술한다. (http://)같은 것을 말한다고 보면 된다.
  • 두 번째 부분은 서버의 인터넷 주소를 제공한다.
    예를 들면 www.naver.com같은 경우이다.
  • 세 번째 부분은 인터넷 주소 뒤에 있는 것들로, 웹 서버의 리소스를 가리킨다.

오늘날 대부분의 URI는 URL 이라고 보면 된다.


1) URL 문법

http://www.naver.com

1) 스킴
위 부분중 "http" 부분을 스킴이라고 한다.
http라는 프로토콜로 통신하겠다는 의미이다.
ftp로 통신하고 싶은 경우 "ftp://"와 같이 시작한다.

2) 호스트
애플리케이션이 인터넷에 있는 리소스를 찾으려면 리소스를 호스팅하고있는 장비를 알아야하고,
그 장비 내의 리소스에 접근할 수 있는 서버위 위치를 알아야한다.
위 부분중 www.naver.com 부분에 해당한다.
이 부분은 후에 ip주소로 변환되며,이는 서버의 위치를 의미한다.

3)경로
url의 경로는 리소스가 서버의 어디에 있는지 알려준다. 예를 들자면 다음과 같다.
http://localohst:8000/index/index.html
위 부분에서 /index/index.html 부분에 해당한다.

4) 파라미터
url의 파라미터 컴포넌트는 애플리케이션이 서버에 정확한 요청을 하기 위해 필요한 입력 파라미터를 받는데 사용한다.
이 컴포넌트는 이름/값 쌍의 연속으로, url 너머지 부분들로부터 ; 문자로 구분하여 url에 사용한다.
이를 이용해 애플리케이션이 리소스에 접근하는데 필요한 추가정보들을 전달한다. 예시는 다음과 같다.
http://localhost:8000/index/index.html;graphics=true
index.html경로조각은 값이 true인 graphics 라는 파라미터를 갖는것이다.

5) 질의 문자열
요청받을 리소스 형식의 범위를 좁히기 위해 질문, 질의를 받는것이 가능하다.
url의 질의 컴포넌트는 게이트위이를 가리키는 url 경로 컴포넌트와 함께 전달한다.
예를 들자면, 재고 확인을 위해 클라이언트에서 서버로 웹 데이터베이스 게이트웨이로 질의하는데 사용한다.
ex) http://localhost:8000/inventory-check.cgi?item=12345
질의 문자열은 위 url에서 "?" 의 오른쪽에 있는 값들을 의미한다

6) 프래그먼트
html같은 리소스 형식들은 본래 수준보다 더 작게 나누는 것이 가능하다.
예를 들면 다음과 같다.

ex) <p id="hello"> 가나다 </p>
<a href="#hello">클릭</a>
위 경우 경로가 http://localhost:8000/index.html이라는 가정 하에 클릭 부분을 누르면
http://localhost:8000/index.html#hello 로 이동할것이다.
위 url에서 #hello부분을 이야기하는 것이다.

2) URL 구조

<스킴>://<사용자이름>:<비밀번호>@<호스트>:<포트>/<경로>?<질의>#<프래그먼트>
우선 url은 스킴에 따라 모두 문법이 다르지만 위 구조를 기반으로 사용한다.

3) 단축 URL

우선 url은 상대 url과 절대 url로 나뉜다.

  • 절대 url
    그냥 풀 url이 절대 url이다. 절대 url은 리소스에 접근하기 위해 필요한 모든 정보를 가지고 있다.

  • 상대 url
    상대 url은 url을 짧게 표시하는 방법이다.
    html을 작성할때 href부분에 절대 url을 사용하지 않고 ./hello.html과 같은 형식으로만 작성하는 것이 상대 url이다.

  • 기저 url
    베이스가 되는 url이다.
    http://localhost:8000/index.html에서
    http://localhost:8000부분은 기저 url이 되는 것이고, /index.html 또는 ./hello.html같은 것들이 상대 url이 된다.
    상대 url은 프래그먼트이거나 url의 일부이다.


3. URN (Uniform Resource Name)

URN 은 Uniform Resource Name 의 약자로 한국어로 그대로 유니폼 리소스 이름이라는 뜻이다.
URN은 콘텐츠를 이루는 한 리소스에 대해 그 리소스의 위치에 영향을 받지 않는 이름 역할을 한다.
이 위치가 독립적인 URN은 리소스를 다른 곳으로 옮겨도 문제 없이 동작한다.
리소스가 그 이름을 변하지 않게 유지하는 한, 여러 네트워크 접속 프로토콜로 접근해도 괜찮다는 말이다.

그러나 URN은 여전히 실험중이고 널리 채택되지 않았다.

0개의 댓글