URIについて

このような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」である要素を示すことになります。