URL과 리소스
- URL은 인터넷의의 리소스를 가리키는 표준이름이다. 이를 사용하여 전자정보가 어디에 있고 어떻게 접근할 수 있는지 알려준다.
인터넷의 리소스 탐색하기
-
URL은 브라우저가 정보를 찾는데 필요한 리소스의 위치를 가리키고, URI의 부분집합이다. 또한 HTTP, mailto(이메일), ftp(서버에 올라가 있는 파일), rtsp(비디오 서버에 호스팅하고 있는 영화)와 같이 다른 가용한 프로토콜을 사용할 수 있다.
-
URL이 있기 전 암흑의 시대 → 리소스에 접근하기 위한 방법이 너무 다르고, 복잡하였음
-
URL을 사용하여 하나의 인터페이스를 통해 일관된 방식으로 많은 리소스에 접근이 가능하다. 그리고 웹 브라우저는 HTTP 클라이언트이기에 URL을 다루고, 특정 리소스(예: 스킴)를 다루기 위해 별도의 애플리케이션을 사용하기도 한다.
URL 문법
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
- scheme : 사용할 프로토콜을 뜻하며 웹에서는 http 또는 https를 사용
- user와 password : (서버에 있는) 데이터에 접근하기 위한 사용자의 이름과 비밀번호
- host와 port : 접근할 대상(서버)의 호스트명과 포트번호
- path : 접근할 대상(서버)의 경로에 대한 상세 정보
- query : 접근할 대상에 전달하는 추가적인 정보 (파라미터)
- fragment : 메인 리소스 내에 존재하는 서브 리소스에 접근할 때 이를 식별하기 위한 정보
단축 URL
- 웹클라이언트는 몇몇 단축 URL을 인식
- 상대 URL은 리소스 안에 있는 리소스를 간결하게 기술하는데 사용
상대 URL
- URL은 상대 URL과 절대 URL로 나뉜다.
1. 절대 URL: http부터해서 스킴, 호스트, 포트, 경로까지 다 적어주는것
- 상대 URL: 기저(base)URL을 사용하여, URL의 일부를 가지고 리소스의 위치를 찾아냄. 상대 URL은 프래그먼트나 URL 일부이며 브라우저 같은 애플리케이션은 상대 URL과 절대 URL 간에 상호 변환을 할 수 있어야 한다. → 상대 url의 장점은 문서 집합의 위치를 변경하더라도 새로운 기저 URL에 의해 해석되어 위치 변경시에도 잘 동작한다.
URL 확장
- 호스트명 확장: 휴리스틱만 사용하여 호스트명에 ‘www.’와 ‘.com’을 붙여서 만든다.
- 히스토리 확장: 과거 URL기록을 이용하여 URL 입력시, 완결된 형태의 URL을 보여준다.
안전하지 않은 문자
- 안전한 전송: 정보가 유실될 위험 없이 URL을 전송하는 것을 의미
→ 이를 위해 작고 일반적으로 안전한 알파벳 문자만 포함, 이스케이프 기능을 추가하여 안전하지 않은 문자를 안전한 문자로 인코딩할 수 있게 함
URL 문자 집합
인코딩 체계
- 안전하지 않은 문자를 퍼센티지 기호(%)로 시작해 ASCII 코드로 표현되는 두 개의 16진수 숫자로 이루어진 ‘이스케이프' 문자로 바꾼다.
ex) ~ → %7, 빈 문자 → %20 , % → %25
문자 제한
-
몇몇 문자는 URL내에 특별한 의미로 예약되어 있어 다른 용도로 사용하려면 그 전에 반드시 인코딩 해야한다.
-
%: 이스케이프 토큰
-
/: 경로 세그먼트를 나누는 용도
-
그외: ., .., #, ?, ;, :, $, +, @ & =등등..
스킴의 바다
-
http: 일반 URl 포맷을 지키는 하이퍼텍스트 전송 프로토콜 스킴
-
https: 커넥션의 양 끝단에서 암호화하기 위해 넷스케이프세 개발한 보안 소켓 계층 (기본 포트값 443)
-
mailto: 이메일 주소를 가리킨다.
-
ftp: 파일 전송 프로토콜
-
rtsp, rtspu: 실시간 스트리밍 프로토콜
-
file: 주어진 호스트 기기에서 바로 접근할 수 있는 파일들을 나타냄
-
news: 특정 문서나 뉴스 그룹에 접근하는데 사용
-
telnet: 대화형 서비스에 접근
미래
-
URL은 인터넷 프로토콜 간에 공유할 수 있는 일관된 작명 규칙 제공 → 그러나 리소스가 옮겨지면 URL을 더는 사용할 수 없는 것이 단점!
-
그래서 URN(실제 객체의 이름 사용)이라는 새로운 표준 작업에 착수.
-
지속통합자원지시자(PURL)을 사용하면 URL로 URN기능 제공가능(리소스 위치 중개 서버를 두고, 해당 리소스를 우회적으로 제공)
→ 지속해서 새로운 표준이 적용되어 URL을 대체하려고 적용중이다.