URIの複雑要素とその意味
公開: 2025年06月19日
前回、URIの基本構文である「スキーム」「ホスト」「パス」について解説しました。
今回は、基本構文に加えた複雑なURI構文を見ていきます!
関連記事もご覧ください!
以下のような、より複雑な構文を持つ URI を見てみましょう。
http://yohei.pass@blog.example.jp:8000/search?q=test&debug=true#n10この URI に含まれる主な構文の要素は次の通りです:
スキーム:http
ユーザ情報:yohei.pass
ホスト名:blog.example.jp
ポート番号:8000
パス:/search
クエリパラメータ:q=test&debug=true
フラグメント:#n10
🧑💻 ユーザ情報
http://**yohei.pass**@~ のように、URIスキームの直後に現れる部分です。
これは、アクセス先のリソースに対して認証が必要な場合に使われ、ユーザ名とパスワードを : で区切って指定できます。
ユーザ名:パスワード@ホストこの記法は近年ではあまり使わず、基本認証はヘッダーで行うのが一般的です。
🌐 ホスト情報とポート番号
blog.example.jp:8000 のように、ホスト名とポート番号が : で区切られて指定されています。
ホスト名は、インターネット上で一意なドメイン名(またはIPアドレス)
ポート番号は、省略時はデフォルト(HTTPは80、HTTPSは443)
📂 パス
/search の部分は、ホスト内のリソースを一意に示す階層構造です。
❓ クエリパラメータ
パスの直後に ? を挟み、名前=値 の形式でデータを渡します。
?q=test&debug=trueクエリが複数ある場合は & でつなげます
Web検索や絞り込み、ページネーションなどでよく使われます
この全体を「クエリ文字列」や「クエリパラメータ」と呼びます
🔗 フラグメント識別子(ハッシュ)
#n10これは、指定されたリソースの中の特定部分を示します。
たとえば リソースがHTML 文書だった場合、id="n10" の要素にジャンプします。
今回は、URI のより複雑な構文として、ユーザ情報・ポート番号・クエリパラメータ・フラグメントといった要素について解説しました。
これらのパーツは、ただの文字列ではなく、Web 上でリソースを正確に指定するための意味ある構文要素です。
特にクエリパラメータは、僕も個人開発で検索フィルター機能を実装した際に活用しました。
これらの複数の要素は、ユーザーにとって柔軟な検索体験を提供できる重要な仕組みです。
次回は絶対URIと相対URIについての内容です!
