엄밀히 말하면 진실이 아니더라도 대부분의 경우 '도메인을 구입했습니다' 또는 '이미지가 다른 사이트에서 호스팅됩니다'와 같은 말을 하는 것은 괜찮습니다. 그러나 일부 상황에서는 더 정밀해야 합니다. 예를 들어 쿠키를 처리할 때 site와 origin의 차이점을 이해해야 합니다.
URL 부분의 이름은 표준에 지정되며 JavaScript API도 정의합니다.
- URL 표준은 엔지니어가 상호 운용 가능한 웹브라우저를 빌드할 수 있도록 URL과 관련 개념을 정의합니다.
- 표준의 URL API 구성요소는 스키마 또는 origin과 같은 URL 문자열의 일부에 대한 액세스를 제공하는 메서드를 정의합니다.
이 문서에서는 HTTP 또는 HTTPS URL 문자열에 사용되는 다양한 용어를 설명합니다. 파일 또는 데이터 URL과 같은 다른 유형의 URL은 다루지 않습니다. host
및 origin
와 같은 용어의 경우 정확한 정의는 본질적으로 복잡하므로 이 문서에서는 자세한 설명을 제공하기보다는 URL 표준의 예와 링크를 제공합니다.
JavaScript를 사용하여 URL API로 정의된 URL 구성요소의 이름을 가져올 수 있습니다. 예를 들면 다음과 같습니다.
let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);
URL 분석기
URL 문자열에서 각 부분의 이름이 지정되는 방식을 확인하려면 아래 URL을 수정하세요. url-parts.glitch.me의 별도의 탭에서 열 수도 있습니다.
URL 부분의 이름은 아래에 알파벳순으로 나열되어 있습니다.
국가 코드 최상위 도메인 (ccTLD)
ISO 3166-1 국가 코드 목록에 정의된 최상위 도메인입니다.
도메인 이름
점으로 구분된 HTTP 또는 HTTPS URL의 부분으로, 스키마 뒤, 경로 또는 포트 앞에 있는 모든 항목(지정된 경우)입니다. 도메인 이름의 각 부분을 라벨이라고 합니다.
URL | 도메인 이름 |
---|---|
https://example.github.io/path | example.github.io |
https://support.example.org.au:443 | support.example.org.au |
유효한 최상위 도메인 (eTLD)
TLD(여러 부분이 있는 eTLD의 경우) 그 아래에는 두 번째 수준, 세 번째 수준 등의 추가 도메인이 포함된 공개 접미사 목록의 항목.
- 예를 들면
com
,com.au
,github.io
,sa.edu.au
,schools.nsw.edu.au
입니다.
다음 예와 같은 '공개 접미사'는 도메인을 등록할 수 있는 이름입니다. 공개 접미사 목록은 알려진 모든 공개 접미사의 목록이며 자주 업데이트됩니다. Chromium 및 Firefox를 비롯한 브라우저는 빌드 시 이 목록을 사용합니다.
eTLD+1
등록 가능한 도메인을 참조하세요.
eTLD와 그 앞에 오는 하위 도메인
- 예를 들면
example.com
,example.org.au
,example.github.io
,example.sa.edu.au
,example.schools.nsw.edu.au
입니다.
파일 이름
URL 표준에 정의되어 있지 않고 URL API의 일부가 아니라
예를 들어 https://example.com/dir/file.html
의 경우 file.html
을 파일 이름으로 지칭할 수 있습니다.
파일 이름 값은 애셋이 다운로드되면 브라우저에서 애셋의 이름을 지정하는 데도 사용됩니다.
예를 들어 https://example.com/images/image.jpg
는 일반적으로 로컬에 image.jpg
에 저장됩니다.
Fragment
프래그먼트 식별자를 제공하는 URL 끝의 # 문자 뒤에 오는 문자열입니다.
- 예를 들어 URL
https://example.com/cats#tabby
의 프래그먼트 식별자 값은tabby
입니다.
#
를 포함하는 부분을 해시 또는 앵커라고 합니다.
텍스트 프래그먼트에 연결하고 강조 표시할 수도 있습니다.
해시는 조각이 아닌 URL API에 의해 반환됩니다.
정규화된 도메인 이름 (FQDN)
IP 주소에 매핑되는 웹사이트 또는 서버의 전체 주소입니다.
URL | FQDN |
---|---|
https://example.com:1234/cats | example.com |
https://api.example.github.io | api.example.github.io |
기본이 아닌 포트가 사용되더라도 URL의 FQDN에는 포트가 포함되지 않습니다.
해시 (또는 앵커)
프래그먼트 식별자를 제공하는 URL 끝의 # 문자 뒤에 나오는 문자열(일부 컨텍스트에서는 '앵커'라고 함)
#
를 제외한 부분을 프래그먼트라고 합니다.
텍스트 프래그먼트에 연결하고 강조 표시할 수도 있습니다.
해시는 조각이 아닌 URL API에 의해 반환됩니다.
호스트
URL 표준에 정의된 대로 호스트는 도메인 이름, IP v4 주소, IPv6 주소, 불투명 호스트 또는 빈 호스트일 수 있습니다.
- URL 표준의
host
정의에는 포트가 포함되어 있지 않습니다. - 포트가 스키마의 기본값이 아닌 한
URL.host
에는 포트가 포함됩니다. URL.hostname
에는 포트가 포함되지 않습니다.
URL | URL.host |
---|---|
https://www.example.com:443/cat |
www.example.com // 443 is the default port for the scheme
|
https://www.example.com:1234/cat | www.example.com:1234 |
https://cat.example.github.io | cat.example.github.io |
호스트 이름
호스트 이름은 JavaScript URL
API에 의해 정의되지만 다른 곳에서는 URL 표준으로 정의되지 않습니다. 자세한 내용은 호스트 표현을 참고하세요.
URL.hostname
는 포트가 없는 호스트를 반환합니다.
URL | URL.hostname |
---|---|
https://www.example.com:443/cat | www.example.com |
https://www.example.com:1234/cat | www.example.com |
https://cat.example.github.io | cat.example.github.io |
출발지
URL 표준은 origin
를 정의하며 백그라운드의 HTML 표준으로 연결됩니다.
HTTP 또는 HTTPS URL의 경우 URL.origin
는 스키마, 호스트, 포트를 반환합니다 (포트가 스키마의 기본값이 아닌 경우).
URL | URL.origin |
---|---|
https://www.example.com:443/cat | https://www.example.com |
https://www.example.com:1234/cat | https://www.example.com:1234 |
https://cat.example.github.io | https://cat.example.github.io |
매개변수
검색 매개변수를 참조하세요.
비밀번호
사용자 이름을 참고하세요.
경로 이름
HTTP 또는 HTTPS URL의 경우, 도메인 및 포트 (정의된 경우) 뒤의 부분 (정의된 경우)에는 파일 이름은 포함되지만 검색 문자열이나 해시는 포함되지 않습니다.
URL | URL.pathname |
---|---|
https://example.com | [empty string] |
https://example.com:8000/search?q=tabby | /search |
https://example.github.io/cat/pattern#tabby | /cat/pattern |
https://example.github.io/README.md | /README.md |
'Path'는 파일 이름 없이 경로 이름을 가리키기 위해 사용되기도 합니다. 예를 들어 URL https://example.com/cat/pattern/tabby.html
의 경우 '경로'는 /cat/pattern
입니다.
포트
URL에서 네트워크 포트를 식별하는 :
다음에 오는 숫자입니다. 예를 들어 URL https://example.com:1234/tabby
의 경우 포트 번호는 1234입니다.
포트 번호는 부호 없는 16비트 정수여야 합니다. 즉, 0에서 65535 사이의 정수입니다.
HTTP URL의 경우 기본 포트는 80이고 HTTPS의 경우 기본값은 443입니다. 기본이 아닌 포트가 사용되지 않으면 URL에 포트 번호를 지정할 필요가 없습니다.
포트가 스키마의 기본값인 경우 API가 빈 문자열을 반환합니다.
URL | URL.port |
---|---|
https://example.com | // empty string |
https://example.com:443/foo | // empty string: port is default for scheme |
https://www.example.com:1234/foo | 1234 |
프로토콜
스키마 다음에 :
가 옵니다 (예: http:
또는 https:
).
URL API에서 protocol
를 사용할 수 있지만 scheme
는 사용할 수 없습니다.
쿼리 (또는 '쿼리 문자열')
URL의 검색 부분(앞 ?
제외)입니다.
등록 가능한 도메인
com
또는org
과 같이 한 부분으로 된 eTLD가 있는 URL(즉, TLD에 해당하는 eTLD)의 경우 도메인과 그 앞에 있는 두 번째 수준 도메인입니다(예:example.com
또는example.org
).- 3단계 등록만 허용되는 두 부분으로 된 eTLD를 포함하는 URL (즉,
com.au
및github.io
과 같은 공개 접미사 목록의 항목)의 경우 두 부분으로 된 최상위 도메인 ('공개 서픽스')과 그 바로 앞에 세 번째 수준 도메인 이름이 있습니다. 예를 들면example.org.au
또는example.github.io
입니다. - 세 개 이상의 부분이 있는 eTLD의 경우 eTLD와 그 앞의 도메인입니다.
스킴
URL에 대한 요청이 실행될 때 네트워크 프로토콜 (또는 사용자 에이전트가 실행할 작업)을 정의하는 URL의 부분 (://
앞)입니다. 예를 들어 https
스키마가 있는 URL에 대한 요청은 HTTPS 프로토콜을 사용하여 생성해야 합니다. 네트워크 프로토콜과 일치하지 않는 file
, mailto
, git
등의 스키마를 사용하는 URL 요청의 경우 동작은 사용자 에이전트에 따라 다릅니다. 예를 들어 사용자가 mailto
링크를 클릭하면 대부분의 브라우저에서 링크의 href
URL에 있는 값을 사용하여 기본 이메일 애플리케이션을 엽니다.
검색
물음표 다음에 오는 경로 이름 뒤에 제공된 매개변수와 그 값을 나타내는 일련의 키-값 쌍입니다.
URL | URL.search |
---|---|
https://example.com/cats?pattern=tabby&mood=bonkers | ?pattern=tabby&mood=bonkers |
https://example.com/cats:443?pattern=tabby | ?pattern=tabby |
query
또는 '쿼리 문자열'은 선행 ?
없이 search
를 참조합니다.
검색 매개변수도 참조하세요.
매개변수 검색
검색 문자열(또는 '쿼리 문자열')에 전달된 데이터 항목을 참조합니다.
- 예를 들어
https://example.com/cats?pattern=tabby&mood=bonkers
의 경우 검색 문자열에는pattern=tabby
및mood=bonkers
의 두 매개변수가 있습니다.
2차 도메인
최상위 도메인 앞의 도메인입니다.
URL
https://www.example.com
의 경우 2차 도메인은 최상위 도메인com
의 하위 도메인인example.com
입니다.https://example.org.au
의 경우 최상위 도메인은au
이고, 두 번째 수준 도메인은org
이며, 세 번째 수준 도메인은example
입니다. 이 예에서org.au
은au
의 하위 도메인이고example.org.au
은org.au
의 하위 도메인입니다.
사이트
사이트는 스킴을 포함하는 동일 사이트 및 스키마 없는 동일 사이트와 함께 HTML 표준으로 정의됩니다.
사이트가 URL 표준 또는 JavaScript URL API에 정의되어 있지 않습니다.
이 문맥에서는 다음과 같습니다.
https://example.com
와 같이 한 부분으로 된 eTLD가 있는 HTTP 또는 HTTPS URL의 경우 사이트는scheme
, eTLD, 그 앞의 라벨로 구성됩니다. 예를 들어 URL이https://www.example.com/cat
이면 사이트는https://example.com
입니다. 이 URL의 경우 eTLD는 최상위 도메인과 동일합니다.- 멀티파트 eTLD(예:
co.uk
,github.io
,sa.edu.au
)의 경우 '사이트'는scheme
, eTLD, 그 앞의 라벨로 구성됩니다. 예를 들어 URL이https://cat.example.co.uk/tabby
이면 사이트는https://example.co.uk
이고,https://www.education.sa.gov.au
이면 사이트가https://education.sa.gov.au
입니다.
URL | 사이트 (스키마 및 eTLD +1 포함) |
---|---|
https://cat.example.com/tabby | ('https', 'example.com') |
https://cat.example.co.uk/tabby | ('https', 'example.co.uk') |
하위 도메인
상위 수준 도메인 내의 도메인입니다.
com
또는 org
와 같이 한 부분으로 구성된 최상위 도메인이 있는 사이트의 경우 최상위 도메인 앞의 각 부분은 점으로 구분됩니다.
www.example.com
은(는)example.com
의 하위 도메인입니다.support.api.example.org
은example.org
의 하위 도메인인api.example.org
의 하위 도메인입니다.
세 번째 수준 등록만 허용되는 두 부분으로 된 eTLD(즉, co.uk
및 github.io
와 같은 공개 접미사 목록의 항목)의 경우 하위 도메인은 그 앞에 있는 도메인 이름의 일부입니다.
- 예를 들어
cat.example.co.uk
은example.co.uk
의 하위 도메인입니다.
텍스트 프래그먼트
페이지 내 다양한 텍스트에 링크를 걸고 강조 표시하는 데 사용하는 프래그먼트의 한 유형입니다. 사용자가 텍스트 프래그먼트가 있는 링크를 따라가면 브라우저는 페이지 내의 텍스트를 찾아 스크롤하여 강조 표시합니다.
텍스트 프래그먼트는 :~:text=
로 시작하고 그 뒤에 검색어가 옵니다.
예를 들어 이 페이지에서 처음 발견된 텍스트 '프래그먼트'에 연결하려면 URL https://web.dev/articles/url-parts#:~:text=fragment
를 사용합니다.
자세히 알아보기: 텍스트 프래그먼트
최상위 도메인 (TLD)
루트 영역 데이터베이스에 나열된 도메인 이름(예: com
또는 org
) 일부 최상위 도메인은 국가 코드 최상위 도메인(예: uk
및 tv
)입니다.
HTTP 또는 HTTPS URL의 일부를 설명할 때 TLD는 마지막 점 다음에 오는 도메인 이름입니다.
https://example.org
의 경우 URL의 최상위 도메인은org
입니다.https://example.org.au
의 경우 URL의 최상위 도메인은au
이고org
는 2차 도메인입니다 (org
도 최상위 도메인인 경우도 마찬가지).org.au
은 두 부분으로 구성된 eTLD입니다.
eTLD의 공개 접미사 목록에는 1개 또는 2개 이상의 부분으로 구성된 도메인이 포함되어 있으므로 TLD는 eTLD일 수도 있습니다. 예를 들면 다음과 같습니다.
https://example.com
의 경우 URL의 eTLD는com
이며 TLD이기도 합니다.
사용자 이름
선택사항으로 사용자 이름과 비밀번호를 URL 시작 부분에 제공할 수 있지만, 보안상의 이유로 지원 중단되었으며 대부분의 경우 무시됩니다.
예를 들어 https://user123:password1@example.com
의 경우 사용자 이름은 user123
입니다. 사용자 이름과 비밀번호는 일반 텍스트 형식이며 암호화되지 않습니다.
사용자 이름에 :
또는 @
기호가 포함된 경우 각각 %3A
및 %40
로 URL 인코딩되어야 합니다.
자세히 알아보기
- WhatWG: URL Living Standard
- WhatWG: HTML Living Standard
- URL API
- '동일 사이트' 및 '동일 출처' 이해하기
- RFC: URL (Uniform Resource Locators)
- RFC: URI, URL, URN
- 루트 영역 데이터베이스 (TLD 디렉터리)
- 공개 접미사 목록 (eTLDs 디렉터리: '공개 서픽스는 DNS 이름 또는 점으로 연결된 와일드카드의 집합입니다. 개별 등록자가 제어할 수 없는 도메인 이름의 일부를 나타냅니다.')
- ICANN 용어집
- 정규화된 도메인 이름이란 무엇인가요?
- URL을 분할하고 이름을 지정하는 방법은 몇 가지인가요?
- MDN 웹 문서 용어집
- URL이란 무엇인가요?
- URL의 기록