URL(Uniform Resource Locator) : 인터넷의 리소스를 가리키는 표준이름으로, 전자정보 일부를 가리키고 그것이 어디에 있고 어떻게 접근할 수 있는지 알려준다.
URL은 브라우저가 정보를 찾는데 필요한 리소스의 위치
http://www.joes-hardware.com/seasonal/index-fall.html 이라는 URL을 불러올때
URL은 HTTP 프로토콜이 아닌 다른 가용한 프로토콜도 사용 가능
리소스들은 다른 스킴(http, ftp, smtp)을 통해 접근할 수 있으며, URL 문법은 스킴에 따라 달라진다.
대부분의 URL 스킴의 문법은 9개 부분으로 나뉜다.
<스킴>://<사용자 이름>:<비밀번호>@<호스트>:<포트>/<경로>;<파라미터>?<질의>#<프래그먼트>
이 중에서 스킴, 호스트, 경로가 중요하다.
컴포넌트 | 설명 | 기본값 |
---|---|---|
스킴 | 리소스를 가져오려면 어떤 프로토콜을 사용하여 서버에 접근해야 하는지 가리킨다. | 없음 |
사용자 이름 | 몇몇 스킴은 리소스에 접근을 하기 위해 사용자 이름을 필요로 한다. | anonymous |
비밀번호 | 사용자의 비밀번호를 가리키며, 사용자 이름에 콜론(:)으로 이어서 기술한다 | <이메일 주소> |
호스트 | 리소스를 호스팅하는 서버의 호스트 명이나 IP 주소 | 없음 |
포트 | 리소스를 호스팅하는 서버가 열어놓은 포트번호. 많은 스킴이 기본 포트를 가지고 있다. | (HTTP 기본 포트 : 80) 스킴에 따라 다름 |
경로 | 이전 컴포넌트와 빗금(/)으로 구분되어 있으며, 서버 내 리소스가 서버 어디에 있는지 가리킨다.경로 컴포넌트의 문법은 서버와 스킴에 따라 다르다. | 없음 |
파라미터 | 특정 스킴들에서 입력 파라미터를 기술하는 용도로 사용한다.파라미터는 이름/값을 쌍으로 가진다.파라미터는 다른 파라미터나 경로의 일부와 세미콜론(;)으로 구분하고, 여러 개를 가질 수 있다. | 없음 |
질의 | 스킴에서 애플리케이션에 파라미터를 전달하는데 쓰인다.질의 컴포넌트를 작성하는데 쓰이는 공통 포맷은 없다. URL의 끝에 "?"로 구분한다. | 없음 |
프래그먼트 | 리소스의 조각이나 일부분을 가리키는 이름이다.URL이 특정 객체를 가리킬 경우에 프래그먼트 필드는 서버에 전달되지 않는다.이는 클라이언트에서만 사용한다. URL의 끝에서 "#"문자로 구분한다. | 없음 |
상대 URL은 리소스 안에 있는 리소스를 간결하게 기술하는 데 사용한다. 브라우저는 사용자가 URL의 일부를 입력하면 나머지를 자동으로 입력해주는 URL 자동확장을 지원한다.
URL은 상대URL과 절대URL로 나뉜다.
상대 URL로 리소스에 접근하려면 필요한 모든 정보를 얻기 위해 기저 URL이 필요하다.
출력되지 않거나 보이지 않는 문자를 이메일 프로그램에서 사요할 수 있고 그 문자들이 변환될 수 있더라도 URL에서는 사용하는 것을 금지한다.
URL에 이진 데이터나 일반적으로 안전한 알파벳 외의 문자를 포함하기 위해 이스케이프라는 기능을 추가해 안전하지 않은 문자를 안전한 문자로 인코딩할 수 있게 되었다.