【RESTfulアーキテクチャの教科書】 「Webを支える技術 -HTTP、URI、HTML、そしてREST」 (WEB+DB PRESS plus)

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

シンプルで使いやすいWebアーキテクチャとは何か?答えはREST。

という話が書かれている技術書。

本のタイトルは「Webを支える技術」だが,実際には「良いWebアーキテクチャを実現する技術」だと思う。


内容の目次:

 第1部 Web概論

第1章 Webとは何か
 1.1 すべての基盤であるWeb
 1.2 さまざまなWebの用途
 1.3 Webを支える技術
 1.4 本書の構成

第2章 Webの歴史
 2.1 Web以前のインターネット
 2.2 Web以前のハイパーメディア
 2.3 Web以前の分散システム
 2.4 Webの誕生
 2.5 Webの標準化
 2.6 Web APIをめぐる議論
 2.7 すべてがWebへ

第3章 REST ── Webのアーキテクチャスタイル
 3.1 アーキテクチャスタイルの重要性
 3.2 アーキテクチャスタイルとしてのREST
 3.3 リソース
 3.4 スタイルを組み合わせてRESTを構成する
 3.5 RESTの2つの側面
 3.6 RESTの意義

 第2部 URI

第4章 URIの仕様
 4.1 URIの重要性
 4.2 URIの構文
 4.3 絶対URIと相対URI
 4.4 URIと文字
 4.5 URIの長さ制限
 4.6 さまざまなスキーム
 4.7 URIの実装で気をつけること

第5章 URIの設計
 5.1 クールなURIは変わらない
 5.2 URIを変わりにくくするためには
 5.3 URIユーザビリティ
 5.4 URIを変更したいとき
 5.5 URI設計のテクニック
 5.6 URIの不透明性
 5.7 URIを強く意識する

 第3部 HTTP

第6章 HTTPの基本
 6.1 HTTPの重要性
 6.2 TCP/IPとは何か
 6.3 HTTPのバージョン
 6.4 クライアントとサーバ
 6.5 リクエストとレスポンス
 6.6 HTTPメッセージ
 6.7 HTTPのステートレス性
 6.8 シンプルなプロトコルであることの強み

第7章 HTTPメソッド
 7.1 8つしかないメソッド
 7.2 HTTPメソッドCRUD
 7.3 GET ── リソースの取得
 7.4 POST ── リソースの作成、追加
 7.5 PUT ── リソースの更新、作成
 7.6 DELETE ── リソースの削除
 7.7 HEAD ── リソースのヘッダの取得
 7.8 OPTIONS ── リソースがサポートしているメソッドの取得
 7.9 POSTでPUT/DELETEを代用する方法
 7.10 条件付きリクエスト
 7.11 べき等性と安全性
 7.12 メソッドの誤用
 7.13 Webの成功理由はHTTPメソッドにあり

第8章 ステータスコード
 8.1 ステータスコードの重要性
 8.2 ステータスラインのおさらい
 8.3 ステータスコードの分類と意味
 8.4 よく使われるステータスコード
 8.5 ステータスコードとエラー処理
 8.6 ステータスコードの誤用
 8.7 ステータスコードを意識して設計する

第9章 HTTPヘッダ
 9.1 HTTPヘッダの重要性
 9.2 HTTPヘッダの生い立ち
 9.3 日時
 9.4 MIMEメディアタイプ
 9.5 言語コード
 9.6 コンテントネゴシエーション
 9.7 Content-Lengthとチャンク転送
 9.8 認証
 9.9 キャッシュ
 9.10 持続的接続
 9.11 そのほかのHTTPヘッダ
 9.12 HTTPヘッダを活用するために

 第4部 ハイパーメディアフォーマット

第10章 HTML
 10.1 HTMLとは何か
 10.2 メディアタイプ
 10.3 拡張子
 10.4 XMLの基礎知識
 10.5 HTMLの構成要素
 10.6 リンク
 10.7 リンク関係 ── リンクの意味を指定する
 10.8 ハイパーメディアフォーマットとしてのHTML

第11章 microformats
 11.1 シンプルなセマンティックWeb
 11.2 セマンティクス(意味論)とは
 11.3 RDFmicroformats
 11.4 microformatsの標準化
 11.5 microformatsの分類
 11.6 microformatsとRDFa
 11.7 microformatsの可能性
 11.8 リソースの表現としてのmicroformats

第12章 Atom
 12.1 Atomとは何か
 12.2 Atomのリソースモデル
 12.3 エントリ ── Atomの最小単位
 12.4 フィード ── エントリの集合
 12.5 Atomの拡張
 12.6 Atomを活用する

第13章 Atom Publishing Protocol
 13.1 Atom Publishing Protocolとは何か
 13.2 AtomPubのリソースモデル
 13.3 ブログシステムを例に
 13.4 メンバリソースの操作
 13.5 サービス文書
 13.6 AtomPubに向いているサービス

第14章 JSON
 14.1 JSONとは何か
 14.2 メディアタイプ
 14.3 拡張子
 14.4 データ型
 14.5 JSONPによるクロスドメイン通信
 14.6 ハイパーメディアフォーマットとしてのJSON

 第5部 Webサービスの設計

第15章 読み取り専用のWebサービスの設計
 15.1 リソース設計とは何か
 15.2 リソース指向アーキテクチャのアプローチ
 15.3 郵便番号検索サービスの設計
 15.4 Webサービスで提供するデータを特定する
 15.5 データをリソースに分ける
 15.6 リソースにURIで名前を付ける
 15.7 クライアントに提供するリソースの表現を設計する
 15.8 リンクとフォームを利用してリソース同士を結び付ける
 15.9 イベントの標準的なコースを検討する
 15.10 エラーについて検討する
 15.11 リソース設計のスキル

第16章 書き込み可能なWebサービスの設計
 16.1 書き込み可能なWebサービスの難しさ
 16.2 書き込み機能な郵便番号サービスの設計
 16.3 リソースの作成
 16.4 リソースの更新
 16.5 リソースの削除
 16.6 バッチ処理
 16.7 トランザクション
 16.8 排他制御
 16.9 設計のバランス

第17章 リソースの設計
 17.1 リソース指向アーキテクチャのアプローチの落とし穴
 17.2 関係モデルからの導出
 17.3 オブジェクト指向モデルからの導出
 17.4 情報アーキテクチャからの導出
 17.5 リソース設計で最も重要なこと

この本について:

Amazon.co.jp: Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus): 山本 陽平: 本
http://www.amazon.co.jp/Web%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B%E6%8A%80%E8%A1%93-HTTP%E3%80%81URI%E3%80%81HTML%E3%80%81%E3%81%9D%E3%81%97%E3%81%A6REST-WEB-PRESS-plus/dp/4774142042

  • URI, HTTP, HTML 等を簡潔に説明した良書です。 RESTの考え方が HTTP の当初(1.0)の設計に 既に含まれていたことがよくわかります。 Get と Post しか知らない人には目から鱗かも。 星4個なのは microformats, Atom や AtomPub の話がかなり 浮きぎみだからです。


山本陽平著『Webを支える技術 ── HTTP、URI、HTML、そしてREST』刊行記念トークセッションのおしらせ - t-wadaの日記
http://d.hatena.ne.jp/t-wada/20100329/webtechbook_junkudo

  • この本は REST と言えばこの人、山本陽平さん(yohei さん)による、 Web に関連する技術の本です。


「Webを支える技術」読了 - Unknown::Programming
http://d.hatena.ne.jp/fbis/20101221/1292958361

  • 個人的に一番面白かったのが第2章のWebの歴史。
  • とにかくWebプログラマなら必読の一冊と言えるでしょう。


yohei-y:weblog: 『Webを支える技術 ── HTTP、URI、HTML、そしてREST』という本を書きました
http://yohei-y.blogspot.jp/2010/03/web-httpurihtmlrest.html

  • の本は、WEB+DB PRESSで連載していた「RESTレシピ」という連載がベースになっています。


Webを支える技術 -HTTP、URI、HTML、そしてREST
https://www.ogis-ri.co.jp/otc/hiroba/OoBook/webtechbook/webtechbook.html

  • Webらしく設計するとは? Webらしい設計スタイルとは、本書の第3部で「RESTアーキテクチャスタイル」として説明されています。これは、Roy FieldingがWebシステムの成功要因を分析し、論文として発表したものです。


『Webを支える技術』読了 - そのねこが学ぶとき
http://chroju89.hatenablog.jp/entry/2013/12/28/011434

  • この本読むとRuby on Railsが本当にRESTfulに設計されているんだってことが追認できる。


Webを支える技術 -HTTP、URI、HTML、そしてREST - それはBooks
http://hamasyou.com/blog/2010/05/31/4774142042/

  • Webで成功するサービスを作る究極の指針は「シンプルであること」だと思います。
  • 本書はこのことだけが追求されて書かれている良書です。


Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)(山本 陽平) - ただのにっき(2010-04-23)
http://sho.tdiary.net/20100423.html

  • Webテクノロジーの基礎に関する最高の教科書のひとつだと思う。付録のリファレンスも含めて、作りが極めて教科書的で、色褪せない工夫が随所にあって感心する。Webサービス開発者に限らず、Webに携わる者はみんな読んでおくべき。