URL(Rniform Resource Locator): 인터넷 리소스 가리키는 표준 이름, 어디에 있고 어떻게 접근하는지 알려줌.
-URL은 리소스 위치 가리킴, URL과 HTTP같은 프로토콜을 통해 원하는 리소스로 접근 가능.
-URI(Uniform Resource Identifier)는 url보다 일반화된 상위개념.
-URL과 URL은 URI의 부분집합.
-URN: 리소스 현재위치와 무관하게 이름만으로 리소스 식별 가능(URL은 현재위치를 기준으로 리소스 식별)
http://www.joes-hardware.com/seasonal/index-fall.html
-http부분: url의 스킴. 웹 클라이언트가 리소스에 '어떻게' 접근하는지 알려줌.
"HTTP"프로토콜을 사용해라!
-www.joes-hardware.com부분: 서버의 위치. 리소스가 어디에 호스팅 되어있는지 알려줌
-/seasonal/index-fall.html부분: 리소스의 경로
<이메일 프로토콜>
president@whitehouse.gov
<FTP(File Transfer Protocol)>
ftp://ftp.lots-o-books.com/pub/complete-list.xls
-대부분의 url은 '스킴://서버위치/경로' 구조.
스킴, 사용자 이름, 비밀번호, 호스트, 포트, 경로, 파라미터, 쿼리(질의), 프래그먼트
대소문자 가리지 않음(http = HTTP)
http://www.joes-hardware.com:80/index.html
http는 기본적으로 80포트 사용
ftp://hwanil:my_pwd@ftp.ai.mit.edu/pub/gnu
많은 서버가 사용자 이름 비밀번호 요구한다. FTP서버가 좋은 예시
만약 사용자 이름, 비밀번호 안쓰면 이름 기본값은 'anonymous', 비밀번호는 부라우저마다 가지고 있는 기본값 사용. 이름-비번은 ':'로 구분
/뒤에 있는 부분.
key/value쌍 형태. ';'로 구분하여 기술.
ftp://hwanil:my_pwd@ftp.ai.mit.edu/pub/gnu;type=d
리소스 형식의 범위를 좁히기 위해 사용.
item=123512&color=blue&size=large
샵(#)뒤에 이어서 온다.
http://www.joes-hardware.com:80/index.html#drills
리소스의 특정 부분을 가리키는 역할. 예를 들어 html문서에 있는 특정 이미니자 일부분을 가리킬 수 있다.
위 예시에선 indexhtml에 있는 drills 라는 특정 부분 요청.
-리소스를 간결하게 기술하는데 사용됨.
-url은 상대url, 절대url로 나뉜다. 여태 우리가 본건 절대 url.
-상대 url사용위해 base url사용해야 함. 상대는 url짧게 표기하는 방식.
<A HREF="./hammers.html">
http://www.joes-hardware.com:80/tools.html가 가리키는 리소스 html문서고 이게 base url이 된다.
즉 위에 경로는 http://www.joes-hardware.com/hammers.html
url입력 시 자동완성 되는 것.
1)호스트 명 확장: yahoo입력 시 www.yahoo.com 입력되는 것.
2히스토리 확장: url입력 시 해당 주소에서 예전 방분했던 곳 자동으로 보여주는 것
-안전한 전송: 정보가 유실될 위험 없이 URL을 전송할 수 있다는 것
원래는 일반적으로 안전한 알파벳 문자만 전송하도록 허락되었다.
하지만 이진데이터나 알파벳 이외의 문자전송에 대한 요구사항이 생겼고, 이스케이프라는 기능을 추가해 안전하지 않은 문자를 안전한 문자로 인코딩 할 수 있게 되었다.
-이스케이프 문자열: US_ASCII에서 사용이 금지된 문자들
문자 제한
url내에서 특별한 의미로 예약되어 있는 문자들
42페이지 참조.
다양한 스킴 종류들
http
https
malito(이메일 주소)
ftp(파일 전송 프로토콜)
rtsp, rtspu(실시간 스트리밍 프로토콜)
file(호스트 기기에서 바로 접근 가능한 파일들(로컬디스크 등등))
news(뉴스)
telnet(대화형 서비스)
url완벽하지 않다. ㄴㄴ
왜? url은 '주소'지 실제 '이름'은 아니다.
리소스가 주소를 바꾸면? url은 제기능을 못한다.
이 문제를 해결하기 위해선?
주소와 상관없이 리소스의 이름을 사용하는 것!
이를 위해 URN(Uniform Resource Names)등장!
혹은 PURL(Persistent uniform resource locators)사용하면 URL로 URN기능 가능.
그럼 URN, PURL이 더 좋은데 왜 안쓰냐?
이미 URL이 너무 상용화 되었어서 이 체계를 URN으로 바꾸려면 엄청난 시간이 걸린다.
또, URN으로 바꾸는게 시급하지 않기 때문에 잘 안되고 있는 듯하다.