웹의 리소스 식별하기
HTTP 요청 대상을 "리소스"라고 하며 리소스의 특성은 더 이상 정의되지 않습니다. 리소스는 문서, 사진 등으로 그 어떤 것이든 될 수 있습니다. 각 리소스는 리소스 식별을 위해 HTTP 전체에서 사용되는 URI(Uniform Resource Identifier)로 식별됩니다.
URL과 URN
URL
가장 일반적인 URI 형식은 웹 주소로 알려진 URL(Uniform Resource Locator)입니다.
https://developer.mozilla.org
https://developer.mozilla.org/en-US/docs/Learn/
https://developer.mozilla.org/en-US/search?q=URL
이러한 URL 중 하나를 브라우저의 주소 표시줄에 입력하여 URL과 연결되는 페이지(리소스)를 로드할 수 있도록 지시할 수 있습니다.
URL은 여러 부분으로 구성되는데, 일부는 필수 사항이고 나머지는 선택 사항입니다. 더 복잡한 예는 다음과 같습니다.
http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument
URN
URN(Uniform Resource Name)은 특정 네임스페이스에서 이름으로 리소스를 식별하는 URI입니다.
urn:isbn:9780141036144
urn:ietf:rfc:7230
두 URN은 다음을 나타냅니다.
- George Orwell의 책, Nineteen Eighty-Four
- IETF 명세 7230, Hypertext Transfer Protocol (HTTP/1.1): 메시지 구문과 라우팅
URI(Uniform Resource Identifier) 문법
스키마 또는 프로토콜
-
http://
는 프로토콜로, 브라우저가 사용해야 하는 프로토콜을 나타냅니다. 일반적으로 프로토콜은 HTTP이거나 보안 버전인 HTTPS입니다. 웹은 이 두 가지 중 하나를 사용하지만, 브라우저는 메일 클라이언트를 여는mailto:
또는 파일 전송을 처리하는ftp:
와 같은 다른 프로토콜을 처리하는 방법도 알고 있으므로 이러한 프로토콜을 보더라도 놀라지 않으셔도 됩니다. 일반적인 스키마는 다음과 같습니다.
스키마 | 설명 |
---|---|
data | Data URL |
file | 호스트별 파일 이름 |
ftp | 파일 전송 프로토콜 |
http/https | 하이퍼 텍스트 전송 프로토콜 (보안) |
javascript | URL내 JavaScript 코드 |
mailto | 전자 메일 주소 |
ssh | 보안 쉘 |
tel | 전화 |
urn | 통합 자원 이름 |
view-source | 리소스의 소스코드 |
ws/wss | 웹 소켓 연결 (보안) |
인증
-
www.example.com
은 네임스페이스를 관리하는 도메인 이름 또는 기관입니다. 도메인 이름은 요청중인 웹 서버를 나타냅니다. 또는, IP 주소를 직접 사용할 수도 있으나, 편의성이 떨어져, 웹에서는 자주 사용되지 않습니다.
포트
경로
쿼리
프레그먼트
사용 일람
HTML 콘텐츠에서 URL을 사용할 때, 일반적으로 URL 스키마 중의 일부만 사용해야 합니다. 하위 리소스(즉 더 큰 문서의 일부로 로드되는 파일)를 참조할 때는 HTTP 및 HTTPS 스키마만 사용해야 합니다. 점점 더 많은 브라우저에서 보안상의 이유로 FTP를 사용하여 하위 리소스를 로드하는 지원을 제거하고 있습니다.
일부 브라우저는 FTP 콘텐츠 로드를 다른 애플리케이션에 위임할 수 있지만, 최상위 수준(예, 브라우저의 URL 표시줄 또는 링크 대상에 직접 입력)에서 여전히 FTP를 사용할 수 있습니다.
예제
https://developer.mozilla.org/en-US/docs/Learn
tel:+1-816-555-1212
git@github.com:mdn/browser-compat-data.git
ftp://example.org/resource.txt
urn:isbn:9780141036144
mailto:help@supercyberhelpdesk.info
명세
No specification found
No specification data found for undefined
.
Check for problems with this page or contribute a missing spec_url
to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.