ウェブ開発者なら必ず知っておくべき基礎知識(4)URI(URL)参照
2016/11/03
URI(URL)参照とはURI全体又はURIの一部によるリソースの参照のことです。
URI参照には絶対的な参照と相対的な参照があります。
絶対的な参照はURI全体による参照のことでURIさえあればリソースが一意的に参照できます。
たとえば、http://www.abc.org:1234/foo/bar.txt?param1=a¶m2=b#fragment
というURIはこれだけで1つのリソースを一意的に参照することができます。
相対的な参照はURIのパス部分とクエリ部分とフラグメント部分のみによる参照やフラグメント部分のみによる参照のことで基準となるURIからの相対位置を示すことでリソースを参照します。
URIのパス部分とクエリ部分とフラグメント部分のみによる参照は絶対パス参照と相対パス参照に分けられます。
絶対パス参照とはURIのパス部分の前に/
が付いているもののことで、基準となるURIのルートパスからの相対位置を表します。
たとえば、基準となるURIがhttp://www.abc.org:1234/foo/bar.txt?param1=a¶m2=b
であり、絶対パス参照が/baz/qux.txt?param3=c¶m4=d
である場合にはこの絶対パス参照はhttp://www.abc.org:1234/baz/qux.txt?param3=c¶m4=d
というURIのリソースを参照します。
相対パス参照とはURIのパス部分の前に/
が付いていないもののことで、基準となるURIの現在の階層からの相対位置を表します。
たとえば、基準となるURIがhttp://www.abc.org:1234/foo/bar.txt?param1=a¶m2=b
であり、相対パス参照がbaz/qux.txt?param3=c¶m4=d
である場合にはこの相対パス参照はhttp://www.abc.org:1234/foo/baz/qux.txt?param3=c¶m4=d
というURIのリソースを参照します。
なお、相対パス参照を使用する場合には..
という特別な表記をセグメントとして使用することができます。これは現在の階層の1つ上の階層を表します。
たとえば、基準となるURIがhttp://www.abc.org:1234/foo/bar/baz.txt?param1=a¶m2=b
であり、相対パス参照が../qux.txt?param3=c¶m4=d
である場合にはこの相対パス参照はhttp://www.abc.org:1234/foo/qux.txt?param3=c¶m4=d
というURIのリソースを参照します。また、相対パス参照が../../qux.txt?param3=c¶m4=d
である場合にはこの相対パス参照はhttp://www.abc.org:1234/qux.txt?param3=c¶m4=d
というURIのリソースを参照します。
フラグメント部分のみによる参照は基準となるURIのリソースのフラグメント部分によって指示される部分を参照します。
たとえば、基準となるURIがhttp://www.abc.org:1234/foo/bar.txt?param1=a¶m2=b#frangment
であり、フラグメント部分のみによる参照が#fragment2
である場合にはこの参照はhttp://www.abc.org:1234/foo/bar.txt?param1=a¶m2=b
というURIのリソースの#fragment2
によって指示される部分を参照します。
