厳密にはそうでなくても、「ドメインを購入した」、「画像は別のサイトでホストされています」などと言えば、ほとんどの場合は問題ありません。ただし、状況によっては、より正確であることが必要になります。たとえば Cookie を扱う場合、site と origin の違いを理解する必要があります。
URL パーツの名前は標準で指定され、JavaScript API も定義されています。
- URL 標準は、エンジニアが相互運用可能なウェブブラウザを構築できるように、URL と関連概念を定義しています。
- 標準の URL API コンポーネントは、スキームやオリジンなど、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 の場合は)追加ドメイン(第 2 レベル、第 3 レベルなど)が含まれます。
- 例:
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 でも定義されていませんが、URL がディレクトリ構造に直接マッピングされるという仮定に基づき、通常は URL の最終的なパス以外の部分を参照するために使用されます。
たとえば、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
は、ポートなしで host を返します。
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 |
パラメータ
検索パラメータをご覧ください。
パスワード
username をご覧ください。
パス名
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:
)。
protocol
は URL API から使用できますが、scheme
は使用できません。
クエリ(または「クエリ文字列」)
URL の検索部分(先頭の ?
を除く)。
登録可能なドメイン
com
やorg
(TLD に対応する eTLD)などの単一パートの eTLD を含む URL の場合、ドメインとその前のセカンド レベル ドメイン(例:example.com
、example.org
)を指定します。- 第 3 レベルの登録のみが許可される 2 部構成の eTLD を持つ URL(
com.au
やgithub.io
などの公開サフィックス リストのエントリ)の場合、2 部構成のトップレベル ドメイン(「パブリック サフィックス」)とその直前の第 3 レベル ドメイン名が含まれます。たとえば、example.org.au
やexample.github.io
です。 - 3 つ以上の部分からなる eTLD の場合は、eTLD とその前のドメインが必要です。
Scheme
URL に対してリクエストが行われたときにネットワーク プロトコル(またはユーザー エージェントによって実行されるアクション)を定義する、URL の一部(://
の前)。たとえば、https
スキームの URL へのリクエストは、HTTPS プロトコルを使用して行う必要があります。file
、mailto
、git
などのスキームがネットワーク プロトコルに対応しない URL へのリクエストの場合、動作はユーザー エージェントによって異なります。たとえば、ユーザーが mailto
リンクをクリックすると、ほとんどのブラウザではリンクの href
URL の値を使用してデフォルトのメール アプリケーションが開きます。
検索
疑問符の後に、パス名の後に指定されたパラメータとその値を表す一連の Key-Value ペアが続きます。
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 つのパラメータがあります。
第 2 レベルのドメイン
トップレベル ドメインの前にあるドメイン。
URL
https://www.example.com
の場合、セカンドレベル ドメインはexample.com
(トップレベル ドメインcom
のサブドメイン)です。https://example.org.au
の場合、トップレベル ドメインはau
、第 2 レベル ドメインはorg
、第 3 レベル ドメインはexample
です。この例では、org.au
はau
のサブドメインで、example.org.au
はorg.au
のサブドメインです。
サイト
サイトは、HTML 標準で定義されており、スキームを含む same-site、スキームのない same-site があります。
サイトが URL 標準または JavaScript URL API で定義されていません。
このコンテキストでは、次のようになります。
https://example.com
のような単一部分の eTLD を持つ HTTP または HTTPS URL の場合、サイトはscheme
、eTLD、ラベルで構成されます。たとえば、URL がhttps://www.example.com/cat
の場合、サイトはhttps://example.com
です。(この URL では、eTLD はトップレベル ドメインと同じです)。co.uk
、github.io
、sa.edu.au
などのマルチパート eTLD の場合、「サイト」はその前の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」) |
origin とは異なり、site には port が含まれていません。
サブドメイン
上位レベルのドメイン内のドメイン。
トップレベル ドメインが com
や org
のように 1 つの部分で構成されるサイトの場合、トップレベル ドメインの前の部分はドットで区切られます。
www.example.com
はexample.com
のサブドメインです。support.api.example.org
は、example.org
のサブドメインであるapi.example.org
のサブドメインです。
第 3 レベルの登録のみが許可されている 2 部構成の 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 URL または HTTPS URL の部分を説明する場合、TLD は最後のドットに続くドメイン名です。
https://example.org
の場合、URL のトップレベル ドメインはorg
です。https://example.org.au
の場合、URL のトップレベル ドメインはau
で、org
はセカンドレベル ドメインです(org
もトップレベル ドメインですが)。org.au
は 2 部構成の eTLD です。
eTLD のパブリック サフィックス リストには 1 つまたは 2 つ以上の部分を持つドメインが含まれるため、TLD も eTLD になります。次に例を示します。
https://example.com
の場合、URL の eTLD は TLD でもあるcom
です。
ユーザー名
URL の先頭にオプションのユーザー名とパスワードを指定できますが、これはセキュリティ上の理由から非推奨となり、多くの場合に無視されます。
たとえば、https://user123:password1@example.com
の場合、ユーザー名は user123
です。ユーザー名とパスワードは書式なしテキストで、暗号化されていないことに注意してください。ユーザー名に :
記号または @
記号が含まれている場合は、それぞれ %3A
と %40
に URL エンコードする必要があります。
補足説明
- 内容: URL Living Standard
- 内容: HTML Living Standard
- URL API
- 「same-site」と「same-origin」について
- RFC: Uniform Resource Locator(URL)
- RFC: URI、URL、URN
- ルートゾーン データベース(TLD のディレクトリ)
- パブリック サフィックス リスト(eTLDs のディレクトリ: 「パブリック サフィックスは、ドットで連結された DNS 名またはワイルドカードのセットです。個々の登録者の管理下にないドメイン名の部分を表します)。
- ICANN 用語集
- 完全修飾ドメイン名とは何ですか?
- URL をスライスして名前を付ける方法はいくつありますか。
- MDN ウェブ ドキュメントの用語集
- URL とは何ですか?
- URL の履歴