URLとは
URLは、一言で言うとインターネット上の住所のことです。
正式名称は Uniform Resource Locator(ユニフォーム・リソース・ロケータ)といい、世界中に存在するWebサイトや画像、ファイルなどが「インターネットのどこにあるのか」を特定するために使われます。
私たちがブラウザ(ChromeやSafariなど)の検索バーに入力する文字列が、まさにこのURLにあたります。
URLの構成
例として、以下の架空のURLを分解してみましょう。
https://www.example.co.jp:443/shop/item.html?id=123#detail
① プロトコル(スキーム): https://
通信のルールです。http(通常)、https(暗号化あり)、ftp(ファイル送受信用)などがあります。現在はセキュリティの高い「https」が一般的です。
② サブドメイン: www.
昔のインターネットでは、1台のサーバーで何でもこなすのではなく、サービス(プロトコル)ごとにサーバーを分けるのが一般的でした。そのため、ユーザーがアクセス先を迷わないように「役割」を名前に付けていました。
www: World Wide Web(Webサイト用)
mail: メールサーバー用
ftp: ファイル転送用
現在では、1台の高性能なサーバー(または仮想サーバー)が複数の役割を兼ねることが増えましたが、その名残で「Webサイトといえば www」という慣習が続いています。wwwがないURLも多いく、ネイキッドドメイン(裸のドメイン)と呼びます。
③ ドメイン名: example.co.jp
インターネット上のコンピューターを識別するための、人間が覚えやすい名前です。ネットワークの技術的な裏側では、すべてのコンピューターは「IPアドレス(例:192.0.2.1)」という数字の羅列で場所を管理されています。しかし、数字だけでは覚えにくいため、文字に置き換えたものがドメイン名(例:google.com)です。
④ ポート番号: :443
ドメイン名が建物の住所だとすれば、ポート番号は部屋番号に例えられます。ひとつのサーバー(建物)の中では、Webサイトを表示するプログラム、メールを送るプログラム、ファイルを転送するプログラムなど、複数のサービスが同時に動いています。ポート番号は、届いた通信を「どのプログラムに渡すべきか」を交通整理するための番号です。
よく使われるサービスには、あらかじめ予約された「決まった番号」があります。これをウェルノウンポート(0~1023番)と呼びます。
80: HTTP(暗号化されていないWeb通信)
443: HTTPS(現在の主流。暗号化された安全なWeb通信。)
25S: MTP(メールの送信。)
22: SSH(サーバーを遠隔操作するための安全な通信。)
53: DNS(ドメイン名をIPアドレスに変換する通信。)
私たちが普段見ているURLにもポート番号が含まれていますが、標準的な番号(80や443)の場合はブラウザが自動的に省略して表示しています。
https://example.com
実体は:https://example.com:443
もし、標準とは違う番号(例:開発テスト用で8080番を使う場合など)で動いているサイトにアクセスするには、URLの末尾に :8080 と明示する必要があります。
⑤ パス: /shop/item.html
サーバー内での情報の保管場所を指します。上記では「shop」という名前のフォルダ(ディレクトリ)の下にあるitem.htmlを指定しています。
⑥ クエリパラメータ: ?id=123
サーバーに渡す追加の条件・指定です。?名前=値の形式で、上記では「123番の商品を表示して」といった命令を送っています。
⑦ フラグメント(アンカー): #detail
通常のURLがどのページを開くかを指定するのに対し、フラグメントはそのページの中のどこを表示するかを指定します。例えば、非常に長いWebページ(利用規約やQ&Aなど)で、特定の項目をすぐに読んでもらいたい場合に、その場所まで自動的にスクロールさせるために使われます。