kagamihogeの日記

kagamihogeの日記です。

Webを支える技術 -HTTP、URI、HTML、そしてREST

俺がはじめて Web アプリケーションに出会ったのは Java Servlet だった。その当時はまだゼンゼン Web というものを意識することはなくて、直前に Java Applet をさわっていたため、Servlet は appletviewer 使わなくても動く Java なのかーなんていうマヌケな理解をしていた。なので、テキストサイトを見るのも google で検索するのもゆいちゃっとで時間潰すのも本質的には何も変わらない、ということを知るまでには結構な時間がかかったのを良く覚えている。

Web の存在を強く意識し始めるようになったのは、Struts で Web アプリを作る仕事をするようになってからだったように思う。何故かというと、本格的に Web アプリを手掛けると様々な問題に直面するから。その問題というのは、純粋にプログラミング上の問題なときもあれば、HTTP の仕様がそうなっているというものもあれば、ブラウザの実装がたまたまそういう挙動をする(ただし IE6 に限る)ことに悩まされたり、盛大に文字化けしたり特定の文字だけ化けたり、フレームワークが面倒事を隠蔽しているだけだったり……色々である。Web アプリを開発する上で、何が問題であるかを切り分けたり、どこに問題がありそうかを推測したりするのに重要なことの一つは、Web とは何なのかを知ることにある。

本書が役に立つ読者層の一つは、数ヶ月から数年程度に Web アプリの開発経験がある人だと思う。言語や環境は違えど Web に立ち向かう上で発生するあれやこれやの根底にある技術の解説が網羅的にされ、かつ現代の事情も踏まえて書かれている本は他に無いんじゃなかろうか。もちろん、現場において要求される個々の技術の詳細やバッドノウハウは別途に書籍や Web をあたる必要はある。がしかし、HTTP,URL,HTML という Web を Web たらしめている―そしてこれらからもそう大きく変わることのないだろう―ものたちの解説は必要充分にされている。

以上のように本書は HTTP,URL,HTML を通して Web の理解を深めることが目的なのだけど、本書の副題「HTTP,URL,HTML,そして REST」にあるとおり REST がもう一つのキーワードになっている。これは個人的な感想だけど、本書は事実上 RESTful Webサービス に対する入門書的な位置づけになっていると思う*1。本書読んでて RESTful Webサービス の良い復習になりました。

これからの Web を語る上で REST は一つのキーワードにはなると思う。が、Web そのものがどんな風に変化していくのか良くわからない。そこで思い出したのは 10 年程前、学生の頃の恩師である教授の言葉「今の Web は個々のマシンでやっていることをただそのまま Web に繋げたらどうなるかを実験している段階。だから、Web でしか出来ないことはこれから出てくる」と言っていたのを思い出した。いまやあらゆるものが Web に乗っかる時代になってるわけだけど、恩師なら今の Web とこれからの Web をどう評するのだろうか……

ところで、本書読んでて苦笑せざるを得なかった箇所がある。

筆者が聞いたREST否定派の一番ひどい言説は『RESTはおもちゃ』です。この言葉の陰にはWeb APIを作っているWebベンチャーなどの技術者に対する、旧来のエンジニアからの侮蔑の意味が込められていたのではないでしょうか。「HTTPやURIだけで基幹システムが作れるのか?」「そんなものおもちゃでしかないじゃないか」と。

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus) REST の誤解と普及 p.23 より抜粋

REST の文脈ではないのだけど、俺もまた似たような"忠告"を受けたことがある。「何時までも Web なんておもちゃで遊んでもらっていては困る。Web は所詮上辺にすぎない、もっと他に勉強することがあるだろjk」とかなんとか。業務アプリ屋さんの中に時々、こういう露骨に LL なエンジニアやネット企業をバカにする人がいる。どーやら信頼性やら何やらの確保にメインフレームや大型汎用機以外はアウトオブ眼中*2なようで。おまえは今まで google が食ったメインフレームの数を覚えているのか? と脊髄反射したかったんですが、彼らにとってはハードウェアの性能の差が業務アプリの決定的な差であるらしいので止めておきました。

Web の世界は、コンピュータを使ったある種の壮大な実験場と見れると思う。なので、Web の世界で起き る|た 出来事のいくつかはビジネスの世界とも地続きになっていて、年を重ねるごとにこれらの関係は距離が近付いてきているように思う。だから、上記のような狭量な意見を聞くとホント悲しくなるわけです。と同時に、俺は Web の世界で起きていることと業務アプリの世界とで起きることは同じ地平線上にあると思ってるんだけど、それを上手く言えるだけの言葉を持ち合わせていない。本書を読んでいてそのあたりをもうちょっと掘り下げたいなぁと思うのでした。

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

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

*1:ご存知の方が多数だろうけど RESTful Webサービスの監訳者と本書の著者は同じだしね

*2:死語だよね……