用語辞典・インターネット全般

URL

URLとは

URL(Uniform Resource Locator/ユニフォーム・リソース・ロケーター)は、インターネット上の資源の場所と取得方法を示す文字列で、Webではアドレスとして使われます。Webページだけでなく、画像、動画、APIの接続先などもURLで示せます。

URL全体を一つの名前として読むのではなく、通信方法接続先接続先の中の場所追加条件へ分けると意味が見えます。とくに安全確認では、パス中の会社名よりドメイン名を正確に読むことが重要です。

URLの構造記号を境界にして各部分を読む
https://shop.example.jp:443/items/42?color=blue#details

スキーム利用する方法

ホスト接続先

ポート接続先の受付口

パス資源の場所

クエリ検索・絞り込みなどの条件

フラグメント資源内の位置

図1すべてのURLが六部分を持つわけではありません。HTTPSの既定ポート443は通常省略され、クエリやフラグメントも必要な場合だけ付きます。

URLを構成する部分

スキーム
httpshttpfileなど、URLをどの仕組みで扱うかを示します。WebではHTTPSが一般的です。
ホスト
shop.example.jpの部分です。Webではドメイン名やIPアドレスが使われ、接続先を決める中心になります。
ポート
同じホスト上のどのサービスへ接続するかを示すポート番号です。スキームの既定値を使う場合は省略できます。
パス
/items/42のように、接続先の中で求める資源を示します。見た目がフォルダー名でも、実際の保存構造と一致するとは限りません。
クエリ
?以降で、検索語、並び順、ページ番号などの追加情報を渡します。形式と意味は接続先のサービスが決めます。
フラグメント
#以降で、同じ文書内の見出しなど、資源の中の位置を示します。Webブラウザでは通常、サーバーへ送らずブラウザ側で利用します。

URLを開くときの流れ

URLから表示まで文字列の各部分が別の段階で使われる
  1. 1
    スキームを読むHTTPSとして処理する
  2. 2
    ホストを名前解決DNSで接続先IPを調べる
  3. 3
    サーバーへ接続指定または既定のポートを使う
  4. 4
    パスとクエリを要求必要な資源と条件を伝える
  5. 5
    フラグメントへ移動受信後にブラウザが該当位置を表示
図2HTTPSのURLでは、ブラウザはホストの名前解決と接続を行った後、パスやクエリで指定された資源を要求します。フラグメントはその応答を受け取った後の表示位置に使われます。

絶対URLと相対URL

https://example.jp/guide/start/のようにスキームとホストを含む形は、単独で接続先を決められる絶対URLです。../images/map.png/contact/のように一部を省いた形は、基準となるURLと組み合わせて解釈する相対URLです。

同じ相対URLでも、どのページを基準にするかで完成するURLが変わる場合があります。ローカルのHTMLファイルを直接開いたときと、Webサーバー上へアップロードしたときにCSSや画像の参照結果が変わるのは、基準URLや先頭の/の扱いが異なるためです。

URLとドメイン名の違い

ドメイン名はURLの一部分です。たとえばhttps://support.example.jp/account/reset?lang=jaでは、ドメインに関係するホスト部分はsupport.example.jpです。それより後ろのexample.jp.evil.exampleのような文字列は別のドメイン階層として読む必要があります。

URLが長い場合でも、最初にスキーム、その次に/が二つ続いた後のホストを探します。ログインや支払いを行う前には、見覚えのある単語が含まれるかではなく、実際のドメイン名が正しいかを確認します。

クエリへ入れた情報はURLに残る

クエリはアドレス欄、閲覧履歴、ブックマーク、アクセスログ、共有した文字列などへ残る可能性があります。パスワード、秘密鍵、本人確認番号など、漏れてはいけない情報をURLへ含める設計は避けます。

HTTPSはURLのパスやクエリを通信途中から読み取りにくくしますが、接続先のサーバー自身には要求として届きます。端末画面や履歴から見えなくなるわけでもありません。

仕様の確認資料:WHATWG「URL Standard」RFC 3986

関連用語