kidoOooOoooOOom

IT系で開発やってます

Webを支える技術

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
HTTP, URI, HTMLそしてRESTといったWebの上位層(アプリケーション層)の技術について解説した本。

Webの構成は基本的に、

  1. URIで示されたアドレスに対し
  2. HTTPで通信し
  3. HTMLなどで記述されたリソースを取得する

という流れで成り立っており、Webで食っていく人たちにとってこれらの技術は基礎中の基礎と言ってもいいかもしれない。


本書の第1部では「Web概論」としてWebの歴史が語られており、その中でWeb APIをめぐる議論として「SOAP対REST」についても述べられている。
この「SOAP対REST」というテーマはかなり根深い問題でもある。

そして本書ではハッキリと「REST側に軍配が上がった」と述べている。2004年から始まったWeb 2.0の流れの中で、GoogleAmazonといった企業がREST形式のWeb APIを提供し始め、今やその形式が一般的となったからである。

本書ではSOAPとWS-*が敗因した理由として、

  • とにかく複雑な仕様群
  • RPC/分散オブジェクトが持つ技術的な問題点を継承している
  • 同じSOAPやWS-*でもベンダーによって解釈に違いがあり、相互運用性に欠けている

といった点を挙げている。

また、以下のようなSOAPの皮肉記事を見てみると、これらの敗因が具体的に理解できるかもしれない。

SOAPのSはシンプルのS
http://yohei-y.blogspot.com/2007/01/s-s.html

(※ 後で気づいた。↑は本書の著者が書いた記事なのね。)


ちなみに私はRESTのスタイルに賛同している。学生の頃からインターネットの世界に魅力されてきた者として、Webのオープンでシンプルなアーキテクチャが好きだ。
ただ、『SOAPとWS-*は完全に駄目な技術!存在価値無し!』と否定しているわけではなく、SOAPにはSOAPの良いところがもちろん存在している。「この場面ではSOAP、この場面ではREST」といった適材適所な使い分けをしていくのが良いと考えられる。その辺の使い分けについては以下のサイトが参考になる。

Web 2.0時代のWebServices 〜SOAP/REST使い分けの指針
http://www.xmlconsortium.org/wg/web2.0/teigensho/4--REST-SOAP.html

また本書の第3部ではたっぷりHTTPについて解説されており、浅い知識しか持っていなかった自分にとって非常に勉強になった。巻末にはHTTPのステータスコード一覧とヘッダ一覧が解説付きで掲載されているので、HTTPのリファレンス本としても使えそうだ。

以前紹介した「ネットワークはなぜつながるのか」も合わせて読むと理解が深まると思う。本書のタイトルは「Webを支える技術」であるが、「ネットワークはなぜつながるのか」では、その更に"下位の層を支える技術"を解説している。
http://d.hatena.ne.jp/gidooom+TK/20100814/1281778929


本書のあとがきにあるように、Webを支える技術は現在進行形でどんどん進化している。今後はHTML5やその周辺技術に是非とも注目していきたい。

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)