Webを支える技術を読んだ

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

きっかけ

もともとRESTがどんなんかとか大雑把には知っていたけど、いざ自分がwebアプリ開発に携わり始めてリソースってなんじゃい?ってレベルだったことが大きい。
あと去年はずっとインフラやってたので、色んなプロトコルなりUnix(Linux)コマンドなりには通じてたものの、Webの基礎とかって疎かったのでしっかりやっとこうって魂胆。

本の中身

本の中身は大雑把に、

  • Webの歴史
  • URI
  • HTTP
  • メディアフォーマット

とかが書いてあります。 歴史でRESTに触れてからはREST前提で話が進む。
読んでいて意外とHTTPとか詳しく知らなかったことに気づく。
あと、僕は割と歴史系の話が好きで、この手の本の最初の方に載っている歴史を知るのは実に興味深い。
何事も歴史を知っておくと深く理解して使えるので、何か新しいことを始めるときは歴史から触れるのがいいと思う。

何はともあれREST

RESTを意識しているのといないのとでは作るものの質がまったく違うと思う。
RESTを意識すると世の中のサイトのURL設計がいかにイケてないかがすごくよく分かる。 まぁこの手の話は宗教戦争で、何が正しいとか間違ってるとかいいだすとキリがない話なのだが、先の項でも触れた歴史の話から読み取るに、RESTが正しいWebの扱われ方であるから生き延びてきたんだと思う。

RESTアーキテクチャの定義を本書から抜粋しておく。

  • クライアント/サーバ
  • ステートレスサーバ
  • キャッシュ
  • 統一インターフェース
  • 階層化システム
  • コードオンデマンド

これらをすべて備えなくても良いらしいが、この中でもクラサバ、ステートレス、統一インターフェースが重要であると思う。
なぜこれらが重要かというと、クラウド時代のスケーラブルなアーキテクチャには不可欠な要素だからである。
すべてのサーバーがユーザーインターフェースから独立しており、状態(state)を持たず、かつインターフェースが一様でないとスケーラブルにできない。
これはWebに限らない話で、今後クラウドが前提のアーキテクチャを組むなら意識すべきことだと思った。

話がそれたが結論

とりあえず以下のことがWebアプリ開発者として最低限必要だと思った。

  • リソースを理解した上でのURI設計
  • 適切なGET、POST、PUT、DELETEの使い分け
  • HTTPヘッダ、レスポンスコードの理解、適切な使い分け

それぞれがどのようなものか、どうすれば正しく使えるかは本書を読んでください。

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

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