このようなURIがあったとします
http://yohei:pass@blog.example.jp:8000/serch?q=test&debug=true"n10
このURIは次のように分けられます。
- URIスキーム: http リソースにアクセスする通信手段を表す文字列
- ユーザー情報: yohei:pass
- ホスト名: blog.example.jp
- ポート番号: 8000
- パス: 8000
- クエリパラメータ: q=test&debug=true
- URIフラグメント: #n10
※オーソリティ = ユーザー情報+ホスト+ポート番号
ユーザー情報は省略して記載することもできる。
ポート番号も代表的なもの(HTTP, HTTPSなど)であれば省略して記載できる。
よって、ホスト名だけでもアクセスすることができます。
パス
階層的に管理されているリソースへの場所を表す(省略可)
クエリ
パスに加えて付加的な情報をサーバーに送信するために使う。
パスの後ろに区切り文字である「?」が付き、名前=値形式のクエリが続きます。
この例ではq=testとdebug=trueがそれぞれクエリです。クエリが複数あるときは「&」で連結します。この1つ以上のクエリの集合をクエリパラメータと呼びます。クエリパラメータは、例えば検索サービスに検索キーワードを渡すときなど、クライアントから動的にURIを生成するときに利用する。
フラグメント
リソースの一部を指定するために用いる
リソース内部のさらに細かい部分を特定する時に利用します。例えば、このリソースがHTML文書だった場合は、id属性の値が「n10」である要素を示すことになります。