感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

REST,HTTP,良いURLなど、Webにまつわる用語のまとめ。

<スポンサーリンク>

REST

RESTはRepresentational State Transferの略。
Representationは「表現」という意味。Stateは「状態」。

だから、Representation Stateは「表現可能な状態」のことを指す。

表現可能というのは「リソースが表現できる」という意味で、あるリソースの状態を表現したものがサーバからクライアントに転送されるのがRESTである。
ここでいうリソースというのは、コンピュータ上に存在する情報やデータなど、「何か」に対して名前をつけられるもののことをリソースという。

URL

URL(Uniform Resource Locator)は、インターネット上のさまざまなリソースに対する統一的な名前の付け方についての取り決めのこと。
リソースというのは、具体的にはHTML文書・画像・動画・プログラムなど。
それらの固有の所在位置を指し示すのがURLである。つまり、URLとは、そのリソースの名前であるとも言える。
わかりやすいURLは、リソースの名前として、「名詞」でなければいけない。
HTTPのリクエスト・メッセージではGETとかDELETEとかあるんだけれど、URLが動詞だったら意味不明になる。

http://www/hate/getBlog

みたいなURLにDELETEのリクエストを送ったら、GetしたいのかDELETEしたいのかわからなくなってしまう。

ちなみに、「WEB+DB PRESS vol.42」では、良いURLとは、

  • シンプル
  • 余計な文字列が入っていない
  • 名詞だけで構成されている
  • 永続的なリンク(Permalink)が提供されている

ものとされている。

このWEB+DB PRESS vol.42っていうのは、なんと2008年に出たものだが、今でも言われていることはあんまし変わっていないと思う。

HTTP

Hypertext Transfer Protocolの略。
HTMLなどのテキストファイルや、そこに紐付けられている画像、その他のリソースをクライアントの要求に従って返信するためのプロトコルのこと。
HTTPは単にリソースの送受信を行うだけのプロトコルで、受け取ったHTMLファイルの表示自体はHTTPの役割とは完全に分離している。
HTTPはHTMLファイルの転送以外にも、XMLの転送などにも使われる。

HTTPのメソッドは、

  • GET
  • PUT
  • DELETE
  • POST

などがある。
GETメソッドは副作用がないと言われていて、Safeなメソッドであるとも言われる。
あるリソースをGETメソッドはしたとしても、絶対にそのリソースの状態はかわらないことが保証されている。
だから、副作用がない。

PUTとDELETEは「冪等性(べきとうせい)」が求められる。
冪等性は英語で言うと、idempotent。
冪等性とは、何度同じメソッドを投げても結果が同じであるという意味である。
つまり、不安だったら何発実行してもいいよ~というのが「べき等である」状態のこと。。

PUTは今あるリソースの更新に使用する。
DELETEは読んで字のごとく、リソースを消すために使用する。
何度DELETEしても、既にDELETEしたら元に戻ることもなければ、状態がかわることもない。

POSTはあるURLとは、に従属するリソースを作成したり、URLに対して新しい状態を追加する時に使う。
POSTはべき等ではない。

XML

Extensible Markup Languateの略。
XMLはデータとともに、そのデータのフォーマットや構造や表示方法なども含んだメタデータである。
1998年2月に、インターネットの標準仕様としてW3Cより勧告された。
XMLSGMLという文書のデータベース化を目的としたマークアップ言語として仕様を考案された。

統一インターフェース

Uniform Intarface
RESTに従った実際のWebアーキテクチャとしてROAといいうアーキテクチャが提唱されている。
ROAとは、Resource-Oriented-Architectureの略。読んで字のごとく、リソースを主体として考えていく方式のことをいう。
「REST + α」がROAの位置づけのようだ。

参考にした本

WEB+DB PRESS Vol.42

WEB+DB PRESS Vol.42

5年も前に出たバージョンだけど、今でも新しいような気がする。
参考になった。