【書評・備忘録】『Webを支える技術』― HTTP・URI・HTML・RESTを「なぜそう設計されたか」から理解する名著
この記事について
Webエンジニアにとっての必読書として長年語り継がれている一冊です。2010年の出版ですが、Webの根幹をなす技術の「設計思想」を扱っているため、今読んでもまったく色あせません。
普段フレームワークやライブラリの使い方ばかり追いがちですが、その土台にあるHTTP・URI・HTMLの仕様と設計原則を体系的に学べる本はなかなかありません。本書はその数少ない一冊です。
書籍情報
| 項目 | 内容 |
|---|---|
| 書名 | Webを支える技術 ―― HTTP,URI,HTML,そしてREST |
| 著者 | 山本陽平 |
| 出版社 | 技術評論社 |
| シリーズ | WEB+DB PRESS plus |
| 発売日 | 2010年4月 |
| ページ数 | 約377ページ |
どんな本か?
本書のテーマはWebサービスの実践的な設計です。
Webがなぜこれほど巨大なシステムに成長できたのか。その答えは、HTTP・URI・HTMLといった基盤技術の設計思想、すなわちREST(Representational State Transfer)というアーキテクチャスタイルにあります。
本書はこのRESTの考え方を軸に、Webの各要素技術を「仕様の解説」と「設計思想の背景」の両面から丁寧に解説しています。単なるリファレンスではなく、「なぜこう設計されているのか」を理解できるのが最大の特徴です。
本書の構成(全5部・17章)
第1部:Web概論(第1〜3章)
Webとは何か、その歴史、そしてRESTというアーキテクチャスタイルの解説です。
ここでは、Webを「ハイパーメディアシステム」かつ「分散システム」として捉える視点が示されます。RESTはRoy Fieldingの博士論文で提唱された設計原則であり、クライアント/サーバ、ステートレス性、キャッシュ、統一インタフェース、階層化、コードオンデマンドの6つのスタイルを組み合わせたものだと解説されています。
自分メモ: RESTを「HTTPのGET/POST/PUT/DELETEを使うこと」程度にしか理解していなかった。アーキテクチャスタイルとしての全体像を知れたのは大きい。API設計のレビューで「なぜRESTfulにすべきか」を根拠を持って説明できるようになった。
第2部:URI(第4〜5章)
URIの仕様と設計のベストプラクティスです。
URIの構文、絶対URIと相対URI、%エンコーディング、文字コードの扱いなど、仕様面を網羅した上で、「良いURIとは何か」「変わらないURIをどう設計するか」について論じています。
クールなURIは変わらない(Cool URIs don't change)というTimothy Berners-Leeの言葉が引用されており、URIは単なるアドレスではなくリソースの名前であるという考え方が印象的でした。
自分メモ: 社内サービスのAPI設計で、バージョニングやパス設計がバラバラになっていた問題を思い出した。URI設計のガイドラインをチーム内で共有する素材として本章は使える。
第3部:HTTP(第6〜9章)
HTTPの基本、メソッド、ステータスコード、ヘッダについて、仕様と設計の両面から解説されています。
本書で特に有用だと感じたのは以下の点です。
- HTTPメソッドの意味と使い分け:GET/POST/PUT/DELETEそれぞれの意味論(安全性・冪等性)が丁寧に整理されている
- ステータスコードの正しい使い方:200系・300系・400系・500系の設計意図と、間違った使い方の例
- HTTPヘッダの役割:Content-Type、キャッシュ制御、認証、コンテントネゴシエーションなど
自分メモ: ステータスコードの使い分けは開発チーム内でもばらつきが出やすい領域。バリデーションエラーに400と422のどちらを返すか、リソースの作成時に200と201のどちらが適切か、といった判断に迷うケースは多い。本書の整理をベースにチーム内のAPIガイドラインを作りたい。
第4部:ハイパーメディアフォーマット(第10〜14章)
HTML、microformats、Atom、Atom Publishing Protocol、JSONについて解説するパートです。
Webが単なるデータの受け渡しではなく「ハイパーメディア」として機能している理由が、各フォーマットの設計思想を通じて見えてきます。
microformatsやAtomの章は現在のWeb開発ではやや歴史的な内容ですが、「機械が読める意味のあるデータをWebに載せるにはどうすべきか」というテーマ自体は、現在のJSON-LDやOpenAPIにもつながる重要な問いです。
JSONの章は実務的にも直接使える内容で、JSONの設計上の注意点(データ型の制約、日付の扱い方など)が簡潔にまとまっています。
第5部:Webサービスの設計(第15〜17章)
最終部では、前半で学んだ技術要素を統合して、実際にWebサービスをどう設計するかを解説しています。
- 読み取り専用のWebサービス設計:リソースの選定、URI設計、レスポンスフォーマットの決定
- 書き込み可能なWebサービス設計:更新・削除の設計、排他制御、バッチ処理
- リソースの設計:リソース指向アーキテクチャに基づいた設計プロセス
リソース設計のプロセスとして、まずWebサービスで扱うデータを洗い出し、それをリソースとしてモデル化し、URIを割り当て、各リソースに対する操作をHTTPメソッドでマッピングする、という手順が具体例とともに示されています。
自分メモ: この設計プロセスはAPI設計のテンプレートとして使える。新しいサービスのAPI設計レビュー時に、このステップに沿っているかチェックリスト化してみたい。
2010年の本だけど古くないのか?
これは本書を手に取る前に誰もが思う疑問だと思います。結論から言うと、Webの基盤技術を扱っている部分はまったく古くないです。HTTP/1.1の仕様、URIの設計原則、RESTの考え方は15年経っても変わっていません。
一方で、以下の点は現在の状況と異なります。
- HTTP/2やHTTP/3については言及がない(本書はHTTP/1.1ベース)
- microformatsやAtom Publishing Protocolは現在ほとんど使われていない
- 認証周りはOAuth 2.0やOpenID Connectが主流だが、本書では触れられていない
- GraphQLやgRPCなどREST以外のAPI設計パターンへの言及がない
ただし、これらの新しい技術を理解するためにも、まずHTTPとRESTの基礎を押さえておくことは不可欠です。特にAIエージェントがAPIを介して外部サービスと連携する場面が増えている今、RESTの設計原則を理解しているかどうかが、システム設計の質に直結します。本書はその「基礎の基礎」を固めるのに最適な一冊です。
読んで感じた3つのポイント
1. 「仕様」と「設計思想」の両方が学べる
HTTPのステータスコードやメソッドの一覧は他の本やドキュメントでも学べますが、「なぜそう設計されたのか」まで踏み込んで解説している書籍は少ないです。設計思想を知ることで、応用が利くようになります。
2. 読み物として面白い
Webの歴史やRESTの成り立ちなど、技術書でありながらストーリー性があります。ティム・バーナーズ=リーのWebの構想から、REST vs SOAPの論争まで、読み物として楽しめます。
3. API設計の「共通言語」になる
チーム内でAPI設計のレビューをする際、本書の内容が共通認識としてあると議論の質が上がります。「このリソースはGETで取れるべきか」「このステータスコードは適切か」といった議論を、感覚ではなく原則に基づいて行えるようになります。
AI時代に読み直す意義
本書は2010年の書籍ですが、生成AIやLLMが当たり前になった2025年の今だからこそ、改めて読む価値があると感じました。
AIがコードを書く時代だからこそ「設計思想」が効いてくる
CopilotやClaudeにAPIのコードを書かせると、それなりに動くものは出てきます。しかし、URIの命名規則やステータスコードの使い分け、リソースの粒度設計といった「設計判断」は、人間がレビューする力がなければ品質を担保できません。AIが生成したコードに対して「このURI設計は適切か」「このメソッドの冪等性は保たれているか」と判断できるかどうか。その判断力の土台にあるのが、本書で解説されている設計原則です。
MCP・Function Calling時代のAPI設計
LLMがツールを呼び出すFunction CallingやMCP(Model Context Protocol)が普及する中で、AIが叩くAPIの設計品質がますます重要になっています。人間が使うUIと違い、AIはAPIの仕様に忠実に従おうとします。URIが一貫していない、レスポンスの構造がエンドポイントによって違う、エラーの返し方がバラバラ ―― こうした設計の乱れは、AIとの連携で即座に問題として表面化します。本書のリソース指向設計の考え方は、人間だけでなくAIにとっても使いやすいAPIを作るための基盤になります。
「機械が読めるWeb」は本書の先見性
第4部で扱われるmicroformatsやAtomは、「人間だけでなく機械にも意味が伝わるデータをWebに載せる」という思想のもとに設計されたフォーマットです。これは、LLMがWeb上の情報を取得・解釈する現在の状況とまさに地続きです。構造化データ、セマンティクス、コンテントネゴシエーション ―― 本書が15年前に解説していたテーマが、AI時代にむしろ実用的な意味を持つようになっています。
自分メモ: 自チームでもAIエージェントを社内システムとMCP連携させて業務自動化を進めているが、APIの設計品質がそのまま自動化の精度に直結すると実感している。今後AIエージェントがAPIを叩く前提で設計する場合、本書のリソース指向設計をベースにしつつ、OpenAPIによるスキーマ定義をセットで整備する運用がベストだと思う。
こんな人におすすめ
- Web開発に携わっているが、HTTPやRESTの基礎を体系的に学んだことがない人
- API設計に関わるエンジニア、テックリード
- フレームワークの使い方は知っているが、その下のレイヤーを理解したい人
- Webの「なぜ」を知りたい好奇心旺盛なエンジニア
- 新人エンジニアの教育に使える基礎教材を探しているマネージャー
- AIにコードを書かせる時代だからこそ、設計判断力を鍛えたい人
まとめ
『Webを支える技術』は、Webエンジニアとしての基礎体力を鍛えるための一冊です。フレームワークやライブラリは数年で入れ替わりますが、HTTP・URI・RESTといった基盤技術の理解は何年経っても通用します。
むしろ、AIがコードを書き、AIがAPIを叩く時代になった今、「設計原則を理解して判断できる力」の価値は上がっています。2010年の出版とは思えないほど内容が現役で、14刷を重ねているのも納得の名著です。
※この記事にはAmazonアソシエイトのリンクが含まれています。