Thief of Wealth

URL은 인터넷의 리소스를 가리키는 표준이름이다.

 

이 주제와 관련된 질문에 대답할 수 있는지 체크하자.

- URL문법, 여러 URL 컴포넌트가 어떤 의미를 가지며 무엇을 수행하는지

- 어려 웹 클라이언트가 지원하는 상대 URL과 확장 URL 같은 단축 URL에 대해

- URL의 인코딩과 문자 규칙

- 여러 인터넷 정보 시스템에 적용되는 공통 URL 스킴

- 기존 이름은 유지하면서 객체들을 다른 장소로 옮기는 것을 가능하게 해주는 URN을 포함한 URL의 미래

 

2.1 인터넷의 리소스 탐색하기

URL은 브라우저 정보를 찾는데 필요한 리소스읠 위치를 가리킨다.

URI는 URL + URN이며, 

URN은 현재 그 리소스가 어디에 존재하든 상관없이 그 이름만으로 리소스를 식별하는데 비해서, URL은 리소스가 어디있는지 설명해서 리소스를 식별한다.

 

여기서는 URL기준으로 설명한다.

 

1. URL의 첫부분 scheme인 http는 웹 클라이언트가 리소스테 어떻게 접근하는지 알려준다. (http 프로토콜을 이용하라)

2. URL의 두번째 부분인 호스트 네임은 서버위 위치이며, 웹 클라이언트의 리소스가 어디에 호스팅되어있는지 알려준다.

3. URL 세번째부분인 path는 리소스의 경로다. 경로는 서버에 존재하는 로컬 리소스들 중에서 요청받은 리소스가 뭔지 알려준다.

 

2.1.1 URL이 있기 전 암흑의 시대

웹, URL있기 전에는 네트워크 상에 산재해있는 데이터에 접근하기 위해서 각기다른 분류방식을 사용했다.

 

2.2 URL 문법

URL의 문법은 크게 9개로 나뉜다.

<스킴>:://<사용자이름>:<비밀번호>@<호스트>:<포트>/<경로>;<파라미터>?<질의>#<프래그먼트>

 

2.2.1 스킴

리소스에 어떻게 접근할 것이냐를 알려준다.

일반적으로 http이다.

스킴 컴포넌트는 알파벳으로 시작해야한다.

 

2.2.2 호스트와 포트

리소스를 호스팅하고 있는 장비 정보

그 장비내에서 리소스에 접근할 수 있는 서버가 어디에 있는지 정보

 

2.2.3 사용자 이름과 비밀번호

FTP에서 주로쓰인다.

 

ftp://anonymous:my_passwd@ftp.prep.ai.mit.edit/pub/gnu

값이 삽입되어있지 않으면 anonymous가 삽입된다.

비밀번호는 브라우저마다 가지고 있는 기본값이 들어간다. (IEUser, chrome@example.com 등등..)

 

2.2.4 경로

리소스가 서버의 어디에 있는지 알려준다.

 

2.2.5 파라미터

리소스에 접근하는데 필요한 어떤 추가 정보든 전달할 수 있다.

프로토콜 파라미터가 없으면 요청이 거절될 수 있다.

ftp://prep.ai.mit.edu/pub/gnu;type=d 

 

2.2.6 질의 문자열

DB들에게 리소스 형식의 범위를 좁히기위해서 질의를 사용할 수 있다.

~~?itemid=13213

 

사용하면 안되는 특정 문자들을 제외하고는 질의 컴포넌트 포맷에 제약은 없다.

편의상 많은 게이트웨이가 &로 나누어진 key=value 쌍으로 쓰인다.

 

 

2.2.7 프래그먼트

리소스들이 본래의 수준보다 더 잘게 나뉘어질 수 있다.

리소스의 특정 부분을 더욱 세세하게 가리키는 역할을 한다.

ex) 텍스트 문서의 특정 문자열

 

 

 

2.3 단축 URL

웹 클라이언트는 몇몇 단축 URL을 인식하고 사용한다.

 

2.3.1 상대 URL

상대 URL도 있고 절대 URL도 있다.

일반적으로 보이는 것은 절대 URL이다.

절대 URL은 리소스에 접근하는데 필요한 모든 정보를 가지고 있기 때문이다.

 

상대 URL은 html 문서내에서 보이는 "./modal.html" 같은 것들이다.

 

2.32 URL 확장

URL을 입력한 다음이나 입력하고 있는 동안에 자동으로 URL을 확장한다.

자동으로 URL이 확장되기 때문에 전체 URL을 쓰지 않아도 된다.

 

확장기능은 다음과 같다.

1. 호스트명 확장

주소창에 yahoo치면 자동으로 www.와 .com을 붙인다.

 

2. 히스토리 확장

과거에 사용자가 방문한 URL 기록을 저장해 놓는 것이다.

URL을 입력하면 완결된 형태의 URL들을 선택하게 해준다.

 

 

2.4 안전하지 않은 문자.

URL은 잘 호환되도록 설계되었다.

모든 프로토콜이 데이터를 전송하기 위해서 서로다른 장치를 가지고 있기 때문에, 어떤 인터넷 프로토콜이든 안전하게 전송될 수 있도록 해야했다.

URL은 상대적으로 작고 일반적으로 안전한 알파벳 문자마나 포함하도록 한다.

 

그래서 출력이 되지 않거나 보이지 않는 문자를 이메일 프로그램에서 쓸 수 있다고해서 URL에서 쓰는것은 금지시켰다.

이스케이프 기능도 추가하여 안전하지 않은 문자를 안전하게 인코딩하는 기능까지 넣었다.

 

2.4.1 URL 문자 집합

컴퓨터 시스템 자체가 영어중심으로 설정되어 있다.

US-ASCII를 사용해왔는데 글로벌로 쓰이기에는 역부족이긴하다.

 

2.4.2 인코딩 체계

안전하지 않은 문자를 %로 시작해 hex 문자열로 이스케이프하게 바꾼다.

 

2.4.3 문자 제한

어떤 문자는 URL내에서 특별한 의미라서 인코딩되어야한다.

% / . .. # ? : ; $ + @ <> " 0x00 0x7F등등

 

 

2.5 스킴의 바다

스킴은 많다.

http

https

file

telnet

ftp

 

2.6 미래

URL은 완벽하지 않다. 사실 주소이지 실제 이름은 아니다.

이러면 리소스가 옮겨지면 그 URL을 더이상 사용할 수 없다는 뜻이다.

 

이런문제를 해결하려면 객체의 위치와 상관없이 그 객체를 가리키는 실제 객체의 이름을 사용하는 것이다. 

이게 바로 URN이다.

 

URN이 아직 널리퍼지지 않은이유는 주소체계를 바꾸는 것 자체가 매우 큰 작업이고 합의도 필요하기 때문에 아직도 오래걸릴것이다.

profile on loading

Loading...