なんと 2020/11/4 - 2024/4/29 で読了。
お世話になってる人からいわゆる借りパクしてて、もはやいつから読みはじめたかも覚えてなかったのだが、付箋のメモで開始日がわかった。
けっこうな分量の本ですが、誤字や脱字はなく、丁寧に作られた技術書という印象を受けました。
ので、あんまり意味ないけど時系列を添えて残しとく。
2020年
11月4日
- 一応開きはしたようだがメモなし
2021年
2月27日
第1部 Web概論
第1章 Webとは何か
第2章 Webの歴史
- 9 Kernighan カーニハン神からのローマ字あいさつ!
- 10 Memex by Vannevar Bush
- 10 Xanadu by Ted Nelson
「X」付けたかったんかな? - 12 Nelson から見るとWebは「不完全なハイパーメディア」。リンクが単方向、リンク切れの可能性があるなどが理由。
- 14 RPC は Application State 問題がある
- 15 1993年、Mosaic 誕生!
- 17 単方向リンクという簡潔さゆえに普及
- 19 Roy Fielding が博士論文で REST を命名! 知らなんだ。
- 21 「何の略でもなく単にSOAPである」w
- 23 否定派からは「RESTはおもちゃ」とまで言われていた
第3章 REST ── Webのアーキテクチャスタイル
- 26 Client/Server + 制約 = REST
- 26 アーキテクチャスタイル > アーキテクチャ > 実装 の解説が丁寧
- 29 Addressability
- 30 Representation
- 32 サーバはクライアントの状態を持たない。ステートレス
- 33 cache => cash => $
- 34 Uniform Client Cache Stateless Server = UC$SS
- 35 Uniform Layered Client Cache Stateless Server = ULC$SS
- 36 Uniform Layered Code on Demand Client Cache Stateless Server = ULCODC$SS
- 37 ULCODC$SS = REST!!
第2部 URI
第4章 URIの仕様
第5章 URIの設計
- 59 301 Redirect
- 60 Content Negotiation
- 62 Matrix URI
- 64 Opaque
第3部 HTTP
3月21日
第6章 HTTPの基本
- 73 クライアント≒ユーザエージェント
- 74 HTTP は同期型プロトコル
- 79 ヘッダ+空行+ボディ
- 82 ハンバーガーショップでアプリケーション状態(≒セッション状態)の説明。わかりやすい
- 83 Self Descriptive Message
第7章 HTTPメソッド
- 89 表7.2 POST/GET/PUT/DELETE の行に CRUD 付けたほうが見やすいかも?
- 93 「ほかのメソッドでは実現できない機能は POST で代用」。キーワードが長すぎる場合など。
- 95 POST/PUT 使い分け指針
- 101 べき等と安全性。用語は小難しいが概念は超簡単。
第8章 ステータスコード
- 111 弾さんブログの紹介w
- 113 知らない 4xx が来たら 400 と同じ扱いとする
第9章 HTTPヘッダ
- 126 RFC 822 からのバッドノウハウ。7bit ASCII しか使えないため
- 132 qvalue メディアタイプの優先順位。デフォルトは1
- 148 ETag
- 150 Bエンコーディング
- 151 HTTPヘッダを使いこなすには、電子メールなどの歴史を調べる必要がある
第4部 ハイパーメディアフォーマット
3月22日
ここが長かった。
第10章 HTML
- 154 SGML, HTML, XML
- 155 「Internet Explorer 以外の正しいクライアント」w
- 161 接頭辞(名前空間)がないのは「ローカル属性」
4月4日
- 162 ol = ordered list, ul = unordered list かな
- 172 プログラムにリンクの意味を理解させるための仕組み
- 172 rel属性 = relation
略語の元の単語も書いてほしい!
第11章 microformats
- 174 semantic web 小文字に意味あり。
6月27日
- 180 ここから再開(メモなし)
2024年
第4部(承前)
4月8日
- 184 ここから再開
- 187 microformats を使う利点
第12章 Atom
4月20日
4月28日
第13章 Atom Publishing Protocol
知識の羅列が続いて眠い。
第14章 JSON
やっと楽なとこ来たw
第5部 Webサービスの設計
第15章 読み取り専用のWebサービスの設計
- 242 WebサービスとWeb APIを分けて考えないことが大切
p.310 にも同様の記述あり、計3回言ってる。 - 243 「リソース設計にはまだ一般的な設計手法が存在しません」2010年の執筆当時はということかも?
- 245 アドレス可能性 > 接続性 > 統一インタフェース > ステートレス性 という優先順位。なるほど
- 251 XML では「独自フォーマットを作り出さない」ことが重要
- 267 リソース設計はスキル。身につけられる
4月29日(月祝!)
第16章 書き込み可能なWebサービスの設計
- 269 ファクトリリソース
- 273 バルク/パーシャルアップデート
- 279 リソース状態とセッション状態は別物
- 290 楽観的ロック (Optimistic Lock) の考え方
第17章 リソースの設計
- 299 各リソースを自己記述的にするため、あえて正規化を崩す
付録
付録A ステータスコード一覧
- 319 302 Found 使われなくなった。へー!