URI와 URL의 차이점은 무엇입니까?


44

이 페이지를 읽었습니다.

URL, URN 및 URI에 대한 기본 지식을 알고 있습니다. 그러나 그들의 차이점은 거의 없다 . 내가 이해할 수없는 것은 다음과 같은 페이지에 있습니다 : http://www.bernzilla.com/item.php?id=100어느 부분이 URL, URN 및 URI입니다!
URI는 전부이지만 URL과 URN ??

위키 백과의 그림

편집 :
w3c.org에서 :

URL은 다른 속성이 아닌 기본 액세스 메커니즘 (예 : 네트워크 "위치")을 통해 리소스를 식별하는 URI 유형입니다.

에서 www.damnhandy.com :

이제 응용 프로그램을 설명 할 때 URL을 사용하는 것이 잘못된 것으로 간주됩니다.

이제 id속성입니까? 신청 부분은 어떻습니까? PHP는 응용 프로그램입니까?


3
이 질문은 스택 오버플로에서 몇 번이나 제기되었으며 많은 관심과 좋은 반응을 얻었습니다 . URI와 URL의 차이점은 무엇입니까?
hippietrail

답변:


42

URI / URL 벤 다이어그램

URL- 균일 한 리소스 로케이터

해당 위치에서 리소스를 가져 오는 방법에 대한 정보가 포함되어 있습니다. 예를 들면 다음과 같습니다.

  • http://example.com/mypage.html
  • ftp://example.com/download.zip
  • mailto:user@example.com
  • file:///home/user/file.txt
  • tel:1-888-555-5555
  • http://example.com/resource?foo=bar#fragment
  • /other/link.html (상대 URL, 다른 URL의 상황에서만 유용합니다)

URL은 항상 프로토콜 ( http)로 시작 하며 일반적으로 네트워크 호스트 이름 ( example.com) 및 종종 문서 경로 ( /foo/mypage.html) 와 같은 정보를 포함합니다 . URL에는 쿼리 매개 변수 및 조각 식별자가있을 수 있습니다.

URN- 균일 한 자원 이름

고유하고 지속적인 이름으로 리소스를 식별합니다. 일반적으로 접두사로 시작합니다. urn: 예를 들면 다음과 같습니다.

  • urn:isbn:0451450523 ISBN 번호로 책을 식별합니다.
  • urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 세계적으로 고유 한 식별자
  • urn:publishing:book -문서를 장부 유형으로 식별하는 XML 네임 스페이스.

URN은 아이디어와 개념을 식별 할 수 있습니다. 문서 식별에만 국한되지 않습니다. URN이 문서를 나타내는 경우 "확인자"에 의해 URL로 변환 될 수 있습니다. 그런 다음 URL에서 문서를 다운로드 할 수 있습니다.

URI- 균일 한 자원 식별자

URI는 URL, URN 및 기타 자원 식별 방법을 포함합니다.

URL이나 URN이 아닌 URI의 예는와 같은 데이터 URI가 됩니다 data:,Hello%20World. URI에 데이터가 포함되어 있으므로 URL이나 URN이 아닙니다. 이름을 지정하거나 네트워크를 통해 찾는 방법을 알려주지 않습니다.

문서 자체가 아닌 문서에 대한 메타 데이터를 가리키는 균일 한 리소스 인용 (URC)도 있습니다. URC의 예는 웹 페이지의 소스 코드를보기위한 식별자입니다 view-source:http://example.com/. URC는 URL이나 URN이 아닌 다른 유형의 URI입니다.

자주 묻는 질문

더 이상 URL을 말하면 안된다는 이야기를 들었습니다. 왜 그렇습니까?

HTML에 대한 W3 사양에 따르면 href앵커 태그 의 URL은 URL뿐만 아니라 URI도 포함 할 수 있습니다. 와 같은 URN을 넣을 수 있어야합니다 <a href="urn:isbn:0451450523">. 그러면 브라우저가 해당 URN을 URL로 해석하고 책을 다운로드합니다.

실제로 브라우저는 URN으로 문서를 가져 오는 방법을 알고 있습니까?

내가 아는 것은 아니지만 최신 웹 브라우저는 데이터 URI 체계를 구현합니다.

URL과 URI의 차이가 상대적인지 아니면 절대적인 것과 관련이 있습니까?

아니요. 상대 및 절대 URL은 모두 URL (및 URI)입니다.

URL과 URI의 차이점은 쿼리 매개 변수가 있는지 여부와 관련이 있습니까?

아니요. 검색어 매개 변수가 있거나없는 URL은 모두 URL (및 URI)입니다.

URL과 URI의 차이점은 조각 식별자가 있는지 여부와 관련이 있습니까?

아니요. 조각 식별자가 있거나없는 URL은 모두 URL (및 URI)입니다.

그러나 W3C는 이제 URL과 URI가 같은 것이라고 말하지 않습니까?

예. W3C는 이것에 대해 많은 혼란이 있음을 깨달았습니다. 그들은 URL과 URI라는 용어를 서로 바꿔서 사용하는 것이 좋다고 말하는 URI 설명 문서 를 발행했습니다 ( URI 를 의미 함). 더 이상 URI를 URL, URN 및 URC와 같은 다른 유형으로 엄격하게 세그먼트 화하는 것은 더 이상 유용하지 않습니다.

URI는 URL과 URN이 될 수 있습니까?

URN의 정의는 이제 위에서 언급 한 것보다 느슨합니다. URI최신 RFC에 따르면 urn:"이름의 속성"이 있는 한 모든 URI가 (로 시작하는지 여부에 관계없이) URN이 될 수 있다고합니다 . 즉, 리소스가 존재하지 않거나 사용할 수 없게 된 경우에도 전 세계적으로 고유하고 영구적입니다. 예 :와 같은 HTML doctypes에 사용되는 URI http://www.w3.org/TR/html4/strict.dtd. 해당 URI는 w3.org 웹 사이트의 페이지가 삭제 된 경우에도 HTML4 전환 doctype의 이름을 계속 지정합니다.


W3C 설명 및 URL / URI 구별에 대해 저를 혼동하는 것은 실제로 많은 웹 서버 문서가 URL을 전체 요청 문자열로, URI를 "프로토콜 다음 부분"으로 설명한다는 것입니다. 심지어 변수 이름 $ uri로 해당 부분을 참조하기도합니다. 예를 들면 다음과 같습니다. nginx.com/blog/creating-nginx-rewrite-rules 이것은 W3C 정의에 의해 엄격하게 "올바른"것이 아닌 것 같습니다. 그러나 그것은 내가 생각하는 가장 유용합니다.
mike

1
URI는 널리 오해되었습니다. 많은 사람들은 URI가 상대 URL처럼 또는 프로토콜을 따르는 URL의 일부라고 생각했습니다. 이것은 정확하지 않았지만, 이러한 아이디어는 서버 문서 나 프로그래밍 API로 상당히 자주 만들어졌습니다.
Stephen Ostermiller

10

나는 그 기사가 꽤 잘 설명되어 있다고 생각합니다. 귀하의 질문에 대답하기 위해-이 모든 URL입니다 :

http://www.bernzilla.com/item.php?id=100

각 비트마다 http: www.bernzilla.com고유 한 이름이 있습니다.

  • http : 구성표입니다
  • www는 하위 도메인입니다
  • bernzilla.com은 도메인입니다
  • com은 최상위 도메인 또는 TLD입니다.
  • (예 : /dir/item.php와 같은 폴더 또는 경로가있을 수 있지만 없습니다)
  • item.php는 확장명이 php 인 페이지 또는 파일 이름입니다
  • id = 100은 쿼리 문자열입니다

왜 Wikipedia에서 그 다이어그램을 볼 수 있는지 알 수 있습니다. 이 다이어그램은 URL과 URN이라는 두 가지 유형의 URI가 있으며 중간에 퍼지 비트는 둘 다있을 수있는 경우입니다.


대답 해줘서 고마워요. 내 질문을 편집했습니다. 다시 볼 수 있습니까?
취소

응용 프로그램 설명에 대한 인용문을 이해하지 못하고 누군가가 지적하는 의견을 볼 수 없습니다. 별도의 부분을 설명하기 위해 답변을 업데이트하겠습니다.
paulmorriss

@ paul 첫 줄에 URI 를 의미하지 않습니까? 위치id=100 가 아니라 표시기입니다.
DisgruntledGoat

URL을 의미한다고 생각합니다. 일부 사이트에서는 ID를 변경하면 평상시 다른 "페이지"가 ​​표시됩니다. wikipedia에서 리소스 정의 읽기 페이지가 리소스의 예라고 생각합니다.
paulmorriss

7

언급 한 URL이 URL과 URN 부분으로 구성된 경우는 아닙니다.

http://www.bernzilla.com/item.php?id=100 URL과 URI입니다.

기본적으로 URI는 URL과 URN의 상위 집합입니다. URL과 URN 간에도 겹치는 부분이 있습니다.

URI는 위치 또는 이름 또는 둘 다로 리소스를 식별합니다.

따라서 모든 URL은 URI이고 URN은 URI이지만 모든 URI가 URL 인 것은 아닙니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.