ほとんどの場合、「ドメインを購入しました」や「画像は別のサイトでホストされています」など、厳密には正しくなくても問題ありません。ただし、コンテキストによっては、より正確にする必要があります。たとえば、Cookie を扱う場合は、サイトとオリジンの違いを理解する必要があります。
URL 部分の名前は、JavaScript API も定義する標準で指定されています。
- URL 標準では、エンジニアが相互運用可能なウェブブラウザを構築できるように、URL と関連コンセプトが定義されています。
- 標準の URL API コンポーネントは、URL 文字列の一部(スキームやオリジンなど)にアクセスするためのメソッドを定義します。
このドキュメントでは、HTTP または HTTPS の URL 文字列で使用されるさまざまな用語について説明します。ファイル 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)
Public Suffix List のエントリ(TLD と、複数の部分を持つ eTLD の場合はその下位のドメイン(2 番目、3 番目など)を含む)。
- 例:
com
、com.au
、github.io
、sa.edu.au
、schools.nsw.edu.au
。
これらの例のような「パブリック サフィックス」は、ドメインを登録できる名前です。Public Suffix List は、既知のすべての公開サフィックスのリストであり、頻繁に更新されます。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
は、ポートのないホストを返します。
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 の場合は、ドメインとポート(定義されている場合)の後の部分(filename(定義されている場合)を含むが、検索文字列やハッシュは含まない)。
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 |
「パス」は、ファイル名のないパス名を指すために使用されることがあります。たとえば、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
などの単一部分の eTLD(TLD に対応する 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 の値を使用して、デフォルトのメール アプリケーションを開きます。
検索
pathnameの後に指定される、パラメータとその値を表す一連の 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
の場合、第 2 レベル ドメインはexample.com
で、トップレベル ドメインcom
のサブドメインです。https://example.org.au
の場合、トップレベル ドメインはau
、第 2 レベル ドメインはorg
、第 3 レベル ドメインは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 はトップレベル ドメインと同じです)。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
など、単一部分のトップレベル ドメインを持つサイトの場合は、トップレベル ドメインの前の部分(各部分はドットで区切ります)。
www.example.com
はexample.com
のサブドメインです。support.api.example.org
はapi.example.org
のサブドメインであり、api.example.org
はexample.org
のサブドメインです。
サードレベルの登録のみが許可される 2 つの部分からなる eTLD(Public Suffix List のエントリ(co.uk
や github.io
など))の場合、サブドメインはサードレベルの前に来るドメイン名の部分です。
- 例:
cat.example.co.uk
はexample.co.uk
のサブドメインです。
テキスト フラグメント
ページ内のテキストの範囲へのリンクとハイライト表示を可能にするフラグメントの一種。ユーザーがテキスト フラグメントを含むリンクをクリックすると、ブラウザはページ内のテキストを検索し、スクロールしてハイライト表示しようとします。
テキスト フラグメントは :~:text=
で始まり、その後に検索キーワードが続きます。
たとえば、このページでテキスト「fragment」が最初に出現する場所にリンクするには、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
は 2 つの部分からなる eTLD です。
eTLD の Public Suffix List には、1 つ、2 つ、または複数の部分を持つドメインが含まれているため、TLD は eTLD にもなり得ます。次に例を示します。
https://example.com
の場合、URL の eTLD はcom
で、これは TLD でもあります。
ユーザー名
URL の先頭にユーザー名とパスワードを指定することもできますが、セキュリティ上の理由から非推奨となっており、多くの場合無視されます。
たとえば、https://user123:password1@example.com
の場合、ユーザー名は user123
です。ユーザー名(とパスワード)は平文で、暗号化されていないことに注意してください。ユーザー名に :
または @
の記号が含まれている場合は、それぞれ %3A
と %40
に URL エンコードする必要があります。
補足説明
- WHATWG: URL リビング スタンダード
- WHATWG: HTML Living Standard
- URL API
- 「同一サイト」と「同一オリジン」について
- RFC: Uniform Resource Locators(URL)
- RFC: URI、URL、URN
- ルートゾーン データベース(TLD のディレクトリ)
- 公開サフィックス リスト(eTLDs のディレクトリ): 「公開サフィックスは、ドットで連結された DNS 名またはワイルドカードのセットです。個々の登録者の管理下にないドメイン名の部分を表します。」)
- ICANN 用語集
- 完全修飾ドメイン名とは何ですか?
- URL をスライスして名前を付ける方法はいくつありますか?
- MDN Web Docs 用語集
- URL とは何ですか?
- URL の履歴