URL은 브라우저가 정보를 찾는데 필요한 리소스의 위치를 가리키고, URI의 부분집합이다. 또한 HTTP, mailto(이메일), ftp(서버에 올라가 있는 파일), rtsp(비디오 서버에 호스팅하고 있는 영화)와 같이 다른 가용한 프로토콜을 사용할 수 있다.
URL이 있기 전 암흑의 시대 → 리소스에 접근하기 위한 방법이 너무 다르고, 복잡하였음
URL을 사용하여 하나의 인터페이스를 통해 일관된 방식으로 많은 리소스에 접근이 가능하다. 그리고 웹 브라우저는 HTTP 클라이언트이기에 URL을 다루고, 특정 리소스(예: 스킴)를 다루기 위해 별도의 애플리케이션을 사용하기도 한다.
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
ex) ~ → %7, 빈 문자 → %20 , % → %25
몇몇 문자는 URL내에 특별한 의미로 예약되어 있어 다른 용도로 사용하려면 그 전에 반드시 인코딩 해야한다.
%: 이스케이프 토큰
/: 경로 세그먼트를 나누는 용도
그외: ., .., #, ?, ;, :, $, +, @ & =등등..
http: 일반 URl 포맷을 지키는 하이퍼텍스트 전송 프로토콜 스킴
https: 커넥션의 양 끝단에서 암호화하기 위해 넷스케이프세 개발한 보안 소켓 계층 (기본 포트값 443)
mailto: 이메일 주소를 가리킨다.
ftp: 파일 전송 프로토콜
rtsp, rtspu: 실시간 스트리밍 프로토콜
file: 주어진 호스트 기기에서 바로 접근할 수 있는 파일들을 나타냄
news: 특정 문서나 뉴스 그룹에 접근하는데 사용
telnet: 대화형 서비스에 접근
URL은 인터넷 프로토콜 간에 공유할 수 있는 일관된 작명 규칙 제공 → 그러나 리소스가 옮겨지면 URL을 더는 사용할 수 없는 것이 단점!
그래서 URN(실제 객체의 이름 사용)이라는 새로운 표준 작업에 착수.
지속통합자원지시자(PURL)을 사용하면 URL로 URN기능 제공가능(리소스 위치 중개 서버를 두고, 해당 리소스를 우회적으로 제공)
→ 지속해서 새로운 표준이 적용되어 URL을 대체하려고 적용중이다.