Webを支える技術——HTTPとRESTを根本から理解したいエンジニアへの正直な評価

Webを支える技術(山本陽平著)をテックリード視点で評価。HTTP・URI・RESTの設計思想を体系的に学べるこの本が、現場でどう活きているかを正直に書く。

「REST APIを作っているが、RESTとは何かを正確に説明できない」。

そう感じたとき手に取ったのがこの本だ。HTTPメソッドの使い分けはなんとなくできていたが、「なぜPUTはべき等でPOSTはそうでないのか」「URIはどう設計すべきか」といった問いに、根拠を持って答えられなかった。


本の全体構成

5部構成で、WebのアーキテクチャからHTTP・URI・ハイパーメディアフォーマット・Webサービス設計まで体系的にカバーしている。

内容
第1部 Web概論Webとは何か、歴史、RESTの誕生
第2部 URIURIの仕様と設計
第3部 HTTPHTTP基本・メソッド・ステータスコード・ヘッダ
第4部 ハイパーメディアフォーマットHTML・JSON・Atom
第5部 Webサービスの設計REST APIの設計実践

章ごとの評価

第1部・第2部:Web概論とURI

Webがなぜここまで普及したか、RESTがどういう経緯で生まれたかという歴史的文脈から入る。「なぜRESTはステートレスでなければならないか」を理解するには、この歴史的背景が欠かせない。

URIの章(4〜5章)は短いが密度が高い。「クールなURIは変わらない」という考え方と、変わりにくいURIを作るための原則は、今でもAPI設計の判断基準として参照している。詳細は望ましいURIとは何かにまとめた。

第3部:HTTP

HTTPメソッドとステータスコードの章(7〜8章)は本書のハイライトだ。「GETは安全で冪等、POSTは安全でも冪等でもない」という整理は、APIを設計するときの根拠になる。ヘッダの章(9章)ではキャッシュ・認証・コンテントネゴシエーションを扱っており、実務で避けて通れないトピックが集まっている。

HTTPの実務知識はHTTPを正しく理解する、キャッシュの深掘りはHTTPキャッシュ完全ガイドにまとめた。

第5部:Webサービスの設計

読み取り専用API(15章)・書き込み可能API(16章)・リソース設計(17章)の3章で構成されており、ここが実践的に最も役立つ。

特に16章の「楽観的ロック・悲観的ロック」「トランザクションリソース」「べき等性」の解説は、設計レビューのときに何度も参照した。詳細はREST APIの書き込み設計にまとめている。


スピンオフ記事一覧

この本をもとに当ブログで書いた関連記事:


どんな人に向いているか

読者タイプおすすめ度
REST APIを作っているがRESTをちゃんと理解したい★★★★★
HTTPメソッドの使い分けに自信がない★★★★★
URI設計でチーム内に統一基準を作りたい★★★★★
バックエンドエンジニアとして設計力を上げたい★★★★☆
フロントエンドのみでAPIを消費する側★★★☆☆

正直に言うと

第4部のAtom/AtomPubは2024年現在ではほぼ実務で使わない。JSONとREST APIが主流の今、この章は読み飛ばしても支障ない。

一方で、第3部のHTTPと第5部の設計は今でも色あせない内容だ。HTTPの仕様は変わっていないし、REST設計の原則も普遍的だ。「なんとなくAPIを作っている」状態を脱するために、この本を読む価値は今でも十分にある。


まとめ

REST APIを日常的に作るエンジニアなら、一度は読んでおいてほしい一冊だ。

「なぜそう設計するか」の根拠を持つことは、レビューでの説明力・設計判断の速度・チームへの知識共有すべてに影響する。HTTPとRESTの基礎を体系的に学ぶ最短ルートとして、今も筆頭に挙げられる本だ。