メインコンテンツにスキップ

URL構造を理解する 🔗

毎日インターネットを使いながらURLを見ていますが、各部分が何を意味するのかよく分からないかもしれません。URLの構造を理解すれば、Web開発がずっと簡単になります!一つずつ見ていきましょう。

URLを日常生活に例えると?

URLを郵便住所に例えてみましょう。

郵便住所の話 📬

日本 東京都 新宿区 西新宿 1-2-3 ABCビル 5階 501号室
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
国 都道府県 区 町 番地 建物 階 部屋番号

URLも似ています:

https://www.example.com:443/products/shoes?color=red&size=10#reviews
↓ ↓ ↓ ↓ ↓ ↓
プロトコル ドメイン ポート パス クエリ文字列 ハッシュ

URLの定義

URL (Uniform Resource Locator)

  • インターネット上のリソース(ページ、画像、ファイルなど)の場所を示すアドレス
  • 「Webアドレス」または「リンク」とも呼ばれます

URL全体構造を一目で見る

https://user:pass@www.example.com:443/products/shoes?color=red&size=10#reviews
└──┬─┘ └────┬────┘└───────┬───────┘└┬┘└──────┬──────┘└────────┬────────┘└──┬──┘
プロトコル 認証情報 ドメイン ポート パス クエリ文字列 ハッシュ/フラグメント

一つずつ詳しく見ていきましょう!

1. プロトコル (Protocol) 🔐

Webサイトに接続する方法

https://example.com
└──┬─┘
プロトコル

主要なプロトコル

HTTP (HyperText Transfer Protocol)

http://example.com
  • 通常のWebサイト接続方法
  • セキュリティなし ⚠️
  • データが暗号化されない
  • 最近はほとんど使用されない

HTTPS (HTTP Secure)

https://example.com
  • セキュリティのある Webサイト接続方法 🔒
  • データが暗号化される
  • 現代のWebサイト標準
  • 鍵アイコン 🔒 表示

その他のプロトコル

ftp://example.com      # ファイル転送
mailto:user@email.com # メール送信
file:///C:/folder # ローカルファイル
ヒント

常にHTTPSを使用しましょう! 特にログイン、決済、個人情報入力時はHTTPSかどうか必ず確認してください。

2. ドメイン (Domain) 🌐

Webサイトの名前

https://www.example.com
└──────┬──────┘
ドメイン

ドメイン構造

www.example.com
└┬┘ └──┬──┘└┬┘
サブ 名前 TLD
ドメイン (トップレベルドメイン)

トップレベルドメイン (TLD - Top Level Domain)

.com  →  商業的(最も一般的)
.net → ネットワーク
.org → 組織/非営利
.edu → 教育機関
.gov → 政府
.io → IT/スタートアップ(人気)
.co.jp → 日本企業

サブドメイン (Subdomain)

www.example.com      →  Webサイト
blog.example.com → ブログ
api.example.com → APIサーバー
admin.example.com → 管理ページ

実際の例

https://blog.example.jp
└┬┘ └───┬──┘└┬┘
サブ メイン TLD
ドメイン ドメイン

3. ポート (Port) 🚪

サーバーのどのドアから入るか

https://example.com:443
└┬┘
ポート

デフォルトポート

通常は省略されます(自動的に追加されます):

http://example.com       →  http://example.com:80 (自動)
https://example.com → https://example.com:443 (自動)

一般的なポート番号

ポート用途
80HTTP (Web)
443HTTPS (セキュアWeb)
21FTP (ファイル転送)
22SSH (リモート接続)
3000開発サーバー (Node.js)
3306MySQLデータベース
5432PostgreSQL
8080代替HTTP

開発中は?

http://localhost:3000      # React開発サーバー
http://localhost:8080 # Spring Boot
http://127.0.0.1:5000 # Flask/Python

4. パス (Path) 📂

Webサイト内の特定のページやフォルダ

https://example.com/products/shoes/nike
└────────┬────────┘
パス

パス構造

/products/shoes/nike
└┬┘ └┬┘ └┬┘
カテゴリー 詳細 ブランド

実際のフォルダ構造のように考えましょう:

Webサイト
├── products/
│ ├── shoes/
│ │ ├── nike/
│ │ └── adidas/
│ └── clothes/
└── about/

実際の例

https://github.com/facebook/react
└──────┬──────┘
パス
/ユーザー/リポジトリ

5. クエリ文字列 (Query String) 🔍

追加情報や検索条件

https://example.com/search?q=javascript&sort=popular&page=2
└──────────────┬──────────────┘
クエリ文字列

構造

?key1=value1&key2=value2&key3=value3
└┬┘ └──┬──┘ └──┬──┘ └──┬──┘
開始 最初 区切り 3番目
(キー=値) (&) (キー=値)

実際の使用例

検索

https://google.com/search?q=javascript
└─────┬────┘
検索語: javascript

フィルタリング

https://shop.com/products?category=shoes&color=red&size=10
└────────────┬────────────────┘
カテゴリー:shoes, 色:red, サイズ:10

ページネーション

https://blog.com/posts?page=2&limit=20
└──────┬──────┘
2ページ目、20件ずつ

注意事項

日本語や特殊文字はエンコードが必要です:

元: ?q=javascript
エンコード: ?q=javascript
ヒント

URL Encoderで簡単にエンコードできます!

6. ハッシュ/フラグメント (Hash/Fragment) #️⃣

ページ内の特定の位置

https://example.com/docs#installation
└─────┬────┘
ハッシュ

用途

1. ページ内移動

<a href="#section1">セクション1に移動</a>

<h2 id="section1">セクション 1</h2>

2. SPA (Single Page Application)

https://app.com/#/home
https://app.com/#/profile
https://app.com/#/settings

特徴

  • サーバーに送信されない
  • ブラウザでのみ使用
  • ページをリロードせずに移動

実践例

例1: ショッピングモール 🛍️

https://shop.example.com/products/electronics/laptops?brand=apple&price=1000-2000&sort=price#reviews

プロトコル: https
ドメイン: shop.example.com
パス: /products/electronics/laptops
クエリ文字列:
- brand=apple (Apple製品のみ)
- price=1000-2000 (価格範囲)
- sort=price (価格順でソート)
ハッシュ: #reviews (レビューセクションに移動)

例2: 検索エンジン 🔍

https://www.google.com/search?q=web+development&hl=ja&page=1

プロトコル: https
サブドメイン: www
ドメイン: google.com
パス: /search
クエリ文字列:
- q=web+development (検索語)
- hl=ja (日本語)
- page=1 (最初のページ)

例3: YouTube動画 🎥

https://www.youtube.com/watch?v=dQw4w9WgXcQ&t=30s

プロトコル: https
ドメイン: www.youtube.com
パス: /watch
クエリ文字列:
- v=dQw4w9WgXcQ (動画ID)
- t=30s (30秒の時点から再生)

URLパーシングツールの使用

URL Params Parser

URL Params Parserで:

  • URLを貼り付けると各部分を自動分析
  • クエリ文字列パラメータのリストを表示
  • エンコード/デコードの自動処理

よくある質問 (FAQ)

Q1: wwwがなくても大丈夫ですか?

A: はい!最近はwwwを省略する傾向があります。

https://example.com  ✅
https://www.example.com ✅ (同じサイト)

Q2: URLの長さ制限はありますか?

A: 技術的には2000文字程度が安全です。しかし、短いほど良いです!

Q3: 大文字小文字を区別しますか?

A: 部分によって異なります!

ドメイン: 区別しない
Example.com = example.com ✅

パス: 区別する (サーバー設定による)
/About ≠ /about ⚠️

Q4: 特殊文字を使用できますか?

A: 一部のみ可能で、ほとんどはエンコードが必要です!

安全な文字: A-Z a-z 0-9 - _ . ~
エンコード必要: スペース、日本語、?, &, #, %, / など

良いURL作成のヒント 💡

1. 短く明確に

❌ https://example.com/p?id=12345&cat=3&subcategory=5
✅ https://example.com/products/shoes/nike-air

2. 意味のある単語を使用

❌ /page1.php
✅ /about-us

❌ /item?id=123
✅ /products/laptop-dell-xps

3. 小文字を使用

❌ /Products/SHOES
✅ /products/shoes

4. ハイフン(-)を使用 (アンダースコアX)

❌ /web_development
✅ /web-development

5. 不要な単語を削除

❌ /and-the-product-is-shoes
✅ /products/shoes

URLデバッグ

URLが動作しない時に確認すること:

チェックリスト

  1. ✅ プロトコルがありますか? (https://)
  2. ✅ ドメインのスペルは正しいですか?
  3. ✅ パスは存在しますか?
  4. ✅ クエリ文字列の形式は正しいですか? (?key=value&key2=value2)
  5. ✅ 特殊文字はエンコードされていますか?

ツールの使用

次のステップ 🚀

URL構造を理解したら:

  1. HTTPリクエスト/レスポンスを理解する - URLでどのようにデータをやり取りするか
  2. URL Encoder - URLエンコード/デコードの練習
  3. URL Params Parser - URL分析ツール
  4. API Tester - URLでAPIリクエストする
  5. エンコーディングとは? - URLエンコーディングを詳しく知る

まとめ

URLはインターネットのアドレスです! 🏠

覚えておくポイント:

  • プロトコル: https:// (セキュリティあり) vs http:// (セキュリティなし)
  • ドメイン: Webサイト名 (example.com)
  • ポート: 通常省略 (443, 80)
  • パス: ページの場所 (/products/shoes)
  • クエリ文字列: 追加情報 (?color=red&size=10)
  • ハッシュ: ページ内の位置 (#section1)

URL構造を理解すれば、Web開発がずっと簡単になります! 🎉

これでWebサイトのアドレスを見たら、各部分が何を意味するのか分かりますね?