URL(Uniform Resource Locator)은 인터넷의 리소스를 가리키는 표준이름이다.
URL은 브라우저가 필요한 정보의 리소스의 위치를 가리키며 공유할 수 있다.
URL을 사용하면 인터넷이 있는 어떤 리소스든지 가리킬 수 있다.
URL을 사용하면 일관된 방식으로 리소스를 지칭할 수 있다.
URL의 구조
URI 통합자원 식별자
1. http는 URL의 스킴이다. 스킴은 웹 클라이언트가 리소스에 어떻게 접근하는지 알려준다.
2. 서버의 위치다. 웹 클라이언트가 리소스가 어디에 호스팅 되어있는지 알려준다.
3. 리소스의 경로다. 서버에 존재하는 로컬 리소스들 중에서 요청받은 리소스가 무엇인지 알려준다.
다른 프로토콜
mailto: 이메일 주소
ftp: 서버에 올라가 있는 파일
rtsp: 스트리밍을 제공하기 위해 비디오 서버에서의 영화 파일
URL은 스킴에 따라서 달라진다.
URL의 스킴의 문법은 9개 부분으로 나뉜다.
컴포넌트 | 설명 | 기본값 |
---|---|---|
스킴 | 리소스를 가져오려면 어떤 프로토콜을 사용하여 서버에 접근해야 하는지 가리킨다. | 없음 |
사용자이름 | 몇몇 스킴은 리소스에 접근하기 위해 사용자 이름을 요구한다. | anonymous |
비밀번호 | 사용자의 비밀번호를 가리키며, 사용자 이름에 콜론(:)으로 이어서 가리킨다. | <이메일 주소> |
호스트 | 리소스를 호스팅하는 서버의 호스트 명이나 IP 주소 | 없음 |
포트 | 리소스를 호스팅하는 서버가 열어놓은 포트번호(HTTP의 기본 포트는 80이다.) | 스킴에 따라 다름 |
경로 | 이전 컴포넌트와 빗금(/)으로 구분되어 있으며, 서버 내 이소스가 어디에 있는지를 가리킨다. | 없음 |
파라미터 | 파라미터는 이름/값을 쌍으로 가진다.다른 파라미터나 경로의 일부와 세미콜론(;)으로 구분하며, 여러 개를 가질 수 있다. | 없음 |
질의 | 스킴에서 애플리케이션에 파라미터를 전달하는데 쓰인다. 공통포맷 없음, URL의 끝에 ? 로 구분한다. | 없음 |
프래그먼트 | 리소스의 조각이나 일부분을 가리키는 이름이다. URL의 끝에서 #문자로 구분한다. | 없음 |
규칙
EX) 대소문자 구분하지 않는다.
http://www.naver.com
HTTP://WWW.NAVER.COM
애플리케이션이 인터넷에 있는 리소스를 찾으려면, 리소스를 호스팅하고 있는 장비와 그 장비 내에서 리소스에 접근할 수 있는 서버가 어디에 있는지 알아야 한다.
호스트 컴포넌트
접근하려고 하는 리소스를 가지고 있는 인터넷 상의 호스트 장비를 가리킨다.
EX) 같은 리소스를 가리킨다.
http://www.joes-hardware.com:80/index.html -호스트명
http://161.58.228.45:80/index.html - IP주소
포트 컴포넌트
서버가 열어놓은 네트워크 포트를 가리킨다.
내부적으로 TCP 프로토콜을 사용하는 HTTP는 기본 포트로 80을 사용한다.
많은 서버가 데이터에 접근을 허용하기 전에 이름과 비밀번호를 요구한다.
리소스에 접근하려면 프로토콜 파라미터가 필요하다.
이름/값 쌍의 리스트로 URL 나머지 부분들로부터 ; 문자로 구분하여 URL에 기술한다.
파라미터를 통해 리소스에 접근하는데 추가 정보를 전달할 수 있다.
EX)
ftp://www.test.com/fruits;sale=false/index.html;
? 문자로 구분하여 URL에 기술한다.
특정 문자들을 제외하고는 포맷에 제약사항은 없다.
대부분 & 문자로 구분하고 이름=값 쌍형식의 질의 문자열을 사용한다.
EX)
ftp://www.test.com/fruits-list.cgi?item=101010
리소스의 특정 부분을 가리킬 수 있도록, URL은 리소스 내의 조각을 가리킬 수 있는 프래그먼트 컴포넌트를 제공한다.
http://www.test.com/member.html#name
URL 문자 집합
인코딩 체계
문자 제한
2.6미래..?
2.7추가 정보