Web を支える技術
ウェブ オ ササエル ギジュツ
HTTP、URI、HTML、そして REST
- 著者:
- 山本陽平(ヤマモト, ヨウヘイ)
- 価格:
- ¥2,827
- 出版社:
- 技術評論社
- 出版日:
- 2010年05月
- ISBN:
- 9784774142043
- シリーズ:
- WEB+DB press plus シリーズ
- 在庫:
- 1
- 判型:
- 単行本
なぜ注目されているか
書籍紹介
本書のテーマは Web サービスの実践的な設計。まず良い Web サービス設計の第一歩として、HTTP や URI、HTML などの仕様を歴史や設計思想を織り交ぜて解説。そして Web サービスにおける設計課題、たとえば望ましい URI、HTTP メソッドの使い分け、クライアントとサーバの役割分担、設計プロセスなどについて、現時点でのベストプラクティスを紹介。
技書の森解説
Web サービスや Web API を作っていると、URI をどう切るか、POST と PUT のどちらを使うか、エラーにどのステータスコードを返すかで手が止まる場面があります。『Web を支える技術 HTTP、URI、HTML、そして REST』 (山本陽平 著、技術評論社、2010 年 4 月刊、WEB+DB PRESS plus シリーズ、A5 判) は、こうした判断の根拠を HTTP / URI / HTML の仕様そのものと、その歴史や設計思想から説き起こす技術書です。版元は本書のテーマを Web サービスの実践的な設計と位置づけ、対象として Web サービス (Web アプリケーション / Web API) の設計 / 開発に携わる方、Web のしくみや動作原理を知りたい方、URI の仕様や、良い URI について知りたい方、HTTP メソッド、ヘッダ、ステータスコードの仕様や使い方を学びたい方、REST について学びたい方を挙げています。著者は刊行時点の版元プロフィールによれば 1975 年生まれで、株式会社リコーグループ技術開発本部にて Web に関連した研究開発に従事し、個人のブログで Web や XML に関連する記事を書いていた人物です。
全 5 部 17 章の構成、Web 概論から郵便番号検索サービスの設計まで
構成は全 5 部 17 章と付録 3 本です。第 1 部 Web 概論 (第 1〜3 章) は、Web とは何かから始めて、Web 以前のハイパーメディアと分散システムの歴史、SOAP 対 REST の議論を経て、第 3 章で REST を Web のアーキテクチャスタイルとして解説します。ここでは、クライアント / サーバ、ステートレスサーバ、キャッシュ、統一インタフェース、階層化システム、コードオンデマンドというスタイルを組み合わせて REST を構成する、という見方が示されます。第 2 部 URI (第 4〜5 章) は URI の構文や % エンコーディングといった仕様と、「クールな URI は変わらない」を掲げる URI の設計です。第 3 部 HTTP (第 6〜9 章) は TCP/IP の階層から入って HTTP のステートレス性、「8 つしかないメソッド」とべき等性 / 安全性、ステータスコード、認証やキャッシュやコンテントネゴシエーションを担う HTTP ヘッダまでを扱います。第 4 部 ハイパーメディアフォーマット (第 10〜14 章) は HTML、microformats、Atom、Atom Publishing Protocol、JSON の各章です。第 5 部 Web サービスの設計 (第 15〜17 章) は郵便番号検索サービスを例に、読み取り専用の設計、書き込み可能な設計 (バッチ処理 / トランザクション / 排他制御を含む)、そして関係モデル / オブジェクト指向モデル / 情報アーキテクチャからリソースを導出する設計へ進みます。付録は A ステータスコード一覧、B HTTP ヘッダ一覧、C 解説付き参考文献です。
REST を「なぜそうなっているか」から理解する技術背景
版元の概要は、Web がここまで成功した秘密はその設計思想、いわゆるアーキテクチャにある、と述べ、刊行時点で Web が誕生から 20 年で 17 億人のユーザと 2 億台のサーバを抱える巨大システムへ成長したことを挙げています。技術的に言えば、URI がリソースに名前を付け、少数の HTTP メソッドが統一インタフェースとして働き、サーバが ステートレス に各リクエストを独立して処理し、その間に HTTP キャッシュ が挟まれる、という制約の組み合わせが REST であり、Web が中央の調整役なしに拡大できた理由でもあります。Web アプリケーションフレームワークはこの層をうまく隠してくれるため、開発者は POST に何でも載せる、更新なのに GET を使う、失敗しても 200 を返す、といった誤用に気づきにくくなります。本書が第 7 章で べき等性 と安全性に節を割き、第 8 章でステータスコードの分類と誤用を扱うのは、この隠れた層を可視化するためで、リトライしてよい操作の判断やクライアント側のエラー処理の設計は、まさにこの理解の上に成り立ちます。
2010 年刊の仕様を読む前提知識と注意点
前提知識としては、HTML を書いたことがあり、何らかの Web アプリケーションを一度は作った経験があると、設計の章の問題意識を共有しやすくなります。一方で第 6 章は TCP/IP の階層型プロトコルから説明を始めるため、版元が対象に含める「Web のしくみや動作原理を知りたい方」も追える作りです。注意点は刊行時期です。2010 年 4 月刊のため、目次で扱う HTTP のバージョンは HTTP 0.9 / 1.0 / 1.1 と「その後の HTTP」までで、認証は Basic 認証 / Digest 認証 / WSSE 認証、ハイパーメディアフォーマットは HTML / microformats / Atom / AtomPub / JSON です。刊行後に策定された仕様やフォーマットは含まれないので、本書は刊行時点の仕様と設計思想を学ぶ本として読み、個別の仕様の変化は各仕様の一次資料で追う使い方になります。版元サイトでは 2014 年 12 月発売の電子版も案内されています。
向いているのは、フレームワークの規約に従って動くものは作れるが、URI やメソッドの選び方を人に説明できない人、REST という言葉を曖昧に使っている自覚がある人、そして Web API の設計を任された人です。逆に、特定のフレームワークの手順書や、刊行後に登場した仕様の詳細を求める人には別の資料が必要です。
Web API の URI / メソッド / ステータスコードを決める立場にいる人なら、設計会議での判断に根拠を持てるようになる点で投じた時間は早く回収でき、付録のステータスコード一覧と HTTP ヘッダ一覧は日常の参照資料としても働きます。Web がなぜこの形をしているのかを一度きちんと理解しておきたい人にとって、本書は出発点として堅実な選択です。
言及した記事 (58 件)
HTTP/1.1 200 OK
♡ 1661JavaScript, restネットワークやTCP/IPやHTTPの基本(初学者向け)
♡ 369Go, Network, curl, HTTP, TCPExpressなしでNode.jsで簡単なWebサーバを作ってみる、HTTPを学ぶ
♡ 48JavaScript, Node.js, HTTP, Web, webserver「webを支える技術」を読んで興味深かった箇所をピックアップ
♡ 35web, http, restリンクを貼るだけの新人教育
♡ 34教育, 新人プログラマ応援プログラミング初心者がプログラミング歴0年目にオススメしたい技術書
♡ 27Ruby, PHP, SQL, Web, 初心者新人エンジニアにおすすめの技術書9選
♡ 23初心者, 技術書, 書籍IT用語が聞こえ始めた2年目から、できることが増えた4年目にかけて読み漁った技術書をまとめました。
♡ 21読書, ポエム, 技術書, マネジメント, 新人プログラマ応援ツイートを見れないツイッターをつくったー
♡ 19GoogleAppsScript, TwitterAPI, LINEmessagingAPI新米エンジニアが「webを支える技術」をまとめてみた
♡ 17初心者, web, network, プログラミング
この本に興味がある方におすすめ
関連する本
関連記事
体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版は初版と何が違うか - 買い直し判断ガイド
通称「徳丸本」こと体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版 (2018 年) と初版 (2011 年) の違いを出版社公表の改訂内容から整理。章の削除 / 新設 / 追加点の一覧と、初版所有者が買い直すべきかの判断基準を解説します。
Web 開発本ガイド - フロントエンドからバックエンドまで
Web 開発の全体像を学べる技術書の選び方と学習マップを紹介。フレームワーク本の賞味期限問題と公式ドキュメントとの使い分けも解説します。
Web デザイン本ガイド - HTML/CSS、Figma、Photoshop を学ぶ順番
Web デザインを独学する本の選び方を「コーディング、ツール、デザイン原則」の 3 本柱で整理。HTML/CSS の入門書、Figma と Photoshop の教本、レイアウトと配色の定番書を、2026 年 8 月時点の収載書から学ぶ順番つきで解説します。
関連用語
Web アプリケーション
ブラウザーを通じて利用するアプリケーション。インストール不要で幅広い端末で動く
PHP
Web 開発で広く使われるサーバーサイド言語。動的な Web ページ生成を得意とする
HTML
Web ページの構造を記述するマークアップ言語。Web を成り立たせる基礎技術
HTTP/2
HTTP/1.1 の性能限界を解消するために設計された、多重化、ヘッダー圧縮、サーバープッシュを備えたプロトコル
Core Web Vitals
Google が定義した Web ページのユーザー体験を測定する 3 つの指標 (LCP, INP, CLS)
HTTP/3
QUIC の上で動作する HTTP のメジャーバージョン