RESTにおいてリソースは重要な概念。
本記事にはリソースについてまとめています。
リソース
Webにおけるリソースの例。
- 東京の天気予報
- 技術評論者の「Webを支える技術」のページ
- 新横浜駅の写真
上記はいずれもリソースで、Web上には多様なリソースが存在する。
リソースを一言で表すと、「Web上に存在する、名前を持ったありとあらゆる情報」
リソースが名前を持つとはどうゆうことか?
人間の場合は、同姓同名の人も多く存在するが、そのくらい曖昧でも特に問題はない。
プログラムの場合は同姓同名を見分けてくれないので、名前は必ず他のものと区別できる必要がある。リソースの名前は、あるリソースを他のリソースと区別して指し示すためのもの。
リソースの名前としてのURI
リソースの名前とはURIのこと。
冒頭で取り上げたリソースは、下記のようなURIで識別できる。
- 東京の天気予報
- 技術評論者の「Webを支える技術」のページ
- 新横浜駅の案内図
- リソースとは、Web上の情報である
- 世界中の無数のリソースは、それぞれURIで一意の名前を持つ
- URIを用いることで、プログラムはリソースが表現する情報にアクセスできる
複数のURIを持つリソース
1つのリソースは複数のURIを持つことができる。
例えば、もし今日が2010/1/1の場合、次の2つのURIは同じリソースを指す。
それぞれ同じリソースを指すが、URIの意味合いが異なります。
最初のURI:「今日の東京の天気」
二番目のURI:「2010/1/1の東京の天気」
リソースに別名のURIをいくつか付けることで、クライアントがリソースにアクセスしやすくなる。一方で、どれが正式なURIか分かりづらいという欠点も併せ持つ。
リソースの表現と状態
「リソース」は”Web上に存在する情報”という抽象的な概念。
サーバーとクライアントの間で実際にやり取りするときには、何らかの具体的なデータを送信しあいます。この具体的にやりとりするデータのことを「リソースの表現」という。
1つのリソースは複数の表現を持つことができる。HTML形式でも、テキスト形式でも、PDFでも、画像でも、表現が可能。HTTPの仕組みを利用すれば、1つのURIで複数の表現が可能。
またリソースには状態が存在する。時間の経過に従ってリソースの状態が変化すると、その表現も変化する。天気予報の例で言えば、現在の予報が「晴れ」でも、数時間後には「曇り」に状態が変化するかもしれない。
参考文献
技術評論者「Webを支える技術」