파일 URI 방식
file URI scheme파일 URI 스킴은 에서 정의된 URI 스킴입니다. RFC8089 - 일반적으로 자신의 컴퓨터 내에서 파일을 취득하기 위해 사용됩니다.
이전에는 파일 URI 방식이 RFC 1630 및 RFC 1738에 지정되어 있었습니다.Internet Engineering Task Force(IETF; 인터넷 기술 특별 조사위원회)는 RFC 8089를 공개하고, 후자의 RFC를 갱신했습니다.이것에 대해서는, 「기존의 대부분의 [1]용도와 호환성이 있는 RFC 3986 의 범용 구문에 근거하는 구문」을 사용합니다.
포맷
파일 URI는 다음 형식을 취합니다.
파일://host/path
여기서 host는 경로에 액세스할 수 있는 시스템의 완전 수식 도메인 이름입니다.path는 디렉토리/디렉토리/.../name 형식의 계층형 디렉토리 경로입니다.호스트를 생략하면 URL이 해석되는 시스템인 "localhost"로 간주됩니다.호스트를 생략할 때 슬래시는 생략되지 않습니다(「」는 유효하지만,file:///foo.txtfile://foo.txt 「」는 무효입니다만, 일부의 인터프리터는 후자를 처리할 수 있습니다).
RFC 3986 에는, URI 의 「..」 및 「」세그먼트의 처리에 관한 추가 정보가 포함되어 있습니다.
슬래시가 몇 개죠?
- 파일을 다음 끓여:포함된 호스트 이름 또는 그 문자 그대로의 용어를 의미한다.
localhost
비록 이 부분은 완전히 생략할 수 있거나 빈 호스트 이름들을 포함하는 follow,[2] 것이다.[3] - 호스트와 경로 사이의 단일 슬래시와 존재해야만 하는 URI의local-path 부분의 시작을 나타낸다.[4]
- 유효한 파일 URI그러므로 양쪽에서 시작해야 한다.
file:/path
(어떤 호스트 이름),file:///path
( 빈 호스트 이름), 또는file://hostname/path
. file://path
(호스트명이 없는 2개의 슬래시)는 정확하지 않지만 자주 사용됩니다.- 디렉토리 및 하위 디렉토리의 계층 시스템에서 경로에서 별도의 디렉토리 이름을 추가로 슬래시합니다.이 사용법에서 슬래시는 일반적으로 시스템에 의존하지 않는 부품 구분 방식이며, 특정 호스트 시스템에서는 임의의 경로 이름(유닉스 시스템 등)에서 슬래시를 사용할 수 있습니다.
Windows UNC 파일명은, 다음의 2개의 방법으로 설정할 수 있습니다.\\server\folder\data.xml
)을 나타낼 수 있습니다.이들 모두 RFC 8089 부록E에서 '비표준'으로 기술되어 있습니다.첫 번째 방법(여기서는 2-슬래시 형식이라고 부릅니다)은 URI의 Authority 부분을 사용하여 서버 이름을 나타내는 것입니다.이렇게 하면 URI는 다음과 같이 됩니다.file://server/folder/data.xml
두 번째 방법(여기서는 4-슬래시 형식이라고 부릅니다)은 서버 이름을 Path 컴포넌트의 일부로 나타내어 URI가file:////server/folder/data.xml
. 두 가지 형식이 모두 적극적으로 사용됩니다.Microsoft.NET(예를 들어 메서드)new Uri(path)
)는 보통 2슬래시 형식을 사용합니다.Java (예를 들어 메서드)new URI(path)
)는 일반적으로 4자리 형식을 사용합니다.어느 폼이든 URI에서 가장 일반적인 조작(상대 URI 해결 및 리모트파일에의 접속을 얻기 위한 참조)을 정상적으로 사용할 수 있습니다.다만, 이러한 URI는 비표준이기 때문에, 일반적인 조작은 몇개인가 실패합니다.예를 들어 정규화 조작(RFC 3986에 정의되어 Java에 실장)이 있습니다.java.net.URI.normalize()
method)를 사용하면,file:////server/folder/data.xml
사용할 수 없는 형태로file:/server/folder/data.xml
를 클릭합니다.[5]
예
유닉스
다음은 같은 /etc/fstab 파일을 가리키는 Unix의 두 가지 예를 제시하겠습니다.
파일://localhost/etc/fstab 파일://etc/fstab
창문들
다음은 같은 로컬파일 c:\를 참조하는 Windows 시스템의 일부 응용 프로그램에 의해 받아들여질 수 있는 몇 가지 예입니다.WINDOWS\clock에비
파일://localhost/c:/WINDOWS/clock.avi 파일:///c:/WINDOWS/clock.avi
Windows Shell [6]API에서 인식되는 URI는 다음과 같습니다.
파일://c:/WINDOWS/clock.avi
콜론과 슬래시가 이어지는 드라이브 문자는 허용 가능한 파일 URI의 일부입니다.
실장
창문들
Microsoft Windows 시스템에서는, 파일 URL 로 디바이스 문자 뒤에 있는 통상의 콜론(:)이 세로줄( )로 대체되는 일이 있습니다.이는 원래 URL 구문을 반영하여 콜론을 경로 부분의 예약된 문자로 만들었습니다.
Internet Explorer 4 이후 파일 URI는 Windows에서 표준화되었으며 다음 방식을 따라야 합니다.이는 URI 해석, 가져오기 또는 바인딩에 URLMON 또는 SHLWAPI를 사용하는 모든 응용 프로그램에 적용됩니다.경로를 URL로 변환하려면UrlCreateFromPath
URL을 경로로 변환하려면 , 를 사용합니다.PathCreateFromUrl
를 클릭합니다.[6]
파일 "the file.txt"에 액세스하기 위해 다음을 사용할 수 있습니다.
네트워크 위치의 경우:
파일://hostname/path/to/the%20file.txt
또는 로컬 파일의 경우 호스트 이름은 생략되지만 슬래시는 생략되지 않습니다(세 번째 슬래시 주의).
파일://c:/path/to/%20file.txt
이것은, 호스트명 대신에 문자열 「localhost」또는 닷 「.」를 지정하는 것과는 다릅니다.문자열 "localhost"는 UNC 경로로 파일에 액세스를 시도합니다.\\localhost\c:\path\to\the file.txt
공유 이름에는 콜론을 사용할 수 없기 때문에 작동하지 않습니다.점 "."은 문자열이 다음과 같이 전달됩니다.\\.\c:\path\to\the file.txt
로컬 파일에서는 동작하지만 로컬시스템에서는 공유되지 않습니다.예를들면file://./sharename/path/to/the%20file.txt
sharename이 네트워크 공유가 아닌 DOSDEVICES 네임스페이스의 일부로 해석되기 때문에 동작하지 않습니다.
다음 개요는 요건에 대해 대략적으로 설명합니다.
- 콜론을 사용해야 합니다.Internet Explorer의 세로 막대로 대체하지 마십시오.
- 경로를 구분하려면 슬래시를 사용해야 합니다.
- 파일명의 일부인 해시(#)나 물음표(?)등의 문자는, 퍼센트로 인코딩 할 필요가 있습니다.
- URI 에서는 사용할 수 없지만 파일명에서는 사용할 수 있는 문자는 퍼센트로 인코딩해야 합니다.예를 들어, "{}'^ " 및 모든 제어 문자를 지정합니다.위의 예에서는 파일 이름 내의 공간이 %20으로 인코딩되어 있습니다.
- URI 와 파일명 양쪽에서 사용할 수 있는 문자는 퍼센트로 인코딩할 수 없습니다.
- 레거시 ACP 인코딩을 사용할 수 없습니다(ACP 코드 페이지는 DOS CHCP 또는 Windows 제어판의 언어 설정으로 지정됩니다).
- ASCII 범위를 벗어나는 Unicode 문자는 UTF-8로 인코딩해야 하며, 이러한 UTF-8 인코딩은 퍼센트 인코딩으로 해야 합니다.
가능한 경우 제공된 기능을 사용하십시오.URL을 프로그래밍 방식으로 작성해야 하며 SHLWAPI.dll에 액세스할 수 없는 경우(스크립트 또는 동등한 기능을 사용할 수 없는 다른 프로그래밍 환경에서 등) 위의 개요가 도움이 됩니다.
레거시 URL
Win32에서 레거시 응용 프로그램 설치 기반 지원PathCreateFromUrl
는, 이러한 기준을 충족하지 않는 특정의 URL 를 인식해, 그것들을 균등하게 취급합니다.이것들은 「정상적인」[7]파일 URL이 아니고, 「레거시」파일 URL이라고 불립니다.
과거에는 다양한 다른 응용 프로그램이 다른 시스템을 사용했습니다.일부는 두 개의 슬래시를 추가했다.예를 들어 UNC 경로\\remotehost\share\dir\file.txt
될 것이다file:////remotehost/share/dir/file.txt
'건강'이 아니라file://remotehost/share/dir/file.txt
.
웹 페이지
파일 URL은 지정된 호스트에 파일이 있음을 의미하므로 공용 인터넷의 웹 페이지에서 거의 사용되지 않습니다.호스트 지정자는 특정 파일 검색 프로토콜이 지정되지 않았지만 외부 소스에서 파일을 검색하기 위해 사용할 수 있으며, 이를 사용하면 해당 머신에 액세스할 수 있는 메커니즘이 없음을 사용자에게 알리는 메시지가 나타납니다.
레퍼런스
- ^ The "file" URI Scheme. doi:10.17487/RFC8089. RFC 8089. Retrieved October 16, 2018.
- ^ RFC 8089, 섹션 2
- ^ RFC 3986, 섹션 3.2.2
- ^ RFC 3986, 섹션 3.3
- ^ RFC 8089, 부록E
- ^ a b Risney, Dave (2006). "File URIs in Windows". IEBlog. Microsoft Corporation. Retrieved 2020-10-02.
- ^ '파일:' URL의 기괴하고 불행한 이야기 - 무료 연관성 - 사이트 홈 - MSDN 블로그Blogs.msdn.com(2005-05-19).2014-03-08에 취득.